From 32ea4ec24539ab687957eb8853c05d2c14355de2 Mon Sep 17 00:00:00 2001 From: Eric Domke Date: Thu, 31 Jul 2014 12:51:58 -0400 Subject: [PATCH 1/3] Bug Fixes Prior to Work on Better CSS Support --- Source/Basic Shapes/SvgVisualElement.cs | 4 ++-- Source/Painting/SvgDeferredPaintServer.cs | 1 + Source/Text/SvgTextAnchor.cs | 1 + Source/Text/SvgTextBase.cs | 16 +++++++++++++--- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Source/Basic Shapes/SvgVisualElement.cs b/Source/Basic Shapes/SvgVisualElement.cs index 0bebf2c..fa84ceb 100644 --- a/Source/Basic Shapes/SvgVisualElement.cs +++ b/Source/Basic Shapes/SvgVisualElement.cs @@ -138,7 +138,7 @@ namespace Svg { if (this.Fill != null) { - using (Brush brush = this.Fill.GetBrush(this, this.FillOpacity)) + using (Brush brush = this.Fill.GetBrush(this, Math.Min(Math.Max(this.FillOpacity * this.Opacity, 0), 1))) { if (brush != null) { @@ -158,7 +158,7 @@ namespace Svg if (this.Stroke != null) { float strokeWidth = this.StrokeWidth.ToDeviceValue(this); - using (var pen = new Pen(this.Stroke.GetBrush(this, this.StrokeOpacity), strokeWidth)) + using (var pen = new Pen(this.Stroke.GetBrush(this, Math.Min(Math.Max(this.StrokeOpacity * this.Opacity, 0), 1)), strokeWidth)) { if (this.StrokeDashArray != null && this.StrokeDashArray.Count > 0) { diff --git a/Source/Painting/SvgDeferredPaintServer.cs b/Source/Painting/SvgDeferredPaintServer.cs index 88172a3..cbd4605 100644 --- a/Source/Painting/SvgDeferredPaintServer.cs +++ b/Source/Painting/SvgDeferredPaintServer.cs @@ -81,6 +81,7 @@ namespace Svg } else { + deferred.EnsureServer(); return deferred._concreteServer as T; } } diff --git a/Source/Text/SvgTextAnchor.cs b/Source/Text/SvgTextAnchor.cs index 207bf95..162b22a 100644 --- a/Source/Text/SvgTextAnchor.cs +++ b/Source/Text/SvgTextAnchor.cs @@ -12,6 +12,7 @@ namespace Svg [TypeConverter(typeof(SvgTextAnchorConverter))] public enum SvgTextAnchor { + inherit, /// /// The rendered characters are aligned such that the start of the text string is at the initial current text position. /// diff --git a/Source/Text/SvgTextBase.cs b/Source/Text/SvgTextBase.cs index c0d30c7..34a7fbe 100644 --- a/Source/Text/SvgTextBase.cs +++ b/Source/Text/SvgTextBase.cs @@ -25,7 +25,7 @@ namespace Svg private SvgUnitCollection _dx = new SvgUnitCollection(); private SvgUnit _letterSpacing; private SvgUnit _wordSpacing; - private SvgTextAnchor _textAnchor = SvgTextAnchor.Start; + private SvgTextAnchor _textAnchor = SvgTextAnchor.inherit; private static readonly SvgRenderer _stringMeasure; private const string DefaultFontFamily = "Times New Roman"; @@ -196,7 +196,15 @@ namespace Svg /// The bounds. public override System.Drawing.RectangleF Bounds { - get { return this.Path.GetBounds(); } + get + { + var path = this.Path; + foreach (var elem in this.Children.OfType()) + { + path.AddPath(elem.Path, false); + } + return path.GetBounds(); + } } private static string ValidateFontFamily(string fontFamilyList) @@ -361,8 +369,10 @@ namespace Svg _path = new GraphicsPath(); _path.StartFigure(); + var anchorElem = (from e in this.ParentsAndSelf.OfType() where e.TextAnchor != SvgTextAnchor.inherit select e).FirstOrDefault(); + // Determine the location of the start point - switch (this.TextAnchor) + switch (anchorElem == null ? this.TextAnchor : anchorElem.TextAnchor) { case SvgTextAnchor.Middle: x -= (boundsData.Bounds.Width / 2); -- GitLab From 3aedd8e824bd2315693824ed8a8b4736dc70846a Mon Sep 17 00:00:00 2001 From: Eric Domke Date: Fri, 1 Aug 2014 17:40:17 -0400 Subject: [PATCH 2/3] CSS Support - Very initial support of CSS stylesheets in the SVG via including the ExCss and Fizzler libraries - Bug fixes with path rendering - Improvements to the API for loading an SVG file --- .gitignore | 2 + Source/Css/CssQuery.cs | 40 + Source/Css/SvgElementOps.cs | 186 ++ Source/External/ExCSS/IToString.cs | 7 + Source/External/ExCSS/Lexer.cs | 1223 ++++++++ Source/External/ExCSS/Model/Enumerations.cs | 257 ++ .../Model/Extensions/CharacterExtensions.cs | 80 + .../Model/Extensions/StringExtensions.cs | 59 + Source/External/ExCSS/Model/FunctionBuffer.cs | 137 + Source/External/ExCSS/Model/HtmlEncoding.cs | 459 +++ Source/External/ExCSS/Model/ICssRules.cs | 9 + Source/External/ExCSS/Model/ICssSelector.cs | 7 + .../External/ExCSS/Model/IStyleDeclaration.cs | 7 + Source/External/ExCSS/Model/ISupportsMedia.cs | 7 + Source/External/ExCSS/Model/MediaTypeList.cs | 98 + .../ExCSS/Model/Rules/AggregateRule.cs | 16 + .../ExCSS/Model/Rules/CharacterSetRule.cs | 25 + .../ExCSS/Model/Rules/ConditionalRule.cs | 13 + .../ExCSS/Model/Rules/DocumentRule.cs | 82 + .../ExCSS/Model/Rules/FontFaceRule.cs | 88 + .../External/ExCSS/Model/Rules/GenericRule.cs | 36 + .../ExCSS/Model/Rules/IRuleContainer.cs | 10 + .../External/ExCSS/Model/Rules/ImportRule.cs | 41 + .../ExCSS/Model/Rules/KeyframeRule.cs | 39 + .../ExCSS/Model/Rules/KeyframesRule.cs | 49 + .../External/ExCSS/Model/Rules/MediaRule.cs | 47 + .../ExCSS/Model/Rules/NamespaceRule.cs | 30 + Source/External/ExCSS/Model/Rules/PageRule.cs | 58 + Source/External/ExCSS/Model/Rules/RuleSet.cs | 16 + .../ExCSS/Model/Rules/StyleDeclaration.cs | 184 ++ .../External/ExCSS/Model/Rules/StyleRule.cs | 61 + .../ExCSS/Model/Rules/SupportsRule.cs | 42 + .../Model/Selector/AggregateSelectorList.cs | 44 + .../ExCSS/Model/Selector/BaseSelector.cs | 15 + .../Model/Selector/CombinatorSelector.cs | 45 + .../ExCSS/Model/Selector/ComplexSelector.cs | 66 + .../Model/Selector/FirstChildSelector.cs | 21 + .../ExCSS/Model/Selector/LastChildSelector.cs | 21 + .../Model/Selector/MultipleSelectorList.cs | 41 + .../ExCSS/Model/Selector/NthChildSelector.cs | 24 + .../Model/Selector/NthFirstChildSelector.cs | 12 + .../Model/Selector/NthLastChildSelector.cs | 13 + .../Model/Selector/NthLastOfTypeSelector.cs | 12 + .../ExCSS/Model/Selector/NthOfTypeSelector.cs | 12 + .../ExCSS/Model/Selector/SelectorFactory.cs | 802 +++++ .../ExCSS/Model/Selector/SelectorList.cs | 57 + .../ExCSS/Model/Selector/SimpleSelector.cs | 126 + Source/External/ExCSS/Model/Specification.cs | 98 + .../External/ExCSS/Model/TextBlocks/Block.cs | 28 + .../ExCSS/Model/TextBlocks/BracketBlock.cs | 123 + .../ExCSS/Model/TextBlocks/CharacterBlock.cs | 23 + .../ExCSS/Model/TextBlocks/CommentBlock.cs | 35 + .../ExCSS/Model/TextBlocks/DelimiterBlock.cs | 23 + .../ExCSS/Model/TextBlocks/MatchBlock.cs | 39 + .../ExCSS/Model/TextBlocks/NumericBlock.cs | 26 + .../ExCSS/Model/TextBlocks/PipeBlock.cs | 28 + .../ExCSS/Model/TextBlocks/RangeBlock.cs | 69 + .../Model/TextBlocks/SpecialCharacter.cs | 21 + .../ExCSS/Model/TextBlocks/StringBlock.cs | 35 + .../ExCSS/Model/TextBlocks/SymbolBlock.cs | 47 + .../ExCSS/Model/TextBlocks/UnitBlock.cs | 37 + .../ExCSS/Model/Values/GenericFunction.cs | 33 + .../External/ExCSS/Model/Values/HtmlColor.cs | 252 ++ .../ExCSS/Model/Values/InheritTerm.cs | 17 + .../ExCSS/Model/Values/PrimitiveTerm.cs | 169 + .../External/ExCSS/Model/Values/Property.cs | 47 + Source/External/ExCSS/Model/Values/Term.cs | 9 + .../External/ExCSS/Model/Values/TermList.cs | 123 + Source/External/ExCSS/Parser.Blocks.cs | 853 +++++ Source/External/ExCSS/Parser.cs | 252 ++ Source/External/ExCSS/Parser.generated.cs | 2791 +++++++++++++++++ Source/External/ExCSS/ParserX.cs | 1425 +++++++++ Source/External/ExCSS/StyleSheet.cs | 146 + Source/External/ExCSS/StylesheetParseError.cs | 27 + Source/External/ExCSS/StylesheetReader.cs | 186 ++ Source/External/Fizzler/Either.cs | 136 + .../Fizzler/HumanReadableSelectorGenerator.cs | 256 ++ Source/External/Fizzler/IElementOps.cs | 190 ++ Source/External/Fizzler/ISelectorGenerator.cs | 206 ++ Source/External/Fizzler/NamespacePrefix.cs | 135 + Source/External/Fizzler/Parser.cs | 483 +++ Source/External/Fizzler/Reader.cs | 175 ++ Source/External/Fizzler/Selector.cs | 30 + Source/External/Fizzler/SelectorGenerator.cs | 341 ++ .../External/Fizzler/SelectorGeneratorTee.cs | 273 ++ .../Fizzler/SelectorsCachingCompiler.cs | 78 + Source/External/Fizzler/Token.cs | 319 ++ Source/External/Fizzler/TokenKind.cs | 109 + Source/External/Fizzler/Tokener.cs | 325 ++ Source/Painting/EnumConverters.cs | 2 +- Source/Paths/SvgPathBuilder.cs | 3 +- Source/Svg.csproj | 90 +- Source/SvgDocument.cs | 224 +- Source/SvgElement.cs | 23 + Source/SvgElementFactory.cs | 90 +- Source/SvgTextReader.cs | 7 + 96 files changed, 15061 insertions(+), 122 deletions(-) create mode 100644 Source/Css/CssQuery.cs create mode 100644 Source/Css/SvgElementOps.cs create mode 100644 Source/External/ExCSS/IToString.cs create mode 100644 Source/External/ExCSS/Lexer.cs create mode 100644 Source/External/ExCSS/Model/Enumerations.cs create mode 100644 Source/External/ExCSS/Model/Extensions/CharacterExtensions.cs create mode 100644 Source/External/ExCSS/Model/Extensions/StringExtensions.cs create mode 100644 Source/External/ExCSS/Model/FunctionBuffer.cs create mode 100644 Source/External/ExCSS/Model/HtmlEncoding.cs create mode 100644 Source/External/ExCSS/Model/ICssRules.cs create mode 100644 Source/External/ExCSS/Model/ICssSelector.cs create mode 100644 Source/External/ExCSS/Model/IStyleDeclaration.cs create mode 100644 Source/External/ExCSS/Model/ISupportsMedia.cs create mode 100644 Source/External/ExCSS/Model/MediaTypeList.cs create mode 100644 Source/External/ExCSS/Model/Rules/AggregateRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/CharacterSetRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/ConditionalRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/DocumentRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/FontFaceRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/GenericRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/IRuleContainer.cs create mode 100644 Source/External/ExCSS/Model/Rules/ImportRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/KeyframeRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/KeyframesRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/MediaRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/NamespaceRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/PageRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/RuleSet.cs create mode 100644 Source/External/ExCSS/Model/Rules/StyleDeclaration.cs create mode 100644 Source/External/ExCSS/Model/Rules/StyleRule.cs create mode 100644 Source/External/ExCSS/Model/Rules/SupportsRule.cs create mode 100644 Source/External/ExCSS/Model/Selector/AggregateSelectorList.cs create mode 100644 Source/External/ExCSS/Model/Selector/BaseSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/CombinatorSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/ComplexSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/FirstChildSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/LastChildSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/MultipleSelectorList.cs create mode 100644 Source/External/ExCSS/Model/Selector/NthChildSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/NthFirstChildSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/NthLastChildSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/NthLastOfTypeSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/NthOfTypeSelector.cs create mode 100644 Source/External/ExCSS/Model/Selector/SelectorFactory.cs create mode 100644 Source/External/ExCSS/Model/Selector/SelectorList.cs create mode 100644 Source/External/ExCSS/Model/Selector/SimpleSelector.cs create mode 100644 Source/External/ExCSS/Model/Specification.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/Block.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/BracketBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/CharacterBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/CommentBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/DelimiterBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/MatchBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/NumericBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/PipeBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/RangeBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/SpecialCharacter.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/StringBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/SymbolBlock.cs create mode 100644 Source/External/ExCSS/Model/TextBlocks/UnitBlock.cs create mode 100644 Source/External/ExCSS/Model/Values/GenericFunction.cs create mode 100644 Source/External/ExCSS/Model/Values/HtmlColor.cs create mode 100644 Source/External/ExCSS/Model/Values/InheritTerm.cs create mode 100644 Source/External/ExCSS/Model/Values/PrimitiveTerm.cs create mode 100644 Source/External/ExCSS/Model/Values/Property.cs create mode 100644 Source/External/ExCSS/Model/Values/Term.cs create mode 100644 Source/External/ExCSS/Model/Values/TermList.cs create mode 100644 Source/External/ExCSS/Parser.Blocks.cs create mode 100644 Source/External/ExCSS/Parser.cs create mode 100644 Source/External/ExCSS/Parser.generated.cs create mode 100644 Source/External/ExCSS/ParserX.cs create mode 100644 Source/External/ExCSS/StyleSheet.cs create mode 100644 Source/External/ExCSS/StylesheetParseError.cs create mode 100644 Source/External/ExCSS/StylesheetReader.cs create mode 100644 Source/External/Fizzler/Either.cs create mode 100644 Source/External/Fizzler/HumanReadableSelectorGenerator.cs create mode 100644 Source/External/Fizzler/IElementOps.cs create mode 100644 Source/External/Fizzler/ISelectorGenerator.cs create mode 100644 Source/External/Fizzler/NamespacePrefix.cs create mode 100644 Source/External/Fizzler/Parser.cs create mode 100644 Source/External/Fizzler/Reader.cs create mode 100644 Source/External/Fizzler/Selector.cs create mode 100644 Source/External/Fizzler/SelectorGenerator.cs create mode 100644 Source/External/Fizzler/SelectorGeneratorTee.cs create mode 100644 Source/External/Fizzler/SelectorsCachingCompiler.cs create mode 100644 Source/External/Fizzler/Token.cs create mode 100644 Source/External/Fizzler/TokenKind.cs create mode 100644 Source/External/Fizzler/Tokener.cs diff --git a/.gitignore b/.gitignore index 084d94f..c9cc0d5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ Source/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache Samples/SVGViewer/obj/ Samples/SVGViewer/bin/ Samples/SVGViewer/SVGViewer.OpenCover.Settings +*.dll +*.pdb diff --git a/Source/Css/CssQuery.cs b/Source/Css/CssQuery.cs new file mode 100644 index 0000000..911125c --- /dev/null +++ b/Source/Css/CssQuery.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Fizzler; +using ExCSS; + +namespace Svg.Css +{ + internal static class CssQuery + { + public static IEnumerable QuerySelectorAll(this SvgElement elem, string selector) + { + var generator = new SelectorGenerator(new SvgElementOps()); + Fizzler.Parser.Parse(selector, generator); + return generator.Selector(Enumerable.Repeat(elem, 1)); + } + + public static int GetSpecificity(this BaseSelector selector) + { + if (selector is SimpleSelector) + { + var simpleCode = selector.ToString(); + if (simpleCode.StartsWith("#")) + { + return 1 << 12; + } + else if (simpleCode.StartsWith(".")) + { + return 1 << 8; + } + else + { + return 1 << 4; + } + } + return 0; + } + } +} diff --git a/Source/Css/SvgElementOps.cs b/Source/Css/SvgElementOps.cs new file mode 100644 index 0000000..8928d4b --- /dev/null +++ b/Source/Css/SvgElementOps.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Fizzler; + +namespace Svg.Css +{ + internal class SvgElementOps : IElementOps + { + public Selector Type(NamespacePrefix prefix, string name) + { + var type = SvgElementFactory.AvailableElements.SingleOrDefault(e => e.ElementName == name); + return nodes => nodes.Where(n => n.GetType() == type.ElementType); + } + + public Selector Universal(NamespacePrefix prefix) + { + return nodes => nodes; + } + + public Selector Id(string id) + { + return nodes => nodes.Where(n => n.ID == id); + } + + public Selector Class(string clazz) + { + return AttributeIncludes(NamespacePrefix.None, "class", clazz); + } + + public Selector AttributeExists(NamespacePrefix prefix, string name) + { + return nodes => nodes.Where(n => n.Attributes.ContainsKey(name) || n.CustomAttributes.ContainsKey(name)); + } + + public Selector AttributeExact(NamespacePrefix prefix, string name, string value) + { + return nodes => nodes.Where(n => + { + string val = null; + object oval = null; + return (n.CustomAttributes.TryGetValue(name, out val) && val == value) || + (n.Attributes.TryGetValue(name, out oval) && oval.ToString() == value); + }); + } + + public Selector AttributeIncludes(NamespacePrefix prefix, string name, string value) + { + return nodes => nodes.Where(n => + { + string val = null; + object oval = null; + return (n.CustomAttributes.TryGetValue(name, out val) && val.Split(' ').Contains(value)) || + (n.Attributes.TryGetValue(name, out oval) && oval.ToString().Split(' ').Contains(value)); + }); + } + + public Selector AttributeDashMatch(NamespacePrefix prefix, string name, string value) + { + return string.IsNullOrEmpty(value) + ? (Selector)(nodes => Enumerable.Empty()) + : (nodes => nodes.Where(n => + { + string val = null; + object oval = null; + return (n.CustomAttributes.TryGetValue(name, out val) && val.Split('-').Contains(value)) || + (n.Attributes.TryGetValue(name, out oval) && oval.ToString().Split('-').Contains(value)); + })); + } + + public Selector AttributePrefixMatch(NamespacePrefix prefix, string name, string value) + { + return string.IsNullOrEmpty(value) + ? (Selector)(nodes => Enumerable.Empty()) + : (nodes => nodes.Where(n => + { + string val = null; + object oval = null; + return (n.CustomAttributes.TryGetValue(name, out val) && val.StartsWith(value)) || + (n.Attributes.TryGetValue(name, out oval) && oval.ToString().StartsWith(value)); + })); + } + + public Selector AttributeSuffixMatch(NamespacePrefix prefix, string name, string value) + { + return string.IsNullOrEmpty(value) + ? (Selector)(nodes => Enumerable.Empty()) + : (nodes => nodes.Where(n => + { + string val = null; + object oval = null; + return (n.CustomAttributes.TryGetValue(name, out val) && val.EndsWith(value)) || + (n.Attributes.TryGetValue(name, out oval) && oval.ToString().EndsWith(value)); + })); + } + + public Selector AttributeSubstring(NamespacePrefix prefix, string name, string value) + { + return string.IsNullOrEmpty(value) + ? (Selector)(nodes => Enumerable.Empty()) + : (nodes => nodes.Where(n => + { + string val = null; + object oval = null; + return (n.CustomAttributes.TryGetValue(name, out val) && val.Contains(value)) || + (n.Attributes.TryGetValue(name, out oval) && oval.ToString().Contains(value)); + })); + } + + public Selector FirstChild() + { + return nodes => nodes.Where(n => n.Parent == null || n.Parent.Children.First() == n); + } + + public Selector LastChild() + { + return nodes => nodes.Where(n => n.Parent == null || n.Parent.Children.Last() == n); + } + + private IEnumerable GetByIds(IList items, IEnumerable indices) + { + foreach (var i in indices) + { + if (i >= 0 && i < items.Count) yield return items[i]; + } + } + + public Selector NthChild(int a, int b) + { + return nodes => nodes.Where(n => n.Parent != null && GetByIds(n.Parent.Children, (from i in Enumerable.Range(0, n.Parent.Children.Count / a) select a * i + b)).Contains(n)); + } + + public Selector OnlyChild() + { + return nodes => nodes.Where(n => n.Parent == null || n.Parent.Children.Count == 1); + } + + public Selector Empty() + { + return nodes => nodes.Where(n => n.Children.Count == 0); + } + + public Selector Child() + { + return nodes => nodes.SelectMany(n => n.Children); + } + + public Selector Descendant() + { + return nodes => nodes.SelectMany(n => Descendants(n)); + } + + private IEnumerable Descendants(SvgElement elem) + { + foreach (var child in elem.Children) + { + yield return child; + foreach (var descendant in child.Descendants()) + { + yield return descendant; + } + } + } + + public Selector Adjacent() + { + return nodes => nodes.SelectMany(n => ElementsAfterSelf(n).Take(1)); + } + + public Selector GeneralSibling() + { + return nodes => nodes.SelectMany(n => ElementsAfterSelf(n)); + } + + private IEnumerable ElementsAfterSelf(SvgElement self) + { + return (self.Parent == null ? Enumerable.Empty() : self.Parent.Children.Skip(self.Parent.Children.IndexOf(self) + 1)); + } + + public Selector NthLastChild(int a, int b) + { + throw new NotImplementedException(); + } + } +} diff --git a/Source/External/ExCSS/IToString.cs b/Source/External/ExCSS/IToString.cs new file mode 100644 index 0000000..778aea7 --- /dev/null +++ b/Source/External/ExCSS/IToString.cs @@ -0,0 +1,7 @@ +namespace ExCSS +{ + public interface IToString + { + string ToString(bool friendlyFormat, int indentation = 0); + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Lexer.cs b/Source/External/ExCSS/Lexer.cs new file mode 100644 index 0000000..6d81d21 --- /dev/null +++ b/Source/External/ExCSS/Lexer.cs @@ -0,0 +1,1223 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using ExCSS.Model; +using ExCSS.Model.TextBlocks; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + sealed class Lexer + { + private readonly StringBuilder _buffer; + private readonly StylesheetReader _stylesheetReader; + private bool _ignoreWhitespace; + private bool _ignoreComments; + internal Action ErrorHandler { get; set; } + + internal Lexer(StylesheetReader source) + { + _buffer = new StringBuilder(); + _stylesheetReader = source; + + ErrorHandler = (err, msg) => { }; + } + + private Block DataBlock(char current) + { + switch (current) + { + case Specification.LineFeed: + case Specification.CarriageReturn: + case Specification.Tab: + case Specification.Space: + do + { + current = _stylesheetReader.Next; + } + while (current.IsSpaceCharacter()); + + if (_ignoreWhitespace) + { + return DataBlock(current); + } + + _stylesheetReader.Back(); + return SpecialCharacter.Whitespace; + + case Specification.DoubleQuote: + return DoubleQuoteString(_stylesheetReader.Next); + + case Specification.Hash: + return HashStart(_stylesheetReader.Next); + + case Specification.DollarSign: + current = _stylesheetReader.Next; + + return current == Specification.EqualSign + ? MatchBlock.Suffix + : Block.Delim(_stylesheetReader.Previous); + + case Specification.SingleQuote: + return SingleQuoteString(_stylesheetReader.Next); + + case Specification.ParenOpen: + return BracketBlock.OpenRound; + + case Specification.ParenClose: + return BracketBlock.CloseRound; + + case Specification.Asterisk: + current = _stylesheetReader.Next; + + return current == Specification.EqualSign + ? MatchBlock.Substring + : Block.Delim(_stylesheetReader.Previous); + + case Specification.PlusSign: + { + var nextFirst = _stylesheetReader.Next; + + if (nextFirst == Specification.EndOfFile) + { + _stylesheetReader.Back(); + } + else + { + var nextSEcond = _stylesheetReader.Next; + _stylesheetReader.Back(2); + + if (nextFirst.IsDigit() || (nextFirst == Specification.Period && nextSEcond.IsDigit())) + { + return NumberStart(current); + } + } + + return Block.Delim(current); + } + + case Specification.Comma: + return SpecialCharacter.Comma; + + case Specification.Period: + { + var c = _stylesheetReader.Next; + + return c.IsDigit() + ? NumberStart(_stylesheetReader.Previous) + : Block.Delim(_stylesheetReader.Previous); + } + + case Specification.MinusSign: + { + var nextFirst = _stylesheetReader.Next; + + if (nextFirst == Specification.EndOfFile) + { + _stylesheetReader.Back(); + } + else + { + var nextSecond = _stylesheetReader.Next; + _stylesheetReader.Back(2); + + if (nextFirst.IsDigit() || (nextFirst == Specification.Period && nextSecond.IsDigit())) + { + return NumberStart(current); + } + if (nextFirst.IsNameStart()) + { + return IdentStart(current); + } + if (nextFirst == Specification.ReverseSolidus && !nextSecond.IsLineBreak() && nextSecond != Specification.EndOfFile) + { + return IdentStart(current); + } + + if (nextFirst != Specification.MinusSign || nextSecond != Specification.GreaterThan) + { + return Block.Delim(current); + } + _stylesheetReader.Advance(2); + + return _ignoreComments + ? DataBlock(_stylesheetReader.Next) + : CommentBlock.Close; + } + + return Block.Delim(current); + } + + case Specification.Solidus: + + current = _stylesheetReader.Next; + + return current == Specification.Asterisk + ? Comment(_stylesheetReader.Next) + : Block.Delim(_stylesheetReader.Previous); + + case Specification.ReverseSolidus: + current = _stylesheetReader.Next; + + if (current.IsLineBreak() || current == Specification.EndOfFile) + { + ErrorHandler(current == Specification.EndOfFile + ? ParserError.EndOfFile + : ParserError.UnexpectedLineBreak, + ErrorMessages.LineBreakEof); + + return Block.Delim(_stylesheetReader.Previous); + } + + return IdentStart(_stylesheetReader.Previous); + + case Specification.Colon: + return SpecialCharacter.Colon; + + case Specification.Simicolon: + return SpecialCharacter.Semicolon; + + case Specification.LessThan: + current = _stylesheetReader.Next; + + if (current == Specification.Em) + { + current = _stylesheetReader.Next; + + if (current == Specification.MinusSign) + { + current = _stylesheetReader.Next; + + if (current == Specification.MinusSign) + { + return _ignoreComments + ? DataBlock(_stylesheetReader.Next) + : CommentBlock.Open; + } + + current = _stylesheetReader.Previous; + } + + current = _stylesheetReader.Previous; + } + + return Block.Delim(_stylesheetReader.Previous); + + case Specification.At: + return AtKeywordStart(_stylesheetReader.Next); + + case Specification.SquareBracketOpen: + return BracketBlock.OpenSquare; + + case Specification.SquareBracketClose: + return BracketBlock.CloseSquare; + + case Specification.Accent: + current = _stylesheetReader.Next; + + return current == Specification.EqualSign + ? MatchBlock.Prefix + : Block.Delim(_stylesheetReader.Previous); + + case Specification.CurlyBraceOpen: + return BracketBlock.OpenCurly; + + case Specification.CurlyBraceClose: + return BracketBlock.CloseCurly; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + return NumberStart(current); + + case 'U': + case 'u': + current = _stylesheetReader.Next; + + if (current == Specification.PlusSign) + { + current = _stylesheetReader.Next; + + if (current.IsHex() || current == Specification.QuestionMark) + return UnicodeRange(current); + + current = _stylesheetReader.Previous; + } + + return IdentStart(_stylesheetReader.Previous); + + case Specification.Pipe: + current = _stylesheetReader.Next; + + if (current == Specification.EqualSign) + { + return MatchBlock.Dash; + } + if (current == Specification.Pipe) + { + return Block.Column; + } + + return Block.Delim(_stylesheetReader.Previous); + + case Specification.Tilde: + current = _stylesheetReader.Next; + + if (current == Specification.EqualSign) + { + return MatchBlock.Include; + } + + return Block.Delim(_stylesheetReader.Previous); + + case Specification.EndOfFile: + return null; + + case Specification.Em: + current = _stylesheetReader.Next; + + return current == Specification.EqualSign + ? MatchBlock.Not + : Block.Delim(_stylesheetReader.Previous); + + default: + return current.IsNameStart() + ? IdentStart(current) + : Block.Delim(current); + } + } + + private Block DoubleQuoteString(char current) + { + while (true) + { + switch (current) + { + case Specification.DoubleQuote: + case Specification.EndOfFile: + return StringBlock.Plain(FlushBuffer()); + + case Specification.FormFeed: + case Specification.LineFeed: + ErrorHandler(ParserError.UnexpectedLineBreak, ErrorMessages.DoubleQuotedString); + _stylesheetReader.Back(); + return StringBlock.Plain(FlushBuffer(), true); + + case Specification.ReverseSolidus: + current = _stylesheetReader.Next; + + if (current.IsLineBreak()) + { + _buffer.AppendLine(); + } + else if (current != Specification.EndOfFile) + { + _buffer.Append(ConsumeEscape(current)); + } + else + { + ErrorHandler(ParserError.EndOfFile, ErrorMessages.DoubleQuotedStringEof); + _stylesheetReader.Back(); + return StringBlock.Plain(FlushBuffer(), true); + } + + break; + + default: + _buffer.Append(current); + break; + } + + current = _stylesheetReader.Next; + } + } + + private Block SingleQuoteString(char current) + { + while (true) + { + switch (current) + { + case Specification.SingleQuote: + case Specification.EndOfFile: + return StringBlock.Plain(FlushBuffer()); + + case Specification.FormFeed: + case Specification.LineFeed: + ErrorHandler(ParserError.UnexpectedLineBreak, ErrorMessages.SingleQuotedString); + _stylesheetReader.Back(); + return (StringBlock.Plain(FlushBuffer(), true)); + + case Specification.ReverseSolidus: + current = _stylesheetReader.Next; + + if (current.IsLineBreak()) + { + _buffer.AppendLine(); + } + else if (current != Specification.EndOfFile) + { + _buffer.Append(ConsumeEscape(current)); + } + else + { + ErrorHandler(ParserError.EndOfFile, ErrorMessages.SingleQuotedStringEof); + _stylesheetReader.Back(); + return (StringBlock.Plain(FlushBuffer(), true)); + } + + break; + + default: + _buffer.Append(current); + break; + } + + current = _stylesheetReader.Next; + } + } + + private Block HashStart(char current) + { + if (current.IsNameStart()) + { + _buffer.Append(current); + return HashRest(_stylesheetReader.Next); + } + + if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + return HashRest(_stylesheetReader.Next); + } + + if (current != Specification.ReverseSolidus) + { + _stylesheetReader.Back(); + return Block.Delim(Specification.Hash); + } + + ErrorHandler(ParserError.InvalidCharacter, ErrorMessages.InvalidCharacterAfterHash); + return Block.Delim(Specification.Hash); + } + + private Block HashRest(char current) + { + while (true) + { + if (current.IsName()) + { + _buffer.Append(current); + } + else if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + } + else if (current == Specification.ReverseSolidus) + { + ErrorHandler(ParserError.InvalidCharacter, ErrorMessages.InvalidCharacterAfterHash); + + _stylesheetReader.Back(); + return SymbolBlock.Hash(FlushBuffer()); + } + else + { + _stylesheetReader.Back(); + return SymbolBlock.Hash(FlushBuffer()); + } + + current = _stylesheetReader.Next; + } + } + + private Block Comment(char current) + { + while (true) + { + switch (current) + { + case Specification.Asterisk: + current = _stylesheetReader.Next; + if (current == Specification.Solidus) + { + return DataBlock(_stylesheetReader.Next); + } + break; + case Specification.Solidus: + { + if (_stylesheetReader.Previous == Specification.Asterisk) + { + return DataBlock(_stylesheetReader.Next); + } + current = _stylesheetReader.Next; + break; + } + case Specification.EndOfFile: + + ErrorHandler(ParserError.EndOfFile, ErrorMessages.ExpectedCommentEnd); + + return DataBlock(current); + } + + current = _stylesheetReader.Next; + } + } + + private Block AtKeywordStart(char current) + { + if (current == Specification.MinusSign) + { + current = _stylesheetReader.Next; + + if (current.IsNameStart() || IsValidEscape(current)) + { + _buffer.Append(Specification.MinusSign); + return AtKeywordRest(current); + } + + _stylesheetReader.Back(2); + + return Block.Delim(Specification.At); + } + + if (current.IsNameStart()) + { + _buffer.Append(current); + return AtKeywordRest(_stylesheetReader.Next); + } + + if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + return AtKeywordRest(_stylesheetReader.Next); + } + + _stylesheetReader.Back(); + return Block.Delim(Specification.At); + + } + + private Block AtKeywordRest(char current) + { + while (true) + { + if (current.IsName()) + { + _buffer.Append(current); + } + else if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + } + else + { + _stylesheetReader.Back(); + return SymbolBlock.At(FlushBuffer()); + } + + current = _stylesheetReader.Next; + } + } + + private Block IdentStart(char current) + { + if (current == Specification.MinusSign) + { + current = _stylesheetReader.Next; + + if (current.IsNameStart() || IsValidEscape(current)) + { + _buffer.Append(Specification.MinusSign); + return IdentRest(current); + } + + _stylesheetReader.Back(); + return Block.Delim(Specification.MinusSign); + } + + if (current.IsNameStart()) + { + _buffer.Append(current); + return IdentRest(_stylesheetReader.Next); + } + + if (current != Specification.ReverseSolidus) + { + return DataBlock(current); + } + + if (!IsValidEscape(current)) + { + return DataBlock(current); + } + + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + return IdentRest(_stylesheetReader.Next); + } + + private Block IdentRest(char current) + { + while (true) + { + if (current.IsName()) + { + _buffer.Append(current); + } + else if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + } + else if (current == Specification.ParenOpen) + { + switch (_buffer.ToString().ToLower()) + { + case "url": + _buffer.Length = 0; + return UrlStart(_stylesheetReader.Next);//, GrammarSegment.Url); + + case "domain": + _buffer.Length = 0; + return UrlStart(_stylesheetReader.Next);//, GrammarSegment.Domain); + + case "url-prefix": + _buffer.Length = 0; + return UrlStart(_stylesheetReader.Next);//, GrammarSegment.UrlPrefix); + + default: + return SymbolBlock.Function(FlushBuffer()); + } + + } + else + { + _stylesheetReader.Back(); + return SymbolBlock.Ident(FlushBuffer()); + } + + current = _stylesheetReader.Next; + } + } + + private Block NumberStart(char current) + { + while (true) + { + switch (current) + { + case Specification.MinusSign: + case Specification.PlusSign: + _buffer.Append(current); + current = _stylesheetReader.Next; + if (current == Specification.Period) + { + _buffer.Append(current); + _buffer.Append(_stylesheetReader.Next); + + return NumberFraction(_stylesheetReader.Next); + } + _buffer.Append(current); + return NumberRest(_stylesheetReader.Next); + + case Specification.Period: + _buffer.Append(current); + _buffer.Append(_stylesheetReader.Next); + return NumberFraction(_stylesheetReader.Next); + + default: + if (current.IsDigit()) + { + _buffer.Append(current); + return NumberRest(_stylesheetReader.Next); + } + break; + } + + current = _stylesheetReader.Next; + } + } + + private Block NumberRest(char current) + { + while (true) + { + if (current.IsDigit()) + { + _buffer.Append(current); + } + else if (current.IsNameStart()) + { + var number = FlushBuffer(); + _buffer.Append(current); + return Dimension(_stylesheetReader.Next, number); + } + else if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + var number = FlushBuffer(); + _buffer.Append(ConsumeEscape(current)); + return Dimension(_stylesheetReader.Next, number); + } + else + { + break; + } + + current = _stylesheetReader.Next; + } + + switch (current) + { + case Specification.Period: + current = _stylesheetReader.Next; + + if (current.IsDigit()) + { + _buffer.Append(Specification.Period).Append(current); + return NumberFraction(_stylesheetReader.Next); + } + + _stylesheetReader.Back(); + return Block.Number(FlushBuffer()); + + case '%': + return UnitBlock.Percentage(FlushBuffer()); + + case 'e': + case 'E': + return NumberExponential(current); + + case Specification.MinusSign: + return NumberDash(current); + + default: + _stylesheetReader.Back(); + return Block.Number(FlushBuffer()); + } + } + + private Block NumberFraction(char current) + { + while (true) + { + if (current.IsDigit()) + { + _buffer.Append(current); + } + else if (current.IsNameStart()) + { + var number = FlushBuffer(); + _buffer.Append(current); + + return Dimension(_stylesheetReader.Next, number); + } + else if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + var number = FlushBuffer(); + _buffer.Append(ConsumeEscape(current)); + + return Dimension(_stylesheetReader.Next, number); + } + else + { + break; + } + + current = _stylesheetReader.Next; + } + + switch (current) + { + case 'e': + case 'E': + return NumberExponential(current); + + case '%': + return UnitBlock.Percentage(FlushBuffer()); + + case Specification.MinusSign: + return NumberDash(current); + + default: + _stylesheetReader.Back(); + return Block.Number(FlushBuffer()); + } + } + + private Block Dimension(char current, string number) + { + while (true) + { + if (current.IsName()) + { + _buffer.Append(current); + } + else if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + } + else + { + _stylesheetReader.Back(); + return UnitBlock.Dimension(number, FlushBuffer()); + } + + current = _stylesheetReader.Next; + } + } + + private Block SciNotation(char current) + { + while (true) + { + if (current.IsDigit()) + { + _buffer.Append(current); + } + else + { + _stylesheetReader.Back(); + return Block.Number(FlushBuffer()); + } + + current = _stylesheetReader.Next; + } + } + + private Block UrlStart(char current) + { + while (current.IsSpaceCharacter()) + { + current = _stylesheetReader.Next; + } + + switch (current) + { + case Specification.EndOfFile: + ErrorHandler(ParserError.EndOfFile, ErrorMessages.InvalidUrlEnd); + return StringBlock.Url(string.Empty, true); + + case Specification.DoubleQuote: + return DoubleQuotedUrl(_stylesheetReader.Next); + + case Specification.SingleQuote: + return SingleQuoteUrl(_stylesheetReader.Next); + + case ')': + return StringBlock.Url(string.Empty); + + default: + return UnquotedUrl(current); + } + } + + private Block DoubleQuotedUrl(char current) + { + while (true) + { + if (current.IsLineBreak()) + { + ErrorHandler(ParserError.UnexpectedLineBreak, ErrorMessages.InvalidUrlEnd); + return BadUrl(_stylesheetReader.Next); + } + + if (Specification.EndOfFile == current) + { + return StringBlock.Url(FlushBuffer()); + } + + if (current == Specification.DoubleQuote) + { + return UrlEnd(_stylesheetReader.Next); + } + + if (current == Specification.ReverseSolidus) + { + current = _stylesheetReader.Next; + + if (current == Specification.EndOfFile) + { + _stylesheetReader.Back(2); + ErrorHandler(ParserError.EndOfFile, ErrorMessages.InvalidUrlEnd); + return StringBlock.Url(FlushBuffer(), true); + } + + if (current.IsLineBreak()) + { + _buffer.AppendLine(); + } + else + { + _buffer.Append(ConsumeEscape(current)); + } + } + else + { + _buffer.Append(current); + } + + current = _stylesheetReader.Next; + } + } + + private Block SingleQuoteUrl(char current) + { + while (true) + { + if (current.IsLineBreak()) + { + ErrorHandler(ParserError.UnexpectedLineBreak, ErrorMessages.SingleQuotedString); + return BadUrl(_stylesheetReader.Next); + } + + if (Specification.EndOfFile == current) + { + return StringBlock.Url(FlushBuffer()); + } + + if (current == Specification.SingleQuote) + { + return UrlEnd(_stylesheetReader.Next); + } + + if (current == Specification.ReverseSolidus) + { + current = _stylesheetReader.Next; + + if (current == Specification.EndOfFile) + { + _stylesheetReader.Back(2); + ErrorHandler(ParserError.EndOfFile, ErrorMessages.SingleQuotedString); + return StringBlock.Url(FlushBuffer(), true); + } + + if (current.IsLineBreak()) + { + _buffer.AppendLine(); + } + else + { + _buffer.Append(ConsumeEscape(current)); + } + } + else + { + _buffer.Append(current); + } + + current = _stylesheetReader.Next; + } + } + + private Block UnquotedUrl(char current) + { + while (true) + { + if (current.IsSpaceCharacter()) + { + return UrlEnd(_stylesheetReader.Next); + } + + if (current == Specification.ParenClose || current == Specification.EndOfFile) + { + return StringBlock.Url(FlushBuffer()); + } + + if (current == Specification.DoubleQuote || current == Specification.SingleQuote || + current == Specification.ParenOpen || current.IsNonPrintable()) + { + ErrorHandler(ParserError.InvalidCharacter, ErrorMessages.InvalidUrlQuote); + return BadUrl(_stylesheetReader.Next); + } + + if (current == Specification.ReverseSolidus) + { + if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + } + else + { + ErrorHandler(ParserError.InvalidCharacter, ErrorMessages.InvalidUrlCharacter); + return BadUrl(_stylesheetReader.Next); + } + } + else + { + _buffer.Append(current); + } + + current = _stylesheetReader.Next; + } + } + + private Block UrlEnd(char current) + { + while (true) + { + if (current == Specification.ParenClose) + { + return StringBlock.Url(FlushBuffer()); + } + + if (!current.IsSpaceCharacter()) + { + ErrorHandler(ParserError.InvalidCharacter, ErrorMessages.InvalidUrlCharacter); + return BadUrl(current); + } + + current = _stylesheetReader.Next; + } + } + + private Block BadUrl(char current) + { + while (true) + { + if (current == Specification.EndOfFile) + { + ErrorHandler(ParserError.EndOfFile, ErrorMessages.InvalidUrlEnd); + + return StringBlock.Url(FlushBuffer(), true); + } + + if (current == Specification.ParenClose) + { + return StringBlock.Url(FlushBuffer(), true); + } + + if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + _buffer.Append(ConsumeEscape(current)); + } + + current = _stylesheetReader.Next; + } + } + + private Block UnicodeRange(char current) + { + for (var i = 0; i < 6; i++) + { + if (!current.IsHex()) + { + break; + } + + _buffer.Append(current); + current = _stylesheetReader.Next; + } + + if (_buffer.Length != 6) + { + for (var i = 0; i < 6 - _buffer.Length; i++) + { + if (current != Specification.QuestionMark) + { + current = _stylesheetReader.Previous; + break; + } + + _buffer.Append(current); + current = _stylesheetReader.Next; + } + + var range = FlushBuffer(); + var start = range.Replace(Specification.QuestionMark, '0'); + var end = range.Replace(Specification.QuestionMark, 'F'); + return Block.Range(start, end); + } + + if (current == Specification.MinusSign) + { + current = _stylesheetReader.Next; + + if (current.IsHex()) + { + var start = _buffer.ToString(); + _buffer.Length = 0; + + for (var i = 0; i < 6; i++) + { + if (!current.IsHex()) + { + current = _stylesheetReader.Previous; + break; + } + + _buffer.Append(current); + current = _stylesheetReader.Next; + } + + var end = FlushBuffer(); + return Block.Range(start, end); + } + + _stylesheetReader.Back(2); + return Block.Range(FlushBuffer(), null); + + } + + _stylesheetReader.Back(); + return Block.Range(FlushBuffer(), null); + } + + private string FlushBuffer() + { + var value = _buffer.ToString(); + _buffer.Length = 0; + return value; + } + + private Block NumberExponential(char current) + { + current = _stylesheetReader.Next; + + if (current.IsDigit()) + { + _buffer.Append('e').Append(current); + return SciNotation(_stylesheetReader.Next); + } + + if (current == Specification.PlusSign || current == Specification.MinusSign) + { + var op = current; + current = _stylesheetReader.Next; + + if (current.IsDigit()) + { + _buffer.Append('e').Append(op).Append(current); + return SciNotation(_stylesheetReader.Next); + } + + _stylesheetReader.Back(); + } + + current = _stylesheetReader.Previous; + var number = FlushBuffer(); + _buffer.Append(current); + + return Dimension(_stylesheetReader.Next, number); + } + + private Block NumberDash(char current) + { + current = _stylesheetReader.Next; + + if (current.IsNameStart()) + { + var number = FlushBuffer(); + _buffer.Append(Specification.MinusSign).Append(current); + return Dimension(_stylesheetReader.Next, number); + } + + if (IsValidEscape(current)) + { + current = _stylesheetReader.Next; + var number = FlushBuffer(); + _buffer.Append(Specification.MinusSign).Append(ConsumeEscape(current)); + return Dimension(_stylesheetReader.Next, number); + } + + _stylesheetReader.Back(2); + return Block.Number(FlushBuffer()); + } + + private string ConsumeEscape(char current) + { + if (!current.IsHex()) + { + return current.ToString(CultureInfo.InvariantCulture); + } + + var escape = new List(); + + for (var i = 0; i < 6; i++) + { + escape.Add(current); + current = _stylesheetReader.Next; + + if (!current.IsHex()) + { + break; + } + } + + current = _stylesheetReader.Previous; + var code = int.Parse(new string(escape.ToArray()), NumberStyles.HexNumber); + return Char.ConvertFromUtf32(code); + } + + private bool IsValidEscape(char current) + { + if (current != Specification.ReverseSolidus) + { + return false; + } + + current = _stylesheetReader.Next; + _stylesheetReader.Back(); + + if (current == Specification.EndOfFile) + { + return false; + } + + return !current.IsLineBreak(); + } + + internal bool IgnoreWhitespace + { + get { return _ignoreWhitespace; } + set { _ignoreWhitespace = value; } + } + + internal bool IgnoreComments + { + get { return _ignoreComments; } + set { _ignoreComments = value; } + } + + internal StylesheetReader Stream + { + get { return _stylesheetReader; } + } + + internal IEnumerable Tokens + { + get + { + while (true) + { + var token = DataBlock(_stylesheetReader.Current); + + if (token == null) + { + yield break; + } + + _stylesheetReader.Advance(); + + yield return token; + } + } + } + } +} diff --git a/Source/External/ExCSS/Model/Enumerations.cs b/Source/External/ExCSS/Model/Enumerations.cs new file mode 100644 index 0000000..347565f --- /dev/null +++ b/Source/External/ExCSS/Model/Enumerations.cs @@ -0,0 +1,257 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal static class RuleTypes + { + internal const string CharacterSet = "charset"; + internal const string Keyframes = "keyframes"; + internal const string Media = "media"; + internal const string Page = "page"; + internal const string Import = "import"; + internal const string FontFace = "font-face"; + internal const string Namespace = "namespace"; + internal const string Supports = "supports"; + internal const string Document = "document"; + } + + internal static class PseudoSelectorPrefix + { + internal const string NthChildOdd = "odd"; + internal const string NthChildEven = "even"; + internal const string NthChildN = "n"; + internal const string PseudoFunctionNthchild = "nth-child"; + internal const string PseudoFunctionNthlastchild = "nth-last-child"; + internal const string PseudoFunctionNthOfType = "nth-of-type"; + internal const string PseudoFunctionNthLastOfType = "nth-last-of-type"; + internal const string PseudoRoot = "root"; + internal const string PseudoFirstOfType = "first-of-type"; + internal const string PseudoLastoftype = "last-of-type"; + internal const string PseudoOnlychild = "only-child"; + internal const string PseudoOnlyOfType = "only-of-type"; + internal const string PseudoFirstchild = "first-child"; + internal const string PseudoLastchild = "last-child"; + internal const string PseudoEmpty = "empty"; + internal const string PseudoLink = "link"; + internal const string PseudoVisited = "visited"; + internal const string PseudoActive = "active"; + internal const string PseudoHover = "hover"; + internal const string PseudoFocus = "focus"; + internal const string PseudoTarget = "target"; + internal const string PseudoEnabled = "enabled"; + internal const string PseudoDisabled = "disabled"; + internal const string PseudoChecked = "checked"; + internal const string PseudoUnchecked = "unchecked"; + internal const string PseudoIndeterminate = "indeterminate"; + internal const string PseudoDefault = "default"; + internal const string PseudoValid = "valid"; + internal const string PseudoInvalid = "invalid"; + internal const string PseudoRequired = "required"; + internal const string PseudoInrange = "in-range"; + internal const string PseudoOutofrange = "out-of-range"; + internal const string PseudoOptional = "optional"; + internal const string PseudoReadonly = "read-only"; + internal const string PseudoReadwrite = "read-write"; + internal const string PseudoFunctionDir = "dir"; + + internal const string PseudoFunctionNot = "not"; + internal const string PseudoFunctionLang = "lang"; + internal const string PseudoFunctionContains = "contains"; + internal const string PseudoElementBefore = "before"; + internal const string PseudoElementAfter = "after"; + internal const string PseudoElementSelection = "selection"; + internal const string PseudoElementFirstline = "first-line"; + internal const string PseudoElementFirstletter = "first-letter"; + } + + internal static class ErrorMessages + { + internal const string InvalidCharacter = "Invalid character detected."; + internal const string LineBreakEof = "Unexpected line break or EOF."; + internal const string UnexpectedCommentToken = "The input element is unexpected and has been ignored."; + internal const string DoubleQuotedString = "Expected double quoted string to terminate before form feed or line feed."; + internal const string DoubleQuotedStringEof = "Expected double quoted string to terminate before end of file."; + internal const string SingleQuotedString = "Expected single quoted string to terminate before form feed or line feed."; + internal const string SingleQuotedStringEof = "Expected single quoted string to terminate before end of file."; + internal const string InvalidCharacterAfterHash = "Invalid character after #."; + internal const string InvalidIdentAfterHash = "Invalid character after #."; + internal const string InvalidUrlEnd = "Expected URL to terminate before line break or end of file."; + internal const string InvalidUrlQuote = "Expected quotation or open paren in URL."; + internal const string InvalidUrlCharacter = "Invalid character in URL."; + internal const string ExpectedCommentEnd = "Expected comment to close before end of file."; + internal const string Default = "An unexpected error occurred."; + } + + public enum Combinator + { + Child, + Descendent, + AdjacentSibling, + Sibling, + Namespace + } + + internal enum GrammarSegment + { + String, + Url, + UrlPrefix, + Domain, + Hash, //# + AtRule, //@ + Ident, + Function, + Number, + Percentage, + Dimension, + Range, + CommentOpen, + CommentClose, + Column, + Delimiter, + IncludeMatch, //~= + DashMatch, // |= + PrefixMatch, // ^= + SuffixMatch, // $= + SubstringMatch, // *= + NegationMatch, // != + ParenOpen, + ParenClose, + CurlyBraceOpen, + CurlyBracketClose, + SquareBraceOpen, + SquareBracketClose, + Colon, + Comma, + Semicolon, + Whitespace + } + + public enum RuleType + { + Unknown = 0, + Style = 1, + Charset = 2, + Import = 3, + Media = 4, + FontFace = 5, + Page = 6, + Keyframes = 7, + Keyframe = 8, + Namespace = 10, + CounterStyle = 11, + Supports = 12, + Document = 13, + FontFeatureValues = 14, + Viewport = 15, + RegionStyle = 16 + } + + public enum UnitType + { + Unknown = 0, + Number = 1, + Percentage = 2, + Ems = 3, + Exs = 4, + Pixel = 5, + Centimeter = 6, + Millimeter = 7, + Inch = 8, + Point = 9, + Percent = 10, + Degree = 11, + Radian = 12, + Grad = 13, + Millisecond = 14, + Second = 15, + Hertz = 16, + KiloHertz = 17, + Dimension = 18, + String = 19, + Uri = 20, + Ident = 21, + Attribute = 22, + Counter = 23, + Rect = 24, + RGB = 25, + ViewportWidth = 26, + ViewportHeight = 28, + ViewportMin = 29, + ViewportMax = 30, + Turn = 31, + } + + public enum DocumentFunction + { + Url, + UrlPrefix, + Domain, + RegExp + } + + public enum DirectionMode + { + LeftToRight, + RightToLeft + } + + public enum ParserError + { + EndOfFile, + UnexpectedLineBreak, + InvalidCharacter, + UnexpectedCommentToken + } + + internal enum SelectorOperation + { + Data, + Attribute, + AttributeOperator, + AttributeValue, + AttributeEnd, + Class, + PseudoClass, + PseudoClassFunction, + PseudoClassFunctionEnd, + PseudoElement + } + + internal enum ParsingContext + { + DataBlock, + InSelector, + InDeclaration, + AfterProperty, + BeforeValue, + InValuePool, + InValueList, + InSingleValue, + InMediaList, + InMediaValue, + BeforeImport, + BeforeCharset, + BeforeNamespacePrefix, + AfterNamespacePrefix, + BeforeFontFace, + FontfaceData, + FontfaceProperty, + AfterInstruction, + InCondition, + BeforeKeyframesName, + BeforeKeyframesData, + KeyframesData, + InKeyframeText, + BeforePageSelector, + BeforeDocumentFunction, + InDocumentFunction, + AfterDocumentFunction, + BetweenDocumentFunctions, + InUnknown, + ValueImportant, + AfterValue, + InHexValue, + InFunction + } +} diff --git a/Source/External/ExCSS/Model/Extensions/CharacterExtensions.cs b/Source/External/ExCSS/Model/Extensions/CharacterExtensions.cs new file mode 100644 index 0000000..dba314f --- /dev/null +++ b/Source/External/ExCSS/Model/Extensions/CharacterExtensions.cs @@ -0,0 +1,80 @@ +using System.Collections.Generic; + +namespace ExCSS.Model.Extensions +{ + static class CharacterExtensions + { + public static int FromHex(this char character) + { + return character.IsDigit() ? character - 0x30 : character - (character.IsLowercaseAscii() ? 0x57 : 0x37); + } + + public static string TrimArray(this char[] array) + { + var start = 0; + var end = array.Length - 1; + + while (start < array.Length && array[start].IsSpaceCharacter()) + { + start++; + } + + while (end > start && array[end].IsSpaceCharacter()) + { + end--; + } + + return new string(array, start, 1 + end - start); + } + + public static string[] SplitOnCommas(this string value) + { + var list = new List(); + var buffer = new List(); + var chars = value.ToCharArray(); + + for (var i = 0; i <= chars.Length; i++) + { + if (i == chars.Length || chars[i] == ',') + { + if (buffer.Count <= 0) + { + continue; + } + var token = buffer.ToArray().TrimArray(); + + if (token.Length != 0) + { + list.Add(token); + } + + buffer.Clear(); + } + else + { + buffer.Add(chars[i]); + } + } + + return list.ToArray(); + } + + public static string ToHex(this byte num) + { + var characters = new char[2]; + var rem = num >> 4; + + characters[0] = (char)(rem + (rem < 10 ? 48 : 55)); + rem = num - 16 * rem; + characters[1] = (char)(rem + (rem < 10 ? 48 : 55)); + + return new string(characters); + } + + public static char ToHexChar(this byte num) + { + var rem = num & 0x0F; + return (char)(rem + (rem < 10 ? 48 : 55)); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Extensions/StringExtensions.cs b/Source/External/ExCSS/Model/Extensions/StringExtensions.cs new file mode 100644 index 0000000..76eb2ee --- /dev/null +++ b/Source/External/ExCSS/Model/Extensions/StringExtensions.cs @@ -0,0 +1,59 @@ +using System; +using System.Text; + +namespace ExCSS.Model.Extensions +{ + public static class StringExtensions + { + public static string Indent(this string value, bool friendlyForamt, int indentation) + { + if (!friendlyForamt) + { + return value; + } + + var tabs = new StringBuilder(); + for (var i = 0; i < indentation; i++) + { + tabs.Append("\t"); + } + + return string.Format("{0}{1}", tabs, value); + } + + public static string NewLineIndent(this string value, bool friendlyFormat, int indentation) + { + if (!friendlyFormat) + { + return value; + } + + return Environment.NewLine + value.Indent(true, indentation); + } + + public static string TrimFirstLine(this string value) + { + return new StringBuilder(value).TrimFirstLine().ToString(); + } + + public static StringBuilder TrimLastLine(this StringBuilder builder) + { + while (builder[builder.Length-1] == '\r' || builder[builder.Length-1] == '\n' || builder[builder.Length-1] == '\t') + { + builder.Remove(builder.Length - 1, 1); + } + + return builder; + } + + public static StringBuilder TrimFirstLine(this StringBuilder builder) + { + while (builder[0] == '\r' || builder[0] == '\n' || builder[0] == '\t') + { + builder.Remove(0, 1); + } + + return builder; + } + } +} diff --git a/Source/External/ExCSS/Model/FunctionBuffer.cs b/Source/External/ExCSS/Model/FunctionBuffer.cs new file mode 100644 index 0000000..cdc9f07 --- /dev/null +++ b/Source/External/ExCSS/Model/FunctionBuffer.cs @@ -0,0 +1,137 @@ +using System; +using System.Collections.Generic; + +namespace ExCSS.Model +{ + internal class FunctionBuffer + { + private readonly string _function; + private readonly List _termList; + private Term _term; + + internal FunctionBuffer(string function) + { + _termList = new List(); + _function = function; + } + + public List TermList + { + get { return _termList; } + } + + public Term Term + { + get { return _term; } + set { _term = value; } + } + + public void Include() + { + if (_term != null) + { + _termList.Add(_term); + } + + _term = null; + } + + public Term Done() + { + Include(); + return BuildFunctionTerm(_function, _termList); + } + + private Term BuildFunctionTerm(string name, List terms) + { + switch (name) + { + case "rgb": + { + if (terms.Count == 3) + { + if (CheckNumber(terms[0]) && + CheckNumber(terms[1]) && + CheckNumber(terms[2])) + { + return HtmlColor.FromRgb( + ToByte(terms[0]), + ToByte(terms[1]), + ToByte(terms[2])); + } + } + + break; + } + case "rgba": + { + if (terms.Count == 4) + { + if (CheckNumber(terms[0]) && + CheckNumber(terms[1]) && + CheckNumber(terms[2]) && + CheckNumber(terms[3])) + { + return HtmlColor.FromRgba( + ToByte(terms[0]), + ToByte(terms[1]), + ToByte(terms[2]), + ToSingle(terms[3])); + } + } + + break; + } + case "hsl": + { + if (_termList.Count == 3) + { + if (CheckNumber(terms[0]) && + CheckNumber(terms[1]) && + CheckNumber(terms[2])) + { + return HtmlColor.FromHsl( + ToSingle(terms[0]), + ToSingle(terms[1]), + ToSingle(terms[2])); + } + } + + break; + } + } + + return new GenericFunction(name, terms); + } + + private static bool CheckNumber(Term cssValue) + { + return (cssValue is PrimitiveTerm && + ((PrimitiveTerm)cssValue).PrimitiveType == UnitType.Number); + } + + private static Single ToSingle(Term cssValue) + { + var value = ((PrimitiveTerm)cssValue).GetFloatValue(UnitType.Number); + + return value.HasValue + ? value.Value + : 0f; + } + + private static byte ToByte(Single? value) + { + if (value.HasValue) + { + return (byte)Math.Min(Math.Max(value.Value, 0), 255); + } + + return 0; + } + + private static byte ToByte(Term cssValue) + { + return ToByte(((PrimitiveTerm)cssValue).GetFloatValue(UnitType.Number)); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/HtmlEncoding.cs b/Source/External/ExCSS/Model/HtmlEncoding.cs new file mode 100644 index 0000000..bf04f2b --- /dev/null +++ b/Source/External/ExCSS/Model/HtmlEncoding.cs @@ -0,0 +1,459 @@ +using System; +using System.Text; + +namespace ExCSS.Model +{ + internal static class HtmlEncoding + { + internal static string Extract(string content) + { + var position = 0; + content = content.ToLower(); + + for (var i = position; i < content.Length - 7; i++) + { + if (!content.Substring(i).StartsWith("charset")) + { + continue; + } + + position = i + 7; + break; + } + + if (position <= 0 || position >= content.Length) + { + return string.Empty; + } + + for (var i = position; i < content.Length - 1; i++) + { + if (content[i].IsSpaceCharacter()) + { + position++; + } + else + { + break; + } + } + + if (content[position] != Specification.EqualSign) + { + return Extract(content.Substring(position)); + } + + position++; + + for (var i = position; i < content.Length; i++) + { + if (content[i].IsSpaceCharacter()) + { + position++; + } + else + { + break; + } + } + + if (position >= content.Length) + { + return string.Empty; + } + + switch (content[position]) + { + case Specification.DoubleQuote: + { + content = content.Substring(position + 1); + var index = content.IndexOf(Specification.DoubleQuote); + + if (index != -1) + { + return content.Substring(0, index); + } + } + break; + + case Specification.SingleQuote: + { + content = content.Substring(position + 1); + var index = content.IndexOf(Specification.SingleQuote); + + if (index != -1) + { + return content.Substring(0, index); + } + } + break; + + default: + { + content = content.Substring(position); + var index = 0; + + for (var i = 0; i < content.Length; i++) + { + if (content[i].IsSpaceCharacter()) + { + break; + } + + if (content[i] == ';') + { + break; + } + + index++; + } + + return content.Substring(0, index); + } + } + + return string.Empty; + } + + internal static bool IsSupported(string charset) + { + return Resolve(charset) != null; + } + + internal static Encoding Resolve(string charset) + { + charset = charset.ToLower(); + + switch (charset) + { + case "unicode-1-1-utf-8": + case "utf-8": + case "utf8": + return Encoding.UTF8; + + case "utf-16be": + return Encoding.BigEndianUnicode; + + case "utf-16": + case "utf-16le": + return Encoding.Unicode; + + case "dos-874": + case "iso-8859-11": + case "iso8859-11": + case "iso885911": + case "tis-620": + case "windows-874": + return Encoding.GetEncoding("windows-874"); + + case "cp1250": + case "windows-1250": + case "x-cp1250": + return Encoding.GetEncoding("windows-1250"); + + case "cp1251": + case "windows-1251": + case "x-cp1251": + return Encoding.GetEncoding("windows-1251"); + + case "ansi_x3.4-1968": + case "ascii": + case "cp1252": + case "cp819": + case "csisolatin1": + case "ibm819": + case "iso-8859-1": + case "iso-ir-100": + case "iso8859-1": + case "iso88591": + case "iso_8859-1": + case "iso_8859-1:1987": + case "l1": + case "latin1": + case "us-ascii": + case "windows-1252": + case "x-cp1252": + return Encoding.GetEncoding("windows-1252"); + + case "cp1253": + case "windows-1253": + case "x-cp1253": + return Encoding.GetEncoding("windows-1253"); + + case "cp1254": + case "csisolatin5": + case "iso-8859-9": + case "iso-ir-148": + case "iso8859-9": + case "iso88599": + case "iso_8859-9": + case "iso_8859-9:1989": + case "l5": + case "latin5": + case "windows-1254": + case "x-cp1254": + return Encoding.GetEncoding("windows-1254"); + + case "cp1255": + case "windows-1255": + case "x-cp1255": + return Encoding.GetEncoding("windows-1255"); + + case "cp1256": + case "windows-1256": + case "x-cp1256": + return Encoding.GetEncoding("windows-1256"); + + case "cp1257": + case "windows-1257": + case "x-cp1257": + return Encoding.GetEncoding("windows-1257"); + + case "cp1258": + case "windows-1258": + case "x-cp1258": + return Encoding.GetEncoding("windows-1258"); + + case "csmacintosh": + case "mac": + case "macintosh": + case "x-mac-roman": + return Encoding.GetEncoding("macintosh"); + + case "x-mac-cyrillic": + case "x-mac-ukrainian": + return Encoding.GetEncoding("x-mac-cyrillic"); + + case "866": + case "cp866": + case "csibm866": + case "ibm866": + return Encoding.GetEncoding("cp866"); + + case "csisolatin2": + case "iso-8859-2": + case "iso-ir-101": + case "iso8859-2": + case "iso88592": + case "iso_8859-2": + case "iso_8859-2:1987": + case "l2": + case "latin2": + return Encoding.GetEncoding("iso-8859-2"); + + case "csisolatin3": + case "iso-8859-3": + case "iso-ir-109": + case "iso8859-3": + case "iso88593": + case "iso_8859-3": + case "iso_8859-3:1988": + case "l3": + case "latin3": + return Encoding.GetEncoding("iso-8859-3"); + + case "csisolatin4": + case "iso-8859-4": + case "iso-ir-110": + case "iso8859-4": + case "iso88594": + case "iso_8859-4": + case "iso_8859-4:1988": + case "l4": + case "latin4": + return Encoding.GetEncoding("iso-8859-4"); + + case "csisolatincyrillic": + case "cyrillic": + case "iso-8859-5": + case "iso-ir-144": + case "iso8859-5": + case "iso88595": + case "iso_8859-5": + case "iso_8859-5:1988": + return Encoding.GetEncoding("iso-8859-5"); + + case "arabic": + case "asmo-708": + case "csiso88596e": + case "csiso88596i": + case "csisolatinarabic": + case "ecma-114": + case "iso-8859-6": + case "iso-8859-6-e": + case "iso-8859-6-i": + case "iso-ir-127": + case "iso8859-6": + case "iso88596": + case "iso_8859-6": + case "iso_8859-6:1987": + return Encoding.GetEncoding("iso-8859-6"); + + case "csisolatingreek": + case "ecma-118": + case "elot_928": + case "greek": + case "greek8": + case "iso-8859-7": + case "iso-ir-126": + case "iso8859-7": + case "iso88597": + case "iso_8859-7": + case "iso_8859-7:1987": + case "sun_eu_greek": + return Encoding.GetEncoding("iso-8859-7"); + + case "csiso88598e": + case "csisolatinhebrew": + case "hebrew": + case "iso-8859-8": + case "iso-8859-8-e": + case "iso-ir-138": + case "iso8859-8": + case "iso88598": + case "iso_8859-8": + case "iso_8859-8:1988": + case "visual": + return Encoding.GetEncoding("iso-8859-8"); + + case "csiso88598i": + case "iso-8859-8-i": + case "logical": + return Encoding.GetEncoding("iso-8859-8-i"); + + case "iso-8859-13": + case "iso8859-13": + case "iso885913": + return Encoding.GetEncoding("iso-8859-13"); + + case "csisolatin9": + case "iso-8859-15": + case "iso8859-15": + case "iso885915": + case "iso_8859-15": + case "l9": + return Encoding.GetEncoding("iso-8859-15"); + + case "cskoi8r": + case "koi": + case "koi8": + case "koi8-r": + case "koi8_r": + return Encoding.GetEncoding("koi8-r"); + + case "koi8-u": + return Encoding.GetEncoding("koi8-u"); + + case "chinese": + case "csgb2312": + case "csiso58gb231280": + case "gb2312": + case "gb_2312": + case "gb_2312-80": + case "gbk": + case "iso-ir-58": + case "x-gbk": + return Encoding.GetEncoding("x-cp20936"); + + case "hz-gb-2312": + return Encoding.GetEncoding("hz-gb-2312"); + + case "gb18030": + return Encoding.GetEncoding("GB18030"); + + case "big5": + case "big5-hkscs": + case "cn-big5": + case "csbig5": + case "x-x-big5": + return Encoding.GetEncoding("big5"); + + case "csiso2022jp": + case "iso-2022-jp": + return Encoding.GetEncoding("iso-2022-jp"); + + case "csiso2022kr": + case "iso-2022-kr": + return Encoding.GetEncoding("iso-2022-kr"); + + case "iso-2022-cn": + case "iso-2022-cn-ext": + return Encoding.GetEncoding("iso-2022-jp"); + + default: + return null; + } + } + + internal static Encoding Suggest(string local) + { + if (local.Length < 2) + return Encoding.UTF8; + + var firstTwo = local.Substring(0, 2).ToLower(); + + switch (firstTwo) + { + case "ar": + case "cy": + case "fa": + case "hr": + case "kk": + case "mk": + case "or": + case "ro": + case "sr": + case "vi": + return Encoding.UTF8; + + case "be": + return Encoding.GetEncoding("iso-8859-5"); + + case "bg": + case "ru": + case "uk": + return Encoding.GetEncoding("windows-1251"); + + case "cs": + case "hu": + case "pl": + case "sl": + return Encoding.GetEncoding("iso-8859-2"); + + case "tr": + case "ku": + return Encoding.GetEncoding("windows-1254"); + + case "he": + return Encoding.GetEncoding("windows-1255"); + + case "lv": + return Encoding.GetEncoding("iso-8859-13"); + + case "ja":// Windows-31J ???? Replaced by something better anyway + return Encoding.UTF8; + + case "ko": + return Encoding.GetEncoding("ks_c_5601-1987"); + + case "lt": + return Encoding.GetEncoding("windows-1257"); + + case "sk": + return Encoding.GetEncoding("windows-1250"); + + case "th": + return Encoding.GetEncoding("windows-874"); + } + + if (local.Equals("zh-CN", StringComparison.OrdinalIgnoreCase)) + { + return Encoding.GetEncoding("GB18030"); + } + + return Encoding.GetEncoding(local.Equals("zh-TW", StringComparison.OrdinalIgnoreCase) + ? "big5" + : "windows-1252"); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/ICssRules.cs b/Source/External/ExCSS/Model/ICssRules.cs new file mode 100644 index 0000000..9c303c2 --- /dev/null +++ b/Source/External/ExCSS/Model/ICssRules.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace ExCSS.Model +{ + interface ISupportsRuleSets + { + List RuleSets { get; } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/ICssSelector.cs b/Source/External/ExCSS/Model/ICssSelector.cs new file mode 100644 index 0000000..62d57a4 --- /dev/null +++ b/Source/External/ExCSS/Model/ICssSelector.cs @@ -0,0 +1,7 @@ +namespace ExCSS.Model +{ + interface ISupportsSelector + { + BaseSelector Selector { get; set; } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/IStyleDeclaration.cs b/Source/External/ExCSS/Model/IStyleDeclaration.cs new file mode 100644 index 0000000..38f0d69 --- /dev/null +++ b/Source/External/ExCSS/Model/IStyleDeclaration.cs @@ -0,0 +1,7 @@ +namespace ExCSS.Model +{ + interface ISupportsDeclarations + { + StyleDeclaration Declarations { get; } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/ISupportsMedia.cs b/Source/External/ExCSS/Model/ISupportsMedia.cs new file mode 100644 index 0000000..fa81faf --- /dev/null +++ b/Source/External/ExCSS/Model/ISupportsMedia.cs @@ -0,0 +1,7 @@ +namespace ExCSS.Model +{ + interface ISupportsMedia + { + MediaTypeList Media { get; } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/MediaTypeList.cs b/Source/External/ExCSS/Model/MediaTypeList.cs new file mode 100644 index 0000000..f8f8cd3 --- /dev/null +++ b/Source/External/ExCSS/Model/MediaTypeList.cs @@ -0,0 +1,98 @@ +using System.Collections; +using System.Collections.Generic; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class MediaTypeList : IEnumerable + { + private readonly List _media; + private string _buffer; + + internal MediaTypeList() + { + _buffer = string.Empty; + _media = new List(); + } + + public string this[int index] + { + get + { + if (index < 0 || index >= _media.Count) + { + return null; + } + + return _media[index]; + } + set + { + _media[index] = value; + } + } + + public int Count + { + get { return _media.Count; } + } + + public string MediaType + { + get { return _buffer; } + set + { + _buffer = string.Empty; + _media.Clear(); + + if (string.IsNullOrEmpty(value)) + { + return; + } + + var entries = value.SplitOnCommas(); + + foreach (var t in entries) + { + AppendMedium(t); + } + } + } + + internal MediaTypeList AppendMedium(string newMedium) + { + if (_media.Contains(newMedium)) + { + return this; + } + + _media.Add(newMedium); + _buffer += (string.IsNullOrEmpty(_buffer) ? string.Empty : ",") + newMedium; + + return this; + } + + public override string ToString() + { + return ToString(false); + } + + public string ToString(bool friendlyFormat, int indentation = 0) + { + return friendlyFormat + ? string.Join(", ", _media.ToArray()) + : string.Join(",", _media.ToArray()); + } + + public IEnumerator GetEnumerator() + { + return ((IEnumerable) _media).GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Rules/AggregateRule.cs b/Source/External/ExCSS/Model/Rules/AggregateRule.cs new file mode 100644 index 0000000..c70d60c --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/AggregateRule.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using ExCSS.Model; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public abstract class AggregateRule : RuleSet, ISupportsRuleSets + { + protected AggregateRule() + { + RuleSets = new List(); + } + + public List RuleSets { get; private set; } + } +} diff --git a/Source/External/ExCSS/Model/Rules/CharacterSetRule.cs b/Source/External/ExCSS/Model/Rules/CharacterSetRule.cs new file mode 100644 index 0000000..a12e3b3 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/CharacterSetRule.cs @@ -0,0 +1,25 @@ +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class CharacterSetRule : RuleSet + { + public CharacterSetRule() + { + RuleType = RuleType.Charset; + } + + public string Encoding { get; internal set; } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return string.Format("@charset '{0}';", Encoding).NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/ConditionalRule.cs b/Source/External/ExCSS/Model/Rules/ConditionalRule.cs new file mode 100644 index 0000000..f51c38d --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/ConditionalRule.cs @@ -0,0 +1,13 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public abstract class ConditionalRule : AggregateRule + { + public virtual string Condition + { + get { return string.Empty; } + set { } + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/DocumentRule.cs b/Source/External/ExCSS/Model/Rules/DocumentRule.cs new file mode 100644 index 0000000..b985373 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/DocumentRule.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Text; +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public sealed class DocumentRule : AggregateRule + { + readonly List> _conditions; + + internal DocumentRule() + { + RuleType = RuleType.Document; + _conditions = new List>(); + } + + public string ConditionText + { + get + { + var builder = new StringBuilder(); + var concat = false; + + foreach (var condition in _conditions) + { + if (concat) + { + builder.Append(','); + } + + switch (condition.Key) + { + case DocumentFunction.Url: + builder.Append("url"); + break; + + case DocumentFunction.UrlPrefix: + builder.Append("url-prefix"); + break; + + case DocumentFunction.Domain: + builder.Append("domain"); + break; + + case DocumentFunction.RegExp: + builder.Append("regexp"); + break; + } + + builder.Append(Specification.ParenOpen); + builder.Append(Specification.DoubleQuote); + builder.Append(condition.Value); + builder.Append(Specification.DoubleQuote); + builder.Append(Specification.ParenClose); + concat = true; + } + + return builder.ToString(); + } + } + + internal List> Conditions + { + get { return _conditions; } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return "@document " + ConditionText + " {" + + RuleSets + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/FontFaceRule.cs b/Source/External/ExCSS/Model/Rules/FontFaceRule.cs new file mode 100644 index 0000000..0d933d0 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/FontFaceRule.cs @@ -0,0 +1,88 @@ +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class FontFaceRule : RuleSet, ISupportsDeclarations + { + private readonly StyleDeclaration _declarations; + + public FontFaceRule() + { + _declarations = new StyleDeclaration(); + RuleType = RuleType.FontFace; + } + + internal FontFaceRule AppendRule(Property rule) + { + _declarations.Properties.Add(rule); + return this; + } + + public StyleDeclaration Declarations + { + get { return _declarations; } + } + + public string FontFamily + { + get { return _declarations.GetPropertyValue("font-family"); } + set { _declarations.SetProperty("font-family", value); } + } + + public string Src + { + get { return _declarations.GetPropertyValue("src"); } + set { _declarations.SetProperty("src", value); } + } + + public string FontStyle + { + get { return _declarations.GetPropertyValue("font-style"); } + set { _declarations.SetProperty("font-style", value); } + } + + public string FontWeight + { + get { return _declarations.GetPropertyValue("font-weight"); } + set { _declarations.SetProperty("font-weight", value); } + } + + public string Stretch + { + get { return _declarations.GetPropertyValue("stretch"); } + set { _declarations.SetProperty("stretch", value); } + } + + public string UnicodeRange + { + get { return _declarations.GetPropertyValue("unicode-range"); } + set { _declarations.SetProperty("unicode-range", value); } + } + + public string FontVariant + { + get { return _declarations.GetPropertyValue("font-variant"); } + set { _declarations.SetProperty("font-variant", value); } + } + + public string FeatureSettings + { + get { return _declarations.GetPropertyValue("font-feature-settings"); } + set { _declarations.SetProperty("font-feature-settings", value); } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return "@font-face{".NewLineIndent(friendlyFormat, indentation) + + _declarations.ToString(friendlyFormat, indentation) + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/GenericRule.cs b/Source/External/ExCSS/Model/Rules/GenericRule.cs new file mode 100644 index 0000000..a1d85d9 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/GenericRule.cs @@ -0,0 +1,36 @@ +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class GenericRule : AggregateRule + { + private string _text; + private bool _stopped; + + internal void SetInstruction(string text) + { + _text = text; + _stopped = true; + } + + internal void SetCondition(string text) + { + _text = text; + _stopped = false; + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + if (_stopped) + { + return _text + ";"; + } + + return _text + "{" + RuleSets + "}"; + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/IRuleContainer.cs b/Source/External/ExCSS/Model/Rules/IRuleContainer.cs new file mode 100644 index 0000000..13ec5a9 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/IRuleContainer.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public interface IRuleContainer + { + List Declarations { get; } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Rules/ImportRule.cs b/Source/External/ExCSS/Model/Rules/ImportRule.cs new file mode 100644 index 0000000..8ef67b2 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/ImportRule.cs @@ -0,0 +1,41 @@ +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class ImportRule : RuleSet, ISupportsMedia + { + private string _href; + private readonly MediaTypeList _media; + + public ImportRule() + { + _media = new MediaTypeList(); + RuleType = RuleType.Import; + } + + public string Href + { + get { return _href; } + set { _href = value; } + } + + public MediaTypeList Media + { + get { return _media; } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return _media.Count > 0 + ? string.Format("@import url({0}) {1};", _href, _media).NewLineIndent(friendlyFormat, indentation) + : string.Format("@import url({0});", _href).NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/KeyframeRule.cs b/Source/External/ExCSS/Model/Rules/KeyframeRule.cs new file mode 100644 index 0000000..159314d --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/KeyframeRule.cs @@ -0,0 +1,39 @@ +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class KeyframeRule : RuleSet, ISupportsDeclarations + { + private string _value; + + public KeyframeRule() + { + Declarations = new StyleDeclaration(); + RuleType = RuleType.Keyframe; + } + + public string Value + { + get { return _value; } + set { _value = value; } + } + + public StyleDeclaration Declarations { get; private set; } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return string.Empty.Indent(friendlyFormat, indentation) + + _value + + "{" + + Declarations.ToString(friendlyFormat, indentation) + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/KeyframesRule.cs b/Source/External/ExCSS/Model/Rules/KeyframesRule.cs new file mode 100644 index 0000000..d4e4e06 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/KeyframesRule.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class KeyframesRule : RuleSet, IRuleContainer + { + private readonly List _ruleSets; + private string _identifier; + + public KeyframesRule() + { + _ruleSets = new List(); + RuleType = RuleType.Keyframes; + } + + public string Identifier + { + get { return _identifier; } + set { _identifier = value; } + } + + //TODO change to "keyframes" + public List Declarations + { + get { return _ruleSets; } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var join = friendlyFormat ? "".NewLineIndent(true, indentation) : ""; + + var declarationList = _ruleSets.Select(d => d.ToString(friendlyFormat, indentation + 1)); + var declarations = string.Join(join, declarationList.ToArray()); + + return ("@keyframes " + _identifier + "{").NewLineIndent(friendlyFormat, indentation) + + declarations.NewLineIndent(friendlyFormat, indentation) + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/MediaRule.cs b/Source/External/ExCSS/Model/Rules/MediaRule.cs new file mode 100644 index 0000000..89727de --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/MediaRule.cs @@ -0,0 +1,47 @@ +using System; +using System.Linq; +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class MediaRule : ConditionalRule, ISupportsMedia + { + private readonly MediaTypeList _media; + + public MediaRule() + { + _media = new MediaTypeList(); + RuleType = RuleType.Media; + } + + public override string Condition + { + get { return _media.MediaType; } + set { _media.MediaType = value; } + } + + public MediaTypeList Media + { + get { return _media; } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var join = friendlyFormat ? "".NewLineIndent(true, indentation + 1) : ""; + + var declarationList = RuleSets.Select(d => d.ToString(friendlyFormat, indentation + 1).TrimFirstLine()); + var declarations = string.Join(join, declarationList.ToArray()); + + return ("@media " + _media.MediaType + "{").NewLineIndent(friendlyFormat, indentation) + + declarations.TrimFirstLine().NewLineIndent(friendlyFormat, indentation + 1) + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/NamespaceRule.cs b/Source/External/ExCSS/Model/Rules/NamespaceRule.cs new file mode 100644 index 0000000..0981f46 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/NamespaceRule.cs @@ -0,0 +1,30 @@ +using ExCSS.Model.Extensions; +// ReSharper disable once CheckNamespace + + +namespace ExCSS +{ + public class NamespaceRule : RuleSet + { + public NamespaceRule() + { + RuleType = RuleType.Namespace; + } + + public string Uri { get; set; } + + public string Prefix { get; set; } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return string.IsNullOrEmpty(Prefix) + ? string.Format("@namespace '{0}';", Uri).NewLineIndent(friendlyFormat, indentation) + : string.Format("@namespace {0} '{1}';", Prefix, Uri).NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/PageRule.cs b/Source/External/ExCSS/Model/Rules/PageRule.cs new file mode 100644 index 0000000..43bb0d3 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/PageRule.cs @@ -0,0 +1,58 @@ +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class PageRule : RuleSet, ISupportsSelector, ISupportsDeclarations + { + private readonly StyleDeclaration _declarations; + private BaseSelector _selector; + private string _selectorText; + + public PageRule() + { + _declarations = new StyleDeclaration(); + RuleType = RuleType.Page; + } + + internal PageRule AppendRule(Property rule) + { + _declarations.Properties.Add(rule); + return this; + } + + public BaseSelector Selector + { + get { return _selector; } + set + { + _selector = value; + _selectorText = value.ToString(); + } + } + + public StyleDeclaration Declarations + { + get { return _declarations; } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var pseudo = string.IsNullOrEmpty(_selectorText) + ? "" + : ":" + _selectorText; + + var declarations = _declarations.ToString(friendlyFormat, indentation);//.TrimFirstLine(); + + return ("@page " + pseudo + "{").NewLineIndent(friendlyFormat, indentation) + + declarations + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/RuleSet.cs b/Source/External/ExCSS/Model/Rules/RuleSet.cs new file mode 100644 index 0000000..ec811e0 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/RuleSet.cs @@ -0,0 +1,16 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public abstract class RuleSet + { + internal RuleSet() + { + RuleType = RuleType.Unknown; + } + + public RuleType RuleType { get; set; } + + public abstract string ToString(bool friendlyFormat, int indentation = 0); + } +} diff --git a/Source/External/ExCSS/Model/Rules/StyleDeclaration.cs b/Source/External/ExCSS/Model/Rules/StyleDeclaration.cs new file mode 100644 index 0000000..2d66277 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/StyleDeclaration.cs @@ -0,0 +1,184 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class StyleDeclaration : IList + { + private readonly List _properties; + private readonly Func _getter; + private readonly Action _setter; + private bool _blocking; + + public StyleDeclaration() + { + var text = string.Empty; + _getter = () => text; + _setter = value => text = value; + _properties = new List(); + } + + public string Value + { + get { return _getter(); } + set + { + Update(value); + _setter(value); + } + } + + public RuleSet ParentRule { get; set; } + + public void Add(Property item) + { + _properties.Add(item); + } + + public void Clear() + { + _properties.Clear(); + } + + public bool Contains(Property item) + { + return _properties.Contains(item); + } + + public void CopyTo(Property[] array, int arrayIndex) + { + _properties.CopyTo(array, arrayIndex); + } + + public bool Remove(Property item) + { + return _properties.Remove(item); + } + + public int IndexOf(Property item) + { + return _properties.IndexOf(item); + } + + public void Insert(int index, Property item) + { + _properties.Insert(index, item); + } + + public void RemoveAt(int index) + { + _properties.RemoveAt(index); + } + + public override string ToString() + { + return ToString(false); + } + + public string ToString(bool friendlyFormat, int indentation = 0) + { + var builder = new StringBuilder(); + + foreach (var property in _properties) + { + if (friendlyFormat) + { + builder.Append(Environment.NewLine); + } + + builder.Append(property.ToString(friendlyFormat, indentation+1)).Append(';'); + } + + return builder.ToString(); + } + + internal string RemoveProperty(string propertyName) + { + for (var i = 0; i < _properties.Count; i++) + { + if (!_properties[i].Name.Equals(propertyName)) + { + continue; + } + + var value = _properties[i].Term; + + _properties.RemoveAt(i); + Propagate(); + + return value.ToString(); + } + + return null; + } + + internal string GetPropertyValue(string propertyName) + { + for (var i = 0; i < _properties.Count; i++) + { + if (_properties[i].Name.Equals(propertyName)) + { + return _properties[i].Term.ToString(); + } + } + + return null; + } + + public IEnumerator GetEnumerator() + { + return _properties.GetEnumerator(); + } + + public Property this[int index] + { + get { return _properties[index]; } + set { _properties[index] = value; } + } + + public List Properties + { + get { return _properties; } + } + + public int Count { get { return _properties.Count; } } + + public bool IsReadOnly { get { return false; } } + + internal StyleDeclaration SetProperty(string propertyName, string propertyValue) + { + //_properties.Add(Parser.ParseDeclaration(propertyName + ":" + propertyValue)); + //TODO + Propagate(); + return this; + } + + internal void Update(string value) + { + if (_blocking) + { + return; + } + + var rules = Parser.ParseDeclarations(value ?? string.Empty).Properties; + + _properties.Clear(); + _properties.AddRange(rules); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_properties).GetEnumerator(); + } + + private void Propagate() + { + _blocking = true; + _setter(ToString()); + _blocking = false; + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Rules/StyleRule.cs b/Source/External/ExCSS/Model/Rules/StyleRule.cs new file mode 100644 index 0000000..1b6780d --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/StyleRule.cs @@ -0,0 +1,61 @@ +using System; +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class StyleRule : RuleSet, ISupportsSelector, ISupportsDeclarations + { + private string _value; + private BaseSelector _selector; + private readonly StyleDeclaration _declarations; + + public StyleRule() : this( new StyleDeclaration()) + {} + + public StyleRule(StyleDeclaration declarations) + { + RuleType = RuleType.Style; + _declarations = declarations; + } + + public BaseSelector Selector + { + get { return _selector; } + set + { + _selector = value; + _value = value.ToString(); + } + } + + public string Value + { + get { return _value; } + set + { + _selector = Parser.ParseSelector(value); + _value = value; + } + } + + public StyleDeclaration Declarations + { + get { return _declarations; } + } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return _value.NewLineIndent(friendlyFormat, indentation) + + "{" + + _declarations.ToString(friendlyFormat, indentation) + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Rules/SupportsRule.cs b/Source/External/ExCSS/Model/Rules/SupportsRule.cs new file mode 100644 index 0000000..b4349c3 --- /dev/null +++ b/Source/External/ExCSS/Model/Rules/SupportsRule.cs @@ -0,0 +1,42 @@ +using System.Linq; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class SupportsRule : ConditionalRule + { + private string _condition; + + public SupportsRule() + { + RuleType = RuleType.Supports; + _condition = string.Empty; + } + + public override string Condition + { + get { return _condition; } + set { _condition = value; } + } + + public bool IsSupported{ get; set; } + + public override string ToString() + { + return ToString(false); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var join = friendlyFormat ? "".NewLineIndent(true, indentation + 1) : ""; + + var declarationList = RuleSets.Select(d => d.ToString(friendlyFormat, indentation + 1).TrimFirstLine()); + var declarations = string.Join(join, declarationList.ToArray()); + + return ("@supports" + _condition + "{").NewLineIndent(friendlyFormat, indentation) + + declarations.TrimFirstLine().NewLineIndent(friendlyFormat, indentation + 1) + + "}".NewLineIndent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Selector/AggregateSelectorList.cs b/Source/External/ExCSS/Model/Selector/AggregateSelectorList.cs new file mode 100644 index 0000000..f93de03 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/AggregateSelectorList.cs @@ -0,0 +1,44 @@ +using System; +using System.Text; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class AggregateSelectorList : SelectorList + { + public readonly string Delimiter; + + public AggregateSelectorList(string delimiter) + { + if (delimiter.Length > 1) + { + throw new ArgumentException("Expected single character delimiter or empty string", "delimiter"); + } + + Delimiter = delimiter; + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var builder = new StringBuilder(); + + foreach (var selector in Selectors) + { + builder.Append(selector.ToString(friendlyFormat, indentation + 1)); + builder.Append(Delimiter); + } + + if (Delimiter.Length <= 0) + { + return builder.ToString(); + } + + if (builder.Length > 0) + { + builder.Remove(builder.Length - 1, 1); + } + + return builder.ToString(); + } + } +} diff --git a/Source/External/ExCSS/Model/Selector/BaseSelector.cs b/Source/External/ExCSS/Model/Selector/BaseSelector.cs new file mode 100644 index 0000000..c718b56 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/BaseSelector.cs @@ -0,0 +1,15 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public abstract class BaseSelector + { + public sealed override string ToString() + { + return ToString(false); + } + + public abstract string ToString(bool friendlyFormat, int indentation = 0); + } +} + diff --git a/Source/External/ExCSS/Model/Selector/CombinatorSelector.cs b/Source/External/ExCSS/Model/Selector/CombinatorSelector.cs new file mode 100644 index 0000000..f8be92c --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/CombinatorSelector.cs @@ -0,0 +1,45 @@ +using System; +using ExCSS.Model; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public struct CombinatorSelector + { + public BaseSelector Selector; + public Combinator Delimiter; + + public CombinatorSelector(BaseSelector selector, Combinator delimiter) + { + Selector = selector; + Delimiter = delimiter; + } + + public char Character + { + get{ + switch (Delimiter) + { + case Combinator.Child: + return Specification.GreaterThan; + + case Combinator.AdjacentSibling: + return Specification.PlusSign; + + case Combinator.Descendent: + return Specification.Space; + + case Combinator.Sibling: + return Specification.Tilde; + + case Combinator.Namespace: + return Specification.Pipe; + + default: + throw new NotImplementedException("Unknown combinator: " + Delimiter); + } + } + } + } +} + diff --git a/Source/External/ExCSS/Model/Selector/ComplexSelector.cs b/Source/External/ExCSS/Model/Selector/ComplexSelector.cs new file mode 100644 index 0000000..e399698 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/ComplexSelector.cs @@ -0,0 +1,66 @@ +using System; +using System.Text; +using System.Collections.Generic; +using System.Collections; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class ComplexSelector : BaseSelector, IEnumerable + { + private readonly List _selectors; + + public ComplexSelector() + { + _selectors = new List(); + } + + public ComplexSelector AppendSelector(BaseSelector selector, Combinator combinator) + { + _selectors.Add(new CombinatorSelector(selector, combinator)); + return this; + } + + public IEnumerator GetEnumerator() + { + return _selectors.GetEnumerator(); + } + + internal void ConcludeSelector(BaseSelector selector) + { + _selectors.Add(new CombinatorSelector { Selector = selector }); + } + + public int Length + { + get { return _selectors.Count; } + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)_selectors).GetEnumerator(); + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var builder = new StringBuilder(); + + if (_selectors.Count <= 0) + { + return builder.ToString(); + } + + var n = _selectors.Count - 1; + + for (var i = 0; i < n; i++) + { + builder.Append(_selectors[i].Selector); + builder.Append(_selectors[i].Character); + } + + builder.Append(_selectors[n].Selector); + + return builder.ToString(); + } + } +} diff --git a/Source/External/ExCSS/Model/Selector/FirstChildSelector.cs b/Source/External/ExCSS/Model/Selector/FirstChildSelector.cs new file mode 100644 index 0000000..569bbac --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/FirstChildSelector.cs @@ -0,0 +1,21 @@ +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class FirstChildSelector : BaseSelector, IToString + { + FirstChildSelector() + { } + + static FirstChildSelector _instance; + + public static FirstChildSelector Instance + { + get { return _instance ?? (_instance = new FirstChildSelector()); } + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return ":" + PseudoSelectorPrefix.PseudoFirstchild; + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/LastChildSelector.cs b/Source/External/ExCSS/Model/Selector/LastChildSelector.cs new file mode 100644 index 0000000..f0d1bfb --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/LastChildSelector.cs @@ -0,0 +1,21 @@ +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class LastChildSelector : BaseSelector, IToString + { + LastChildSelector() + { } + + static LastChildSelector _instance; + + public static LastChildSelector Instance + { + get { return _instance ?? (_instance = new LastChildSelector()); } + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return ":" + PseudoSelectorPrefix.PseudoLastchild; + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/MultipleSelectorList.cs b/Source/External/ExCSS/Model/Selector/MultipleSelectorList.cs new file mode 100644 index 0000000..57e1e70 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/MultipleSelectorList.cs @@ -0,0 +1,41 @@ +using System.Text; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class MultipleSelectorList : SelectorList, IToString + { + internal static MultipleSelectorList Create(params SimpleSelector[] selectors) + { + var multiple = new MultipleSelectorList(); + + foreach (var selector in selectors) + { + multiple.Selectors.Add(selector); + } + + return multiple; + } + + internal bool IsInvalid { get; set; } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + var builder = new StringBuilder(); + + if (Selectors.Count <= 0) + { + return builder.ToString(); + } + + builder.Append(Selectors[0]); + + for (var i = 1; i < Selectors.Count; i++) + { + builder.Append(',').Append(Selectors[i]); + } + + return builder.ToString(); + } + } +} diff --git a/Source/External/ExCSS/Model/Selector/NthChildSelector.cs b/Source/External/ExCSS/Model/Selector/NthChildSelector.cs new file mode 100644 index 0000000..77fc742 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/NthChildSelector.cs @@ -0,0 +1,24 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal abstract class NthChildSelector : BaseSelector, IToString + { + public int Step; + public int Offset; + internal string FunctionText { get; set; } + + internal string FormatSelector(string functionName) + { + var format = Offset < 0 + ? ":{0}({1}n{2})" + : ":{0}({1}n+{2})"; + + return string.IsNullOrEmpty(FunctionText) + ? string.Format(format, functionName, Step, Offset) + : string.Format(":{0}({1})", functionName, FunctionText); + } + + public abstract override string ToString(bool friendlyFormat, int indentation = 0); + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/NthFirstChildSelector.cs b/Source/External/ExCSS/Model/Selector/NthFirstChildSelector.cs new file mode 100644 index 0000000..154f662 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/NthFirstChildSelector.cs @@ -0,0 +1,12 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class NthFirstChildSelector : NthChildSelector, IToString + { + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return FormatSelector(PseudoSelectorPrefix.PseudoFunctionNthchild); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/NthLastChildSelector.cs b/Source/External/ExCSS/Model/Selector/NthLastChildSelector.cs new file mode 100644 index 0000000..797b627 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/NthLastChildSelector.cs @@ -0,0 +1,13 @@ +using System; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class NthLastChildSelector : NthChildSelector, IToString + { + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return FormatSelector(PseudoSelectorPrefix.PseudoFunctionNthlastchild); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/NthLastOfTypeSelector.cs b/Source/External/ExCSS/Model/Selector/NthLastOfTypeSelector.cs new file mode 100644 index 0000000..b1bbf91 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/NthLastOfTypeSelector.cs @@ -0,0 +1,12 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class NthLastOfTypeSelector : NthChildSelector, IToString + { + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return FormatSelector(PseudoSelectorPrefix.PseudoFunctionNthLastOfType); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/NthOfTypeSelector.cs b/Source/External/ExCSS/Model/Selector/NthOfTypeSelector.cs new file mode 100644 index 0000000..66a704c --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/NthOfTypeSelector.cs @@ -0,0 +1,12 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class NthOfTypeSelector : NthChildSelector, IToString + { + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return FormatSelector(PseudoSelectorPrefix.PseudoFunctionNthOfType); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Selector/SelectorFactory.cs b/Source/External/ExCSS/Model/Selector/SelectorFactory.cs new file mode 100644 index 0000000..127b2ab --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/SelectorFactory.cs @@ -0,0 +1,802 @@ +using System; +using System.Globalization; +using ExCSS.Model; +using ExCSS.Model.TextBlocks; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + internal sealed class SelectorFactory + { + private SelectorOperation _selectorOperation; + private BaseSelector _currentSelector; + private AggregateSelectorList _aggregateSelectorList; + private ComplexSelector _complexSelector; + private bool _hasCombinator; + private Combinator _combinator; + private SelectorFactory _nestedSelectorFactory; + private string _attributeName; + private string _attributeValue; + private string _attributeOperator; + + internal SelectorFactory() + { + ResetFactory(); + } + + internal BaseSelector GetSelector() + { + if (_complexSelector != null) + { + _complexSelector.ConcludeSelector(_currentSelector); + _currentSelector = _complexSelector; + } + + if (_aggregateSelectorList == null || _aggregateSelectorList.Length == 0) + { + return _currentSelector ?? SimpleSelector.All; + } + + if (_currentSelector == null && _aggregateSelectorList.Length == 1) + { + return _aggregateSelectorList[0]; + } + + if (_currentSelector == null) + { + return _aggregateSelectorList; + } + + _aggregateSelectorList.AppendSelector(_currentSelector); + _currentSelector = null; + + return _aggregateSelectorList; + } + + internal void Apply(Block token) + { + switch (_selectorOperation) + { + case SelectorOperation.Data: + ParseSymbol(token); + break; + + case SelectorOperation.Class: + PraseClass(token); + break; + + case SelectorOperation.Attribute: + ParseAttribute(token); + break; + + case SelectorOperation.AttributeOperator: + ParseAttributeOperator(token); + break; + + case SelectorOperation.AttributeValue: + ParseAttributeValue(token); + break; + + case SelectorOperation.AttributeEnd: + ParseAttributeEnd(token); + break; + + case SelectorOperation.PseudoClass: + ParsePseudoClass(token); + break; + + case SelectorOperation.PseudoClassFunction: + ParsePseudoClassFunction(token); + break; + + case SelectorOperation.PseudoClassFunctionEnd: + PrasePseudoClassFunctionEnd(token); + break; + + case SelectorOperation.PseudoElement: + ParsePseudoElement(token); + break; + } + } + + internal SelectorFactory ResetFactory() + { + _attributeName = null; + _attributeValue = null; + _attributeOperator = string.Empty; + _selectorOperation = SelectorOperation.Data; + _combinator = Combinator.Descendent; + _hasCombinator = false; + _currentSelector = null; + _aggregateSelectorList = null; + _complexSelector = null; + + return this; + } + + private void ParseSymbol(Block token) + { + switch (token.GrammarSegment) + { + // Attribute [A] + case GrammarSegment.SquareBraceOpen: + _attributeName = null; + _attributeValue = null; + _attributeOperator = string.Empty; + _selectorOperation = SelectorOperation.Attribute; + return; + + // Pseudo :P + case GrammarSegment.Colon: + _selectorOperation = SelectorOperation.PseudoClass; + return; + + // ID #I + case GrammarSegment.Hash: + Insert(SimpleSelector.Id(((SymbolBlock)token).Value)); + return; + + // Type E + case GrammarSegment.Ident: + Insert(SimpleSelector.Type(((SymbolBlock)token).Value)); + return; + + // Whitespace + case GrammarSegment.Whitespace: + Insert(Combinator.Descendent); + return; + + case GrammarSegment.Delimiter: + ParseDelimiter(token); + return; + + case GrammarSegment.Comma: + InsertCommaDelimited(); + return; + } + } + + private void ParseAttribute(Block token) + { + if (token.GrammarSegment == GrammarSegment.Whitespace) + { + return; + } + + _selectorOperation = SelectorOperation.AttributeOperator; + + switch (token.GrammarSegment) + { + case GrammarSegment.Ident: + _attributeName = ((SymbolBlock)token).Value; + break; + + case GrammarSegment.String: + _attributeName = ((StringBlock)token).Value; + break; + + default: + _selectorOperation = SelectorOperation.Data; + break; + } + } + + private void ParseAttributeOperator(Block token) + { + if (token.GrammarSegment == GrammarSegment.Whitespace) + { + return; + } + + _selectorOperation = SelectorOperation.AttributeValue; + + if (token.GrammarSegment == GrammarSegment.SquareBracketClose) + { + ParseAttributeEnd(token); + } + else if (token is MatchBlock || token.GrammarSegment == GrammarSegment.Delimiter) + { + _attributeOperator = token.ToString(); + } + else + { + _selectorOperation = SelectorOperation.AttributeEnd; + } + } + + private void ParseAttributeValue(Block token) + { + if (token.GrammarSegment == GrammarSegment.Whitespace) + { + return; + } + + _selectorOperation = SelectorOperation.AttributeEnd; + + switch (token.GrammarSegment) + { + case GrammarSegment.Ident: + _attributeValue = ((SymbolBlock)token).Value; + break; + + case GrammarSegment.String: + _attributeValue = ((StringBlock)token).Value; + break; + + case GrammarSegment.Number: + _attributeValue = ((NumericBlock)token).Value.ToString(CultureInfo.InvariantCulture); + break; + + default: + _selectorOperation = SelectorOperation.Data; + break; + } + } + + private void ParseAttributeEnd(Block token) + { + if (token.GrammarSegment == GrammarSegment.Whitespace) + { + return; + } + + _selectorOperation = SelectorOperation.Data; + + if (token.GrammarSegment != GrammarSegment.SquareBracketClose) + { + return; + } + + switch (_attributeOperator) + { + case "=": + Insert(SimpleSelector.AttributeMatch(_attributeName, _attributeValue)); + break; + + case "~=": + Insert(SimpleSelector.AttributeSpaceSeparated(_attributeName, _attributeValue)); + break; + + case "|=": + Insert(SimpleSelector.AttributeDashSeparated(_attributeName, _attributeValue)); + break; + + case "^=": + Insert(SimpleSelector.AttributeStartsWith(_attributeName, _attributeValue)); + break; + + case "$=": + Insert(SimpleSelector.AttributeEndsWith(_attributeName, _attributeValue)); + break; + + case "*=": + Insert(SimpleSelector.AttributeContains(_attributeName, _attributeValue)); + break; + + case "!=": + Insert(SimpleSelector.AttributeNegatedMatch(_attributeName, _attributeValue)); + break; + + default: + Insert(SimpleSelector.AttributeUnmatched(_attributeName)); + break; + } + } + + private void ParsePseudoClass(Block token) + { + _selectorOperation = SelectorOperation.Data; + + switch (token.GrammarSegment) + { + case GrammarSegment.Colon: + _selectorOperation = SelectorOperation.PseudoElement; + break; + + case GrammarSegment.Function: + _attributeName = ((SymbolBlock)token).Value; + _attributeValue = string.Empty; + _selectorOperation = SelectorOperation.PseudoClassFunction; + + if (_nestedSelectorFactory != null) + { + _nestedSelectorFactory.ResetFactory(); + } + + break; + + case GrammarSegment.Ident: + var pseudoSelector = GetPseudoSelector(token); + + if (pseudoSelector != null) + { + Insert(pseudoSelector); + } + break; + } + } + + private void ParsePseudoElement(Block token) + { + if (token.GrammarSegment != GrammarSegment.Ident) + { + return; + } + var data = ((SymbolBlock)token).Value; + + switch (data) + { + case PseudoSelectorPrefix.PseudoElementBefore: + Insert(SimpleSelector.PseudoElement(PseudoSelectorPrefix.PseudoElementBefore)); + break; + + case PseudoSelectorPrefix.PseudoElementAfter: + Insert(SimpleSelector.PseudoElement(PseudoSelectorPrefix.PseudoElementAfter)); + break; + + case PseudoSelectorPrefix.PseudoElementSelection: + Insert(SimpleSelector.PseudoElement(PseudoSelectorPrefix.PseudoElementSelection)); + break; + + case PseudoSelectorPrefix.PseudoElementFirstline: + Insert(SimpleSelector.PseudoElement(PseudoSelectorPrefix.PseudoElementFirstline)); + break; + + case PseudoSelectorPrefix.PseudoElementFirstletter: + Insert(SimpleSelector.PseudoElement(PseudoSelectorPrefix.PseudoElementFirstletter)); + break; + + default: + Insert(SimpleSelector.PseudoElement(data)); + break; + } + } + + private void PraseClass(Block token) + { + _selectorOperation = SelectorOperation.Data; + + if (token.GrammarSegment == GrammarSegment.Ident) + { + Insert(SimpleSelector.Class(((SymbolBlock)token).Value)); + } + } + + private void ParsePseudoClassFunction(Block token) + { + if (token.GrammarSegment == GrammarSegment.Whitespace) + { + return; + } + + switch (_attributeName) + { + case PseudoSelectorPrefix.PseudoFunctionNthchild: + case PseudoSelectorPrefix.PseudoFunctionNthlastchild: + case PseudoSelectorPrefix.PseudoFunctionNthOfType: + case PseudoSelectorPrefix.PseudoFunctionNthLastOfType: + { + switch (token.GrammarSegment) + { + case GrammarSegment.Ident: + case GrammarSegment.Number: + case GrammarSegment.Dimension: + _attributeValue += token.ToString(); + return; + + case GrammarSegment.Delimiter: + var chr = ((DelimiterBlock)token).Value; + + if (chr == Specification.PlusSign || chr == Specification.MinusSign) + { + _attributeValue += chr; + return; + } + + break; + } + + break; + } + case PseudoSelectorPrefix.PseudoFunctionNot: + { + if (_nestedSelectorFactory == null) + { + _nestedSelectorFactory = new SelectorFactory(); + } + + if (token.GrammarSegment != GrammarSegment.ParenClose || _nestedSelectorFactory._selectorOperation != SelectorOperation.Data) + { + _nestedSelectorFactory.Apply(token); + return; + } + + break; + } + case PseudoSelectorPrefix.PseudoFunctionDir: + { + if (token.GrammarSegment == GrammarSegment.Ident) + { + _attributeValue = ((SymbolBlock)token).Value; + } + + _selectorOperation = SelectorOperation.PseudoClassFunctionEnd; + return; + } + case PseudoSelectorPrefix.PseudoFunctionLang: + { + if (token.GrammarSegment == GrammarSegment.Ident) + { + _attributeValue = ((SymbolBlock)token).Value; + } + + _selectorOperation = SelectorOperation.PseudoClassFunctionEnd; + return; + } + case PseudoSelectorPrefix.PseudoFunctionContains: + { + switch (token.GrammarSegment) + { + case GrammarSegment.String: + _attributeValue = ((StringBlock)token).Value; + break; + + case GrammarSegment.Ident: + _attributeValue = ((SymbolBlock)token).Value; + break; + } + + _selectorOperation = SelectorOperation.PseudoClassFunctionEnd; + return; + } + } + + PrasePseudoClassFunctionEnd(token); + } + + private void PrasePseudoClassFunctionEnd(Block token) + { + _selectorOperation = SelectorOperation.Data; + + if (token.GrammarSegment != GrammarSegment.ParenClose) + { + return; + } + + switch (_attributeName) + { + case PseudoSelectorPrefix.PseudoFunctionNthchild: + Insert(GetChildSelector()); + break; + + case PseudoSelectorPrefix.PseudoFunctionNthlastchild: + Insert(GetChildSelector()); + break; + + case PseudoSelectorPrefix.PseudoFunctionNthOfType: + Insert(GetChildSelector()); + break; + + case PseudoSelectorPrefix.PseudoFunctionNthLastOfType: + Insert(GetChildSelector()); + break; + + case PseudoSelectorPrefix.PseudoFunctionNot: + { + var selector = _nestedSelectorFactory.GetSelector(); + var code = string.Format("{0}({1})", PseudoSelectorPrefix.PseudoFunctionNot, selector); + Insert(SimpleSelector.PseudoClass(code)); + break; + } + case PseudoSelectorPrefix.PseudoFunctionDir: + { + var code = string.Format("{0}({1})", PseudoSelectorPrefix.PseudoFunctionDir, _attributeValue); + Insert(SimpleSelector.PseudoClass(code)); + break; + } + case PseudoSelectorPrefix.PseudoFunctionLang: + { + var code = string.Format("{0}({1})", PseudoSelectorPrefix.PseudoFunctionLang, _attributeValue); + Insert(SimpleSelector.PseudoClass(code)); + break; + } + case PseudoSelectorPrefix.PseudoFunctionContains: + { + var code = string.Format("{0}({1})", PseudoSelectorPrefix.PseudoFunctionContains, _attributeValue); + Insert(SimpleSelector.PseudoClass(code)); + break; + } + } + } + + private void InsertCommaDelimited() + { + if (_currentSelector == null) + { + return; + } + + if (_aggregateSelectorList == null) + { + _aggregateSelectorList = new AggregateSelectorList(","); + } + + if (_complexSelector != null) + { + _complexSelector.ConcludeSelector(_currentSelector); + _aggregateSelectorList.AppendSelector(_complexSelector); + _complexSelector = null; + } + else + { + _aggregateSelectorList.AppendSelector(_currentSelector); + } + + _currentSelector = null; + } + + private void Insert(BaseSelector selector) + { + if (_currentSelector != null) + { + if (!_hasCombinator) + { + var compound = _currentSelector as AggregateSelectorList; + + if (compound == null) + { + compound = new AggregateSelectorList(""); + compound.AppendSelector(_currentSelector); + } + + compound.AppendSelector(selector); + _currentSelector = compound; + } + else + { + if (_complexSelector == null) + { + _complexSelector = new ComplexSelector(); + } + + _complexSelector.AppendSelector(_currentSelector, _combinator); + _combinator = Combinator.Descendent; + _hasCombinator = false; + _currentSelector = selector; + } + } + else + { + if (_currentSelector == null && _complexSelector == null && _combinator == Combinator.Namespace) + { + _complexSelector = new ComplexSelector(); + _complexSelector.AppendSelector(SimpleSelector.Type(""), _combinator); + _currentSelector = selector; + } + else + { + _combinator = Combinator.Descendent; + _hasCombinator = false; + _currentSelector = selector; + } + } + } + + private void Insert(Combinator combinator) + { + _hasCombinator = true; + + if (combinator != Combinator.Descendent) + { + _combinator = combinator; + } + } + + private void ParseDelimiter(Block token) + { + switch (((DelimiterBlock)token).Value) + { + case Specification.Comma: + InsertCommaDelimited(); + return; + + case Specification.GreaterThan: + Insert(Combinator.Child); + return; + + case Specification.PlusSign: + Insert(Combinator.AdjacentSibling); + return; + + case Specification.Tilde: + Insert(Combinator.Sibling); + return; + + case Specification.Asterisk: + Insert(SimpleSelector.All); + return; + + case Specification.Period: + _selectorOperation = SelectorOperation.Class; + return; + + case Specification.Pipe: + Insert(Combinator.Namespace); + return; + } + } + + private BaseSelector GetChildSelector() where T : NthChildSelector, new() + { + var selector = new T(); + + if (_attributeValue.Equals(PseudoSelectorPrefix.NthChildOdd, StringComparison.OrdinalIgnoreCase)) + { + selector.Step = 2; + selector.Offset = 1; + selector.FunctionText = PseudoSelectorPrefix.NthChildOdd; + } + else if (_attributeValue.Equals(PseudoSelectorPrefix.NthChildEven, StringComparison.OrdinalIgnoreCase)) + { + selector.Step = 2; + selector.Offset = 0; + selector.FunctionText = PseudoSelectorPrefix.NthChildEven; + } + else if (!int.TryParse(_attributeValue, out selector.Offset)) + { + var index = _attributeValue.IndexOf(PseudoSelectorPrefix.NthChildN, StringComparison.OrdinalIgnoreCase); + + if (_attributeValue.Length <= 0 || index == -1) + { + return selector; + } + + var first = _attributeValue.Substring(0, index).Replace(" ", ""); + + var second = ""; + + if (_attributeValue.Length > index + 1) + { + second = _attributeValue.Substring(index + 1).Replace(" ", ""); + } + + if (first == string.Empty || (first.Length == 1 && first[0] == Specification.PlusSign)) + { + selector.Step = 1; + } + else if (first.Length == 1 && first[0] == Specification.MinusSign) + { + selector.Step = -1; + } + else + { + int step; + if (int.TryParse(first, out step)) + { + selector.Step = step; + } + } + + if (second == string.Empty) + { + selector.Offset = 0; + } + else + { + int offset; + if (int.TryParse(second, out offset)) + { + selector.Offset = offset; + } + } + } + + return selector; + } + + private static BaseSelector GetPseudoSelector(Block token) + { + switch (((SymbolBlock)token).Value) + { + case PseudoSelectorPrefix.PseudoRoot: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoRoot); + + case PseudoSelectorPrefix.PseudoFirstOfType: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoFirstOfType); + + case PseudoSelectorPrefix.PseudoLastoftype: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoLastoftype); + + case PseudoSelectorPrefix.PseudoOnlychild: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoOnlychild); + + case PseudoSelectorPrefix.PseudoOnlyOfType: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoOnlyOfType); + + case PseudoSelectorPrefix.PseudoFirstchild: + return FirstChildSelector.Instance; + + case PseudoSelectorPrefix.PseudoLastchild: + return LastChildSelector.Instance; + + case PseudoSelectorPrefix.PseudoEmpty: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoEmpty); + + case PseudoSelectorPrefix.PseudoLink: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoLink); + + case PseudoSelectorPrefix.PseudoVisited: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoVisited); + + case PseudoSelectorPrefix.PseudoActive: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoActive); + + case PseudoSelectorPrefix.PseudoHover: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoHover); + + case PseudoSelectorPrefix.PseudoFocus: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoFocus); + + case PseudoSelectorPrefix.PseudoTarget: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoTarget); + + case PseudoSelectorPrefix.PseudoEnabled: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoEnabled); + + case PseudoSelectorPrefix.PseudoDisabled: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoDisabled); + + case PseudoSelectorPrefix.PseudoDefault: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoDefault); + + case PseudoSelectorPrefix.PseudoChecked: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoChecked); + + case PseudoSelectorPrefix.PseudoIndeterminate: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoIndeterminate); + + case PseudoSelectorPrefix.PseudoUnchecked: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoUnchecked); + + case PseudoSelectorPrefix.PseudoValid: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoValid); + + case PseudoSelectorPrefix.PseudoInvalid: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoInvalid); + + case PseudoSelectorPrefix.PseudoRequired: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoRequired); + + case PseudoSelectorPrefix.PseudoReadonly: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoReadonly); + + case PseudoSelectorPrefix.PseudoReadwrite: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoReadwrite); + + case PseudoSelectorPrefix.PseudoInrange: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoInrange); + + case PseudoSelectorPrefix.PseudoOutofrange: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoOutofrange); + + case PseudoSelectorPrefix.PseudoOptional: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoOptional); + + case PseudoSelectorPrefix.PseudoElementBefore: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoElementBefore); + + case PseudoSelectorPrefix.PseudoElementAfter: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoElementAfter); + + case PseudoSelectorPrefix.PseudoElementFirstline: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoElementFirstline); + + case PseudoSelectorPrefix.PseudoElementFirstletter: + return SimpleSelector.PseudoClass(PseudoSelectorPrefix.PseudoElementFirstletter); + + default: + return SimpleSelector.PseudoClass(token.ToString()); + } + } + } +} diff --git a/Source/External/ExCSS/Model/Selector/SelectorList.cs b/Source/External/ExCSS/Model/Selector/SelectorList.cs new file mode 100644 index 0000000..dc9b7f2 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/SelectorList.cs @@ -0,0 +1,57 @@ +using System.Collections; +using System.Collections.Generic; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public abstract class SelectorList : BaseSelector, IEnumerable + { + protected List Selectors; + + protected SelectorList() + { + Selectors = new List(); + } + + public int Length + { + get { return Selectors.Count; } + } + + public BaseSelector this[int index] + { + get { return Selectors[index]; } + set { Selectors[index] = value; } + } + + public SelectorList AppendSelector(BaseSelector selector) + { + Selectors.Add(selector); + return this; + } + + public SelectorList RemoveSelector(SimpleSelector selector) + { + Selectors.Remove(selector); + return this; + } + + public SelectorList ClearSelectors() + { + Selectors.Clear(); + return this; + } + + public IEnumerator GetEnumerator() + { + return Selectors.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable)Selectors).GetEnumerator(); + } + + public override abstract string ToString(bool friendlyFormat, int indentation = 0); + } +} diff --git a/Source/External/ExCSS/Model/Selector/SimpleSelector.cs b/Source/External/ExCSS/Model/Selector/SimpleSelector.cs new file mode 100644 index 0000000..0fc2f29 --- /dev/null +++ b/Source/External/ExCSS/Model/Selector/SimpleSelector.cs @@ -0,0 +1,126 @@ +using System; +using ExCSS.Model; +// ReSharper disable once CheckNamespace + +namespace ExCSS +{ + public sealed class SimpleSelector : BaseSelector + { + private readonly string _code; + internal static readonly SimpleSelector All = new SimpleSelector("*"); + + public SimpleSelector(string selectorText) + { + _code = selectorText; + } + + internal static SimpleSelector PseudoElement(string pseudoElement) + { + return new SimpleSelector("::" + pseudoElement); + } + + internal static SimpleSelector PseudoClass(string pseudoClass) + { + return new SimpleSelector(":" + pseudoClass); + } + + internal static SimpleSelector Class(string match) + { + return new SimpleSelector("." + match); + } + + internal static SimpleSelector Id(string match) + { + return new SimpleSelector("#" + match); + } + + internal static SimpleSelector AttributeUnmatched(string match) + { + return new SimpleSelector("[" + match + "]"); + } + + internal static SimpleSelector AttributeMatch(string match, string value) + { + var code = string.Format("[{0}=\"{1}\"]", match, GetValueAsString(value)); + return new SimpleSelector(code); + } + + internal static SimpleSelector AttributeNegatedMatch(string match, string value) + { + var code = string.Format("[{0}!=\"{1}\"]", match, GetValueAsString(value)); + return new SimpleSelector(code); + } + + internal static SimpleSelector AttributeSpaceSeparated(string match, string value) + { + var code = string.Format("[{0}~=\"{1}\"]", match, GetValueAsString(value)); + + return new SimpleSelector(code); + } + + internal static SimpleSelector AttributeStartsWith(string match, string value) + { + var code = string.Format("[{0}^=\"{1}\"]", match, GetValueAsString(value)); + + return new SimpleSelector(code); + } + + internal static SimpleSelector AttributeEndsWith(string match, string value) + { + var code = string.Format("[{0}$=\"{1}\"]", match, GetValueAsString(value)); + + return new SimpleSelector(code); + } + + internal static SimpleSelector AttributeContains(string match, string value) + { + var code = string.Format("[{0}*=\"{1}\"]", match, GetValueAsString(value)); + + return new SimpleSelector(code); + } + + internal static SimpleSelector AttributeDashSeparated(string match, string value) + { + var code = string.Format("[{0}|=\"{1}\"]", match, GetValueAsString(value)); + + return new SimpleSelector(code); + } + + internal static SimpleSelector Type(string match) + { + return new SimpleSelector(match); + } + + private static string GetValueAsString(string value) + { + var containsSpace = false; + + for (var i = 0; i < value.Length; i++) + { + if (!value[i].IsSpaceCharacter()) + { + continue; + } + containsSpace = true; + break; + } + + if (!containsSpace) + { + return value; + } + + if (value.IndexOf(Specification.SingleQuote) != -1) + { + return '"' + value + '"'; + } + + return "'" + value + "'"; + } + + public override string ToString(bool friendlyFormat, int indentation = 0) + { + return _code; + } + } +} diff --git a/Source/External/ExCSS/Model/Specification.cs b/Source/External/ExCSS/Model/Specification.cs new file mode 100644 index 0000000..2da18d3 --- /dev/null +++ b/Source/External/ExCSS/Model/Specification.cs @@ -0,0 +1,98 @@ +namespace ExCSS.Model +{ + internal static class Specification + { + internal const char EndOfFile = (char)0x1a; + internal const char Tilde = (char)0x7e; + internal const char Pipe = (char)0x7c; + internal const char Null = (char)0x0; + internal const char Ampersand = (char)0x26; + internal const char Hash = (char)0x23; + internal const char DollarSign = (char)0x24; + internal const char Simicolon = (char)0x3b; + internal const char Asterisk = (char)0x2a; + internal const char EqualSign = (char)0x3d; + internal const char PlusSign = (char)0x2b; + internal const char Comma = (char)0x2c; + internal const char Period = (char)0x2e; + internal const char Accent = (char)0x5e; + internal const char At = (char)0x40; + internal const char LessThan = (char)0x3c; + internal const char GreaterThan = (char)0x3e; + internal const char SingleQuote = (char)0x27; + internal const char DoubleQuote = (char)0x22; + internal const char QuestionMark = (char)0x3f; + internal const char Tab = (char)0x09; + internal const char LineFeed = (char)0x0a; + internal const char CarriageReturn = (char)0x0d; + internal const char FormFeed = (char)0x0c; + internal const char Space = (char)0x20; + internal const char Solidus = (char)0x2f; + internal const char ReverseSolidus = (char)0x5c; + internal const char Colon = (char)0x3a; + internal const char Em = (char)0x21; + internal const char MinusSign = (char)0x2d; + internal const char Replacement = (char)0xfffd; + internal const char Underscore = (char)0x5f; + internal const char ParenOpen = (char)0x28; + internal const char ParenClose = (char)0x29; + internal const char Percent = (char)0x25; + internal const char SquareBracketOpen =(char)0x5b; + internal const char SquareBracketClose = (char)0x5d; + internal const char CurlyBraceOpen = (char)0x7b; + internal const char CurlyBraceClose = (char)0x7d; + internal const int MaxPoint = 0x10FFFF;/// The maximum allowed codepoint (defined in Unicode). + + internal static bool IsNonPrintable(this char c) + { + return (c >= 0x0 && c <= 0x8) || (c >= 0xe && c <= 0x1f) || (c >= 0x7f && c <= 0x9f); + } + + internal static bool IsLetter(this char c) + { + return IsUppercaseAscii(c) || IsLowercaseAscii(c); + } + + internal static bool IsName(this char c) + { + return c >= 0x80 || c.IsLetter() || c == Underscore || c == MinusSign || IsDigit(c); + } + + internal static bool IsNameStart(this char c) + { + return c >= 0x80 || IsUppercaseAscii(c) || IsLowercaseAscii(c) || c == Underscore; + } + + internal static bool IsLineBreak(this char c) + { + //line feed, carriage return + return c == LineFeed || c == CarriageReturn; + } + + internal static bool IsSpaceCharacter(this char c) + { + //white space, tab, line feed, form feed, carriage return + return c == Space || c == Tab || c == LineFeed || c == FormFeed || c == CarriageReturn; + } + + internal static bool IsDigit(this char c) + { + return c >= 0x30 && c <= 0x39; + } + + internal static bool IsUppercaseAscii(this char c) + { + return c >= 0x41 && c <= 0x5a; + } + + internal static bool IsLowercaseAscii(this char c) + { + return c >= 0x61 && c <= 0x7a; + } + + internal static bool IsHex(this char c) + { + return IsDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/TextBlocks/Block.cs b/Source/External/ExCSS/Model/TextBlocks/Block.cs new file mode 100644 index 0000000..16f02dc --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/Block.cs @@ -0,0 +1,28 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal abstract class Block + { + internal GrammarSegment GrammarSegment { get;set; } + + internal static PipeBlock Column + { + get { return PipeBlock.Token; } + } + + internal static DelimiterBlock Delim(char value) + { + return new DelimiterBlock(value); + } + + internal static NumericBlock Number(string value) + { + return new NumericBlock(value); + } + + internal static RangeBlock Range(string start, string end) + { + return new RangeBlock().SetRange(start, end); + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/BracketBlock.cs b/Source/External/ExCSS/Model/TextBlocks/BracketBlock.cs new file mode 100644 index 0000000..5de795b --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/BracketBlock.cs @@ -0,0 +1,123 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class BracketBlock : Block + { + private readonly static BracketBlock RoundOpen= new BracketBlock { GrammarSegment = GrammarSegment.ParenOpen, _mirror = GrammarSegment.ParenClose }; + private readonly static BracketBlock RoundClose = new BracketBlock { GrammarSegment = GrammarSegment.ParenClose, _mirror = GrammarSegment.ParenOpen }; + private readonly static BracketBlock CurlyOpen = new BracketBlock { GrammarSegment = GrammarSegment.CurlyBraceOpen, _mirror = GrammarSegment.CurlyBracketClose }; + private readonly static BracketBlock CurlyClose = new BracketBlock { GrammarSegment = GrammarSegment.CurlyBracketClose, _mirror = GrammarSegment.CurlyBraceOpen }; + private readonly static BracketBlock SquareOpen = new BracketBlock { GrammarSegment = GrammarSegment.SquareBraceOpen, _mirror = GrammarSegment.SquareBracketClose }; + private readonly static BracketBlock SquareClose = new BracketBlock { GrammarSegment = GrammarSegment.SquareBracketClose, _mirror = GrammarSegment.SquareBraceOpen }; + + private GrammarSegment _mirror; + + BracketBlock() + { + } + + internal char Open + { + get + { + switch (GrammarSegment) + { + case GrammarSegment.ParenOpen: + return '('; + + case GrammarSegment.SquareBraceOpen: + return '['; + + default: + return '{'; + + } + } + } + + internal char Close + { + get + { + switch (GrammarSegment) + { + case GrammarSegment.ParenOpen: + return ')'; + + case GrammarSegment.SquareBraceOpen: + return ']'; + + default: + return '}'; + + } + } + } + + internal GrammarSegment Mirror + { + get { return _mirror; } + } + + internal static BracketBlock OpenRound + { + get { return RoundOpen; } + } + + internal static BracketBlock CloseRound + { + get { return RoundClose; } + } + + internal static BracketBlock OpenCurly + { + get { return CurlyOpen; } + } + + internal static BracketBlock CloseCurly + { + get { return CurlyClose; } + } + + internal static BracketBlock OpenSquare + { + get { return SquareOpen; } + } + + internal static BracketBlock CloseSquare + { + get { return SquareClose; } + } + + public override string ToString() + { + return ToString(false); + } + + public string ToString(bool friendlyFormat, int indentation = 0) + { + switch (GrammarSegment) + { + case GrammarSegment.CurlyBraceOpen: + return "{"; + + case GrammarSegment.CurlyBracketClose: + return "}"; + + case GrammarSegment.ParenClose: + return ")"; + + case GrammarSegment.ParenOpen: + return "("; + + case GrammarSegment.SquareBracketClose: + return "]"; + + case GrammarSegment.SquareBraceOpen: + return "["; + } + + return string.Empty; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/CharacterBlock.cs b/Source/External/ExCSS/Model/TextBlocks/CharacterBlock.cs new file mode 100644 index 0000000..f5c4473 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/CharacterBlock.cs @@ -0,0 +1,23 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal abstract class CharacterBlock : Block + { + private readonly char _value; + + protected CharacterBlock() + { + _value = Specification.Null; + } + + protected CharacterBlock(char value) + { + _value = value; + } + + internal char Value + { + get { return _value; } + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/CommentBlock.cs b/Source/External/ExCSS/Model/TextBlocks/CommentBlock.cs new file mode 100644 index 0000000..a9fe661 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/CommentBlock.cs @@ -0,0 +1,35 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class CommentBlock : Block + { + private readonly static CommentBlock OpenBlock; + private readonly static CommentBlock CloseBlock; + + static CommentBlock() + { + OpenBlock = new CommentBlock { GrammarSegment = GrammarSegment.CommentOpen }; + CloseBlock = new CommentBlock { GrammarSegment = GrammarSegment.CommentClose }; + } + + CommentBlock() + { + } + + + internal static CommentBlock Open + { + get { return OpenBlock; } + } + + internal static CommentBlock Close + { + get { return CloseBlock; } + } + + public override string ToString() + { + return GrammarSegment == GrammarSegment.CommentOpen ? ""; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/DelimiterBlock.cs b/Source/External/ExCSS/Model/TextBlocks/DelimiterBlock.cs new file mode 100644 index 0000000..6e14f44 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/DelimiterBlock.cs @@ -0,0 +1,23 @@ + +using System.Globalization; + +namespace ExCSS.Model.TextBlocks +{ + internal class DelimiterBlock : CharacterBlock + { + internal DelimiterBlock() + { + GrammarSegment = GrammarSegment.Delimiter; + } + + internal DelimiterBlock(char value) : base(value) + { + GrammarSegment = GrammarSegment.Delimiter; + } + + public override string ToString() + { + return Value.ToString(CultureInfo.InvariantCulture); + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/MatchBlock.cs b/Source/External/ExCSS/Model/TextBlocks/MatchBlock.cs new file mode 100644 index 0000000..eb334c0 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/MatchBlock.cs @@ -0,0 +1,39 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class MatchBlock : Block + { + internal readonly static MatchBlock Include = new MatchBlock { GrammarSegment = GrammarSegment.IncludeMatch }; + internal readonly static MatchBlock Dash = new MatchBlock { GrammarSegment = GrammarSegment.DashMatch }; + internal readonly static Block Prefix = new MatchBlock { GrammarSegment = GrammarSegment.PrefixMatch }; + internal readonly static Block Substring = new MatchBlock { GrammarSegment = GrammarSegment.SubstringMatch }; + internal readonly static Block Suffix = new MatchBlock { GrammarSegment = GrammarSegment.SuffixMatch }; + internal readonly static Block Not = new MatchBlock { GrammarSegment = GrammarSegment.NegationMatch }; + + public override string ToString() + { + switch (GrammarSegment) + { + case GrammarSegment.SubstringMatch: + return "*="; + + case GrammarSegment.SuffixMatch: + return "$="; + + case GrammarSegment.PrefixMatch: + return "^="; + + case GrammarSegment.IncludeMatch: + return "~="; + + case GrammarSegment.DashMatch: + return "|="; + + case GrammarSegment.NegationMatch: + return "!="; + } + + return string.Empty; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/NumericBlock.cs b/Source/External/ExCSS/Model/TextBlocks/NumericBlock.cs new file mode 100644 index 0000000..facab18 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/NumericBlock.cs @@ -0,0 +1,26 @@ +using System; +using System.Globalization; + +namespace ExCSS.Model.TextBlocks +{ + internal class NumericBlock : Block + { + private readonly string _data; + + internal NumericBlock(string number) + { + _data = number; + GrammarSegment = GrammarSegment.Number; + } + + public Single Value + { + get { return Single.Parse(_data, CultureInfo.InvariantCulture); } + } + + public override string ToString() + { + return _data; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/PipeBlock.cs b/Source/External/ExCSS/Model/TextBlocks/PipeBlock.cs new file mode 100644 index 0000000..8beefed --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/PipeBlock.cs @@ -0,0 +1,28 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class PipeBlock : Block + { + private readonly static PipeBlock TokenBlock; + + static PipeBlock() + { + TokenBlock = new PipeBlock(); + } + + PipeBlock() + { + GrammarSegment = GrammarSegment.Column; + } + + internal static PipeBlock Token + { + get { return TokenBlock; } + } + + public override string ToString() + { + return "||"; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/RangeBlock.cs b/Source/External/ExCSS/Model/TextBlocks/RangeBlock.cs new file mode 100644 index 0000000..56471cb --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/RangeBlock.cs @@ -0,0 +1,69 @@ +using System.Collections.Generic; + +namespace ExCSS.Model.TextBlocks +{ + internal class RangeBlock : Block + { + public RangeBlock() + { + GrammarSegment = GrammarSegment.Range; + } + + internal bool IsEmpty + { + get { return SelectedRange == null || SelectedRange.Length == 0; } + } + + internal string[] SelectedRange { get; private set; } + + internal RangeBlock SetRange(string start, string end) + { + var startValue = int.Parse(start, System.Globalization.NumberStyles.HexNumber); + + if (startValue > Specification.MaxPoint) + { + return this; + } + + if (end == null) + { + SelectedRange = new [] { char.ConvertFromUtf32(startValue) }; + } + else + { + var list = new List(); + var endValue = int.Parse(end, System.Globalization.NumberStyles.HexNumber); + + if (endValue > Specification.MaxPoint) + { + endValue = Specification.MaxPoint; + } + + for (; startValue <= endValue; startValue++) + { + list.Add(char.ConvertFromUtf32(startValue)); + } + + SelectedRange = list.ToArray(); + } + + return this; + } + + public override string ToString() + { + if (IsEmpty) + { + return string.Empty; + } + + if (SelectedRange.Length == 1) + { + return "#" + char.ConvertToUtf32(SelectedRange[0], 0).ToString("x"); + } + + return "#" + char.ConvertToUtf32(SelectedRange[0], 0).ToString("x") + "-#" + + char.ConvertToUtf32(SelectedRange[SelectedRange.Length - 1], 0).ToString("x"); + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/SpecialCharacter.cs b/Source/External/ExCSS/Model/TextBlocks/SpecialCharacter.cs new file mode 100644 index 0000000..48fd9a2 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/SpecialCharacter.cs @@ -0,0 +1,21 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class SpecialCharacter : CharacterBlock + { + internal static readonly SpecialCharacter Colon = new SpecialCharacter(Specification.Colon, GrammarSegment.Colon); + internal static readonly SpecialCharacter Comma = new SpecialCharacter(Specification.Comma, GrammarSegment.Comma); + internal static readonly SpecialCharacter Semicolon = new SpecialCharacter(Specification.Simicolon, GrammarSegment.Semicolon); + internal static readonly SpecialCharacter Whitespace = new SpecialCharacter(Specification.Space, GrammarSegment.Whitespace); + + SpecialCharacter(char specialCharacter, GrammarSegment type) : base(specialCharacter) + { + GrammarSegment = type; + } + + public override string ToString() + { + return Value.ToString(); + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/StringBlock.cs b/Source/External/ExCSS/Model/TextBlocks/StringBlock.cs new file mode 100644 index 0000000..cce8390 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/StringBlock.cs @@ -0,0 +1,35 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class StringBlock : Block + { + StringBlock(GrammarSegment type) + { + GrammarSegment = type; + } + + internal static StringBlock Plain(string data, bool bad = false) + { + return new StringBlock(GrammarSegment.String) { Value = data, IsBad = bad }; + } + + internal static StringBlock Url(string data, bool bad = false) + { + return new StringBlock(GrammarSegment.Url) { Value = data, IsBad = bad }; + } + + internal string Value { get; private set; } + + internal bool IsBad { get; private set; } + + public override string ToString() + { + if (GrammarSegment == GrammarSegment.Url) + { + return "url(" + Value + ")"; + } + + return "'" + Value + "'"; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/SymbolBlock.cs b/Source/External/ExCSS/Model/TextBlocks/SymbolBlock.cs new file mode 100644 index 0000000..f2c9024 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/SymbolBlock.cs @@ -0,0 +1,47 @@ + +namespace ExCSS.Model.TextBlocks +{ + internal class SymbolBlock : Block + { + SymbolBlock(GrammarSegment type) + { + GrammarSegment = type; + } + + internal static SymbolBlock Function(string name) + { + return new SymbolBlock(GrammarSegment.Function) { Value = name }; + } + + internal static SymbolBlock Ident(string identifier) + { + return new SymbolBlock(GrammarSegment.Ident) { Value = identifier }; + } + + internal static SymbolBlock At(string name) + { + return new SymbolBlock(GrammarSegment.AtRule) { Value = name }; + } + + internal static SymbolBlock Hash(string characters) + { + return new SymbolBlock(GrammarSegment.Hash) { Value = characters }; + } + + internal string Value { get; private set; } + + public override string ToString() + { + switch (GrammarSegment) + { + case GrammarSegment.Hash: + return "#" + Value; + + case GrammarSegment.AtRule: + return "@" + Value; + } + + return Value; + } + } +} diff --git a/Source/External/ExCSS/Model/TextBlocks/UnitBlock.cs b/Source/External/ExCSS/Model/TextBlocks/UnitBlock.cs new file mode 100644 index 0000000..2a21858 --- /dev/null +++ b/Source/External/ExCSS/Model/TextBlocks/UnitBlock.cs @@ -0,0 +1,37 @@ +using System; +using System.Globalization; + +namespace ExCSS.Model.TextBlocks +{ + internal class UnitBlock : Block + { + private string _value; + + UnitBlock(GrammarSegment type) + { + GrammarSegment = type; + } + + internal Single Value + { + get { return Single.Parse(_value, CultureInfo.InvariantCulture); } + } + + internal string Unit { get; private set; } + + internal static UnitBlock Percentage(string value) + { + return new UnitBlock(GrammarSegment.Percentage) { _value = value, Unit = "%" }; + } + + internal static UnitBlock Dimension(string value, string dimension) + { + return new UnitBlock(GrammarSegment.Dimension) { _value = value, Unit = dimension }; + } + + public override string ToString() + { + return _value + Unit; + } + } +} diff --git a/Source/External/ExCSS/Model/Values/GenericFunction.cs b/Source/External/ExCSS/Model/Values/GenericFunction.cs new file mode 100644 index 0000000..6f5ce1a --- /dev/null +++ b/Source/External/ExCSS/Model/Values/GenericFunction.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Text; +using ExCSS.Model; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class GenericFunction : Term + { + public string Name { get; set; } + public TermList Arguments { get; set; } + + public GenericFunction(string name, List arguments) + { + this.Name = name; + + var list = new TermList(); + for (int n = 0; n < arguments.Count; n++) + { + list.AddTerm(arguments[n]); + if (n == arguments.Count - 1) + break; + list.AddSeparator(GrammarSegment.Comma); + } + this.Arguments = list; + } + + public override string ToString() + { + return Name + "(" + Arguments + ")"; + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Values/HtmlColor.cs b/Source/External/ExCSS/Model/Values/HtmlColor.cs new file mode 100644 index 0000000..32d50df --- /dev/null +++ b/Source/External/ExCSS/Model/Values/HtmlColor.cs @@ -0,0 +1,252 @@ +using System; +using System.Runtime.InteropServices; +using ExCSS.Model; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class HtmlColor : Term, IEquatable + { + public byte A; + public byte R; + public byte G; + public byte B; + + public HtmlColor(byte r, byte g, byte b) + { + A = 255; + R = r; + B = b; + G = g; + } + + public HtmlColor(byte a, byte r, byte g, byte b) + { + A = a; + R = r; + B = b; + G = g; + } + + public HtmlColor(Double a, byte r, byte g, byte b) + { + A = (byte)Math.Max(Math.Min(Math.Ceiling(255 * a), 255), 0); + R = r; + B = b; + G = g; + } + + public static HtmlColor FromRgba(byte r, byte g, byte b, Single a) + { + return new HtmlColor(a, r, g, b); + } + + public static HtmlColor FromRgba(byte r, byte g, byte b, Double a) + { + return new HtmlColor(a, r, g, b); + } + + public static HtmlColor FromRgb(byte r, byte g, byte b) + { + return new HtmlColor(r, g, b); + } + + public static HtmlColor FromHsl(Single h, Single s, Single l) + { + const Single third = 1f / 3f; + + var m2 = l <= 0.5f ? (l * (s + 1f)) : (l + s - l * s); + var m1 = 2f * l - m2; + var r = (Byte)Math.Round(255 * HueToRgb(m1, m2, h + third)); + var g = (Byte)Math.Round(255 * HueToRgb(m1, m2, h)); + var b = (Byte)Math.Round(255 * HueToRgb(m1, m2, h - third)); + return new HtmlColor(r, g, b); + } + + public static HtmlColor FromHex(string color) + { + if (color.Length == 3) + { + var r = color[0].FromHex(); + r += r * 16; + + var g = color[1].FromHex(); + g += g * 16; + + var b = color[2].FromHex(); + b += b * 16; + + return new HtmlColor((byte)r, (byte)g, (byte)b); + } + + if (color.Length == 6) + { + var r = 16 * color[0].FromHex(); + var g = 16 * color[2].FromHex(); + var b = 16 * color[4].FromHex(); + + r += color[1].FromHex(); + g += color[3].FromHex(); + b += color[5].FromHex(); + + return new HtmlColor((byte)r, (byte)g, (byte)b); + } + + throw new ArgumentException("Invalid color code length: " + color, "color"); + } + + public static bool TryFromHex(string color, out HtmlColor htmlColor) + { + htmlColor = new HtmlColor(255, 0, 0, 0); + + if (color.Length == 3) + { + if (!color[0].IsHex() || !color[1].IsHex() || !color[2].IsHex()) + { + return false; + } + + var r = color[0].FromHex(); + r += r * 16; + + var g = color[1].FromHex(); + g += g * 16; + + var b = color[2].FromHex(); + b += b * 16; + + htmlColor.R = (byte)r; + htmlColor.G = (byte)g; + htmlColor.B = (byte)b; + + return true; + } + + if (color.Length == 6) + { + if (!color[0].IsHex() || !color[1].IsHex() || !color[2].IsHex() || + !color[3].IsHex() || !color[4].IsHex() || !color[5].IsHex()) + { + return false; + } + + var r = 16 * color[0].FromHex(); + var g = 16 * color[2].FromHex(); + var b = 16 * color[4].FromHex(); + + r += color[1].FromHex(); + g += color[3].FromHex(); + b += color[5].FromHex(); + + htmlColor.R = (byte)r; + htmlColor.G = (byte)g; + htmlColor.B = (byte)b; + + return true; + } + + return false; + } + + public double Alpha + { + get { return A / 255.0; } + } + + public static bool operator ==(HtmlColor a, HtmlColor b) + { + return a.GetHashCode() == b.GetHashCode(); + } + + public static bool operator !=(HtmlColor a, HtmlColor b) + { + return a.GetHashCode() != b.GetHashCode(); + } + + public override bool Equals(Object obj) + { + if (obj is HtmlColor) + { + return Equals((HtmlColor)obj); + } + + return false; + } + + public override int GetHashCode() + { + return unchecked(A + (R << 8) + (G << 16) + (B << 24)); + } + + public override string ToString() + { + return ToString(false); + } + + public string ToString(bool friendlyFormat, int indentation = 0) + { + return ToCss().Indent(friendlyFormat, indentation); + } + + public string ToString(bool forceLong, bool friendlyFormat, int indentation = 0) + { + return ToCss(forceLong).Indent(friendlyFormat, indentation); + } + + /// + /// Return the shortest form possible + /// + string ToCss(bool forceLong = false) + { + if (A == 255 && !forceLong && ((R >> 4) == (R & 0x0F)) && ((G >> 4) == (G & 0x0F)) && ((B >> 4) == (B & 0x0F))) + return "#" + R.ToHexChar() + G.ToHexChar() + B.ToHexChar(); + + if (A == 255) + { + return "#" + R.ToHex() + G.ToHex() + B.ToHex(); + //return "rgb(" + R + ", " + G + ", " + B + ")"; + } + + return "rgba(" + R + ", " + G + ", " + B + ", " + Alpha.ToString("0.##") + ")"; + } + + public bool Equals(HtmlColor other) + { + HtmlColor o = other as HtmlColor; + if (o == null) + return false; + return GetHashCode() == other.GetHashCode(); + } + + private static Single HueToRgb(Single m1, Single m2, Single h) + { + const Single sixth = 1f / 6f; + const Single third2 = 2f / 3f; + + if (h < 0f) + { + h += 1f; + } + else if (h > 1f) + { + h -= 1f; + } + + if (h < sixth) + { + return m1 + (m2 - m1) * h * 6f; + } + if (h < 0.5) + { + return m2; + } + if (h < third2) + { + return m1 + (m2 - m1) * (third2 - h) * 6f; + } + + return m1; + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/Model/Values/InheritTerm.cs b/Source/External/ExCSS/Model/Values/InheritTerm.cs new file mode 100644 index 0000000..c39c023 --- /dev/null +++ b/Source/External/ExCSS/Model/Values/InheritTerm.cs @@ -0,0 +1,17 @@ +using System; + +namespace ExCSS +{ + public class InheritTerm : Term + { + internal InheritTerm() + { + } + + public override string ToString() + { + return "inherit"; + } + } +} + diff --git a/Source/External/ExCSS/Model/Values/PrimitiveTerm.cs b/Source/External/ExCSS/Model/Values/PrimitiveTerm.cs new file mode 100644 index 0000000..332e57b --- /dev/null +++ b/Source/External/ExCSS/Model/Values/PrimitiveTerm.cs @@ -0,0 +1,169 @@ +using System; +using System.Globalization; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class PrimitiveTerm : Term + { + public object Value { get; set; } + public UnitType PrimitiveType { get; set; } + + public PrimitiveTerm(UnitType unitType, string value) + { + PrimitiveType = unitType; + Value = value; + } + + public PrimitiveTerm(UnitType unitType, Single value) + { + PrimitiveType = unitType; + Value = value; + } + + public PrimitiveTerm(string unit, Single value) + { + PrimitiveType = ConvertStringToUnitType(unit);; + Value = value; + } + + public Single? GetFloatValue(UnitType unit) + { + if (!(Value is Single)) + { + return null; + } + + var quantity = (Single)Value; + + switch (unit) + { + case UnitType.Percentage: + quantity = quantity / 100f; + break; + } + + return quantity; + } + + public override string ToString() + { + switch (PrimitiveType) + { + case UnitType.String: + return "'" + Value + "'"; + + case UnitType.Uri: + return "url(" + Value + ")"; + + default: + if (Value is Single) + return ((Single)Value).ToString(CultureInfo.InvariantCulture) + ConvertUnitTypeToString(PrimitiveType); + + return Value.ToString(); + } + } + + internal static UnitType ConvertStringToUnitType(string unit) + { + switch (unit) + { + case "%": + return UnitType.Percentage; + case "em": + return UnitType.Ems; + case "cm": + return UnitType.Centimeter; + case "deg": + return UnitType.Degree; + case "grad": + return UnitType.Grad; + case "rad": + return UnitType.Radian; + case "turn": + return UnitType.Turn; + case "ex": + return UnitType.Exs; + case "hz": + return UnitType.Hertz; + case "in": + return UnitType.Inch; + case "khz": + return UnitType.KiloHertz; + case "mm": + return UnitType.Millimeter; + case "ms": + return UnitType.Millisecond; + case "s": + return UnitType.Second; + case "pc": + return UnitType.Percent; + case "pt": + return UnitType.Point; + case "px": + return UnitType.Pixel; + case "vw": + return UnitType.ViewportWidth; + case "vh": + return UnitType.ViewportHeight; + case "vmin": + return UnitType.ViewportMin; + case "vmax": + return UnitType.ViewportMax; + } + + return UnitType.Unknown; + } + + internal static string ConvertUnitTypeToString(UnitType unit) + { + switch (unit) + { + case UnitType.Percentage: + return "%"; + case UnitType.Ems: + return "em"; + case UnitType.Centimeter: + return "cm"; + case UnitType.Degree: + return "deg"; + case UnitType.Grad: + return "grad"; + case UnitType.Radian: + return "rad"; + case UnitType.Turn: + return "turn"; + case UnitType.Exs: + return "ex"; + case UnitType.Hertz: + return "hz"; + case UnitType.Inch: + return "in"; + case UnitType.KiloHertz: + return "khz"; + case UnitType.Millimeter: + return "mm"; + case UnitType.Millisecond: + return "ms"; + case UnitType.Second: + return "s"; + case UnitType.Percent: + return "pc"; + case UnitType.Point: + return "pt"; + case UnitType.Pixel: + return "px"; + case UnitType.ViewportWidth: + return "vw"; + case UnitType.ViewportHeight: + return "vh"; + case UnitType.ViewportMin: + return "vmin"; + case UnitType.ViewportMax: + return "vmax"; + } + + return string.Empty; + } + } +} diff --git a/Source/External/ExCSS/Model/Values/Property.cs b/Source/External/ExCSS/Model/Values/Property.cs new file mode 100644 index 0000000..ebc7a08 --- /dev/null +++ b/Source/External/ExCSS/Model/Values/Property.cs @@ -0,0 +1,47 @@ +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class Property + { + private Term _term; + private bool _important; + + public Property(string name) + { + Name = name; + } + + public string Name { get; private set; } + + public Term Term + { + get { return _term; } + set { _term = value; } + } + + public bool Important + { + get { return _important; } + set { _important = value; } + } + + public override string ToString() + { + return ToString(false); + } + + public string ToString(bool friendlyFormat, int indentation = 0) + { + var value = Name + ":" + _term; + + if (_important) + { + value += " !important"; + } + + return value.Indent(friendlyFormat, indentation); + } + } +} diff --git a/Source/External/ExCSS/Model/Values/Term.cs b/Source/External/ExCSS/Model/Values/Term.cs new file mode 100644 index 0000000..25f695e --- /dev/null +++ b/Source/External/ExCSS/Model/Values/Term.cs @@ -0,0 +1,9 @@ + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public abstract class Term + { + public static readonly InheritTerm Inherit = new InheritTerm(); + } +} diff --git a/Source/External/ExCSS/Model/Values/TermList.cs b/Source/External/ExCSS/Model/Values/TermList.cs new file mode 100644 index 0000000..51bb3c2 --- /dev/null +++ b/Source/External/ExCSS/Model/Values/TermList.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Text; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public class TermList : Term + { + private readonly List _separator = new List(); + private readonly List _items = new List(); + private const GrammarSegment DefaultSeparator = GrammarSegment.Comma; + + public TermList() + { + } + + public TermList(params Term[] terms) + { + for(var i = 0; i < terms.Length; ++i) + { + AddTerm(terms[i]); + if(i != terms.Length-1) + { + AddSeparator(DefaultSeparator); + } + } + } + + public void AddTerm(Term term) + { + if (_items.Count != _separator.Count) + { + throw new NotSupportedException("Must call AddTerm AddSeparator in that order"); + } + + _items.Add(term); + } + + public void AddSeparator(TermSeparator termSeparator) + { + switch(termSeparator) + { + case(TermSeparator.Comma): + { + AddSeparator(GrammarSegment.Comma); + break; + } + case(TermSeparator.Space): + { + AddSeparator(GrammarSegment.Whitespace); + break; + } + } + } + + internal void AddSeparator(GrammarSegment termSepertor) + { + if (_items.Count != _separator.Count + 1) + { + throw new NotSupportedException("Must call AddTerm AddSeparator in that order"); + } + + _separator.Add(termSepertor); + } + + public int Length + { + get { return _items.Count; } + } + + [IndexerName("ListItems")] + public Term this [int index] + { + //return index >= 0 && index < _items.Count ? _items[index] : null; + get { return _items[index]; } + } + + public Term Item(int index) + { + return this[index]; + } + + public override string ToString() + { + var builder = new StringBuilder(); + + for (var i = 0; i < _items.Count; i++) + { + builder.Append(_items[i]); + + if (i == _separator.Count) + break; + + switch (_separator[i]) + { + case GrammarSegment.Whitespace: + builder.Append(" "); + break; + + case GrammarSegment.Comma: + builder.Append(","); + break; + + default: + throw new NotImplementedException(); + } + } + + return builder.ToString(); + } + + /// + /// exposed enumeration for the adding of separators into term lists + /// + public enum TermSeparator + { + Comma, + Space + } + } +} diff --git a/Source/External/ExCSS/Parser.Blocks.cs b/Source/External/ExCSS/Parser.Blocks.cs new file mode 100644 index 0000000..9406aec --- /dev/null +++ b/Source/External/ExCSS/Parser.Blocks.cs @@ -0,0 +1,853 @@ +using System; +using System.Text; +using System.Collections.Generic; +using ExCSS.Model; +using ExCSS.Model.TextBlocks; + +namespace ExCSS +{ + public partial class Parser + { + private bool ParseTokenBlock(Block token) + { + switch (_parsingContext) + { + case ParsingContext.DataBlock: + return ParseSymbol(token); + + case ParsingContext.InSelector: + return ParseSelector(token); + + case ParsingContext.InDeclaration: + return ParseDeclaration(token); + + case ParsingContext.AfterProperty: + return ParsePostProperty(token); + + case ParsingContext.BeforeValue: + return ParseValue(token); + + case ParsingContext.InValuePool: + return ParseValuePool(token); + + case ParsingContext.InValueList: + return ParseValueList(token); + + case ParsingContext.InSingleValue: + return ParseSingleValue(token); + + case ParsingContext.ValueImportant: + return ParseImportant(token); + + case ParsingContext.AfterValue: + return ParsePostValue(token); + + case ParsingContext.InMediaList: + return ParseMediaList(token); + + case ParsingContext.InMediaValue: + return ParseMediaValue(token); + + case ParsingContext.BeforeImport: + return ParseImport(token); + + case ParsingContext.AfterInstruction: + return ParsePostInstruction(token); + + case ParsingContext.BeforeCharset: + return ParseCharacterSet(token); + + case ParsingContext.BeforeNamespacePrefix: + return ParseLeadingPrefix(token); + + case ParsingContext.AfterNamespacePrefix: + return ParseNamespace(token); + + case ParsingContext.InCondition: + return ParseCondition(token); + + case ParsingContext.InUnknown: + return ParseUnknown(token); + + case ParsingContext.InKeyframeText: + return ParseKeyframeText(token); + + case ParsingContext.BeforePageSelector: + return ParsePageSelector(token); + + case ParsingContext.BeforeDocumentFunction: + return ParsePreDocumentFunction(token); + + case ParsingContext.InDocumentFunction: + return ParseDocumentFunction(token); + + case ParsingContext.AfterDocumentFunction: + return ParsePostDocumentFunction(token); + + case ParsingContext.BetweenDocumentFunctions: + return ParseDocumentFunctions(token); + + case ParsingContext.BeforeKeyframesName: + return ParseKeyframesName(token); + + case ParsingContext.BeforeKeyframesData: + return ParsePreKeyframesData(token); + + case ParsingContext.KeyframesData: + return ParseKeyframesData(token); + + case ParsingContext.BeforeFontFace: + return ParseFontface(token); + + case ParsingContext.InHexValue: + return ParseHexValue(token); + + case ParsingContext.InFunction: + + return ParseValueFunction(token); + default: + return false; + } + } + + private bool ParseSymbol(Block token) + { + if (token.GrammarSegment == GrammarSegment.AtRule) + { + switch (((SymbolBlock)token).Value) + { + case RuleTypes.Media: + { + AddRuleSet(new MediaRule()); + SetParsingContext(ParsingContext.InMediaList); + break; + } + case RuleTypes.Page: + { + AddRuleSet(new PageRule()); + //SetParsingContext(ParsingContext.InSelector); + SetParsingContext(ParsingContext.BeforePageSelector); + break; + } + case RuleTypes.Import: + { + AddRuleSet(new ImportRule()); + SetParsingContext(ParsingContext.BeforeImport); + break; + } + case RuleTypes.FontFace: + { + AddRuleSet(new FontFaceRule()); + //SetParsingContext(ParsingContext.InDeclaration); + SetParsingContext(ParsingContext.BeforeFontFace); + break; + } + case RuleTypes.CharacterSet: + { + AddRuleSet(new CharacterSetRule()); + SetParsingContext(ParsingContext.BeforeCharset); + break; + } + case RuleTypes.Namespace: + { + AddRuleSet(new NamespaceRule()); + SetParsingContext(ParsingContext.BeforeNamespacePrefix); + break; + } + case RuleTypes.Supports: + { + _buffer = new StringBuilder(); + AddRuleSet(new SupportsRule()); + SetParsingContext(ParsingContext.InCondition); + break; + } + case RuleTypes.Keyframes: + { + AddRuleSet(new KeyframesRule()); + SetParsingContext(ParsingContext.BeforeKeyframesName); + break; + } + case RuleTypes.Document: + { + AddRuleSet(new DocumentRule()); + SetParsingContext(ParsingContext.BeforeDocumentFunction); + break; + } + default: + { + _buffer = new StringBuilder(); + AddRuleSet(new GenericRule()); + SetParsingContext(ParsingContext.InUnknown); + ParseUnknown(token); + break; + } + } + + return true; + } + + if (token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + return FinalizeRule(); + } + + AddRuleSet(new StyleRule()); + SetParsingContext(ParsingContext.InSelector); + ParseSelector(token); + return true; + + } + + private bool ParseUnknown(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.Semicolon: + CastRuleSet().SetInstruction(_buffer.ToString()); + SetParsingContext(ParsingContext.DataBlock); + + return FinalizeRule(); + + case GrammarSegment.CurlyBraceOpen: + CastRuleSet().SetCondition(_buffer.ToString()); + SetParsingContext(ParsingContext.DataBlock); + break; + + default: + _buffer.Append(token); + break; + } + + return true; + } + + private bool ParseSelector(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.CurlyBraceOpen: + { + var rule = CurrentRule as ISupportsSelector; + + if (rule != null) + { + rule.Selector = _selectorFactory.GetSelector(); + } + + SetParsingContext(CurrentRule is StyleRule + ? ParsingContext.InDeclaration + : ParsingContext.DataBlock); + } + break; + + case GrammarSegment.CurlyBracketClose: + return false; + + default: + _selectorFactory.Apply(token); + break; + } + + return true; + } + + private bool ParseDeclaration(Block token) + { + if (token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + FinalizeProperty(); + SetParsingContext(CurrentRule is KeyframeRule ? ParsingContext.KeyframesData : ParsingContext.DataBlock); + return FinalizeRule(); + } + + if (token.GrammarSegment != GrammarSegment.Ident) + { + return false; + } + + AddProperty(new Property(((SymbolBlock)token).Value)); + SetParsingContext(ParsingContext.AfterProperty); + return true; + } + + private bool ParsePostInstruction(Block token) + { + if (token.GrammarSegment != GrammarSegment.Semicolon) + { + return false; + } + + SetParsingContext(ParsingContext.DataBlock); + + return FinalizeRule(); + } + + private bool ParseCondition(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.CurlyBraceOpen: + CastRuleSet().Condition = _buffer.ToString(); + SetParsingContext(ParsingContext.DataBlock); + break; + + default: + _buffer.Append(token); + break; + } + + return true; + } + + private bool ParseLeadingPrefix(Block token) + { + if (token.GrammarSegment == GrammarSegment.Ident) + { + CastRuleSet().Prefix = ((SymbolBlock)token).Value; + SetParsingContext(ParsingContext.AfterNamespacePrefix); + + return true; + } + + if (token.GrammarSegment == GrammarSegment.String || token.GrammarSegment == GrammarSegment.Url) + { + CastRuleSet().Uri = ((StringBlock)token).Value; + return true; + } + + SetParsingContext(ParsingContext.AfterInstruction); + + return ParsePostInstruction(token); + } + + private bool ParsePostProperty(Block token) + { + if (token.GrammarSegment == GrammarSegment.Colon) + { + _isFraction = false; + SetParsingContext(ParsingContext.BeforeValue); + return true; + } + + if (token.GrammarSegment == GrammarSegment.Semicolon || token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + ParsePostValue(token); + } + + return false; + } + + private bool ParseValue(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.Semicolon: + SetParsingContext(ParsingContext.InDeclaration); + break; + + case GrammarSegment.CurlyBracketClose: + ParseDeclaration(token); + break; + + default: + SetParsingContext(ParsingContext.InSingleValue); + return ParseSingleValue(token); + } + + return false; + } + + private bool ParseSingleValue(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.Dimension: // "3px" + return AddTerm(new PrimitiveTerm(((UnitBlock)token).Unit, ((UnitBlock)token).Value)); + + case GrammarSegment.Hash:// "#ffffff" + return ParseSingleValueHexColor(((SymbolBlock)token).Value); + + case GrammarSegment.Delimiter: // "#" + return ParseValueDelimiter((DelimiterBlock)token); + + case GrammarSegment.Ident: // "auto" + return ParseSingleValueIdent((SymbolBlock)token); + + case GrammarSegment.String:// "'some value'" + return AddTerm(new PrimitiveTerm(UnitType.String, ((StringBlock)token).Value)); + + case GrammarSegment.Url:// "url('http://....')" + return AddTerm(new PrimitiveTerm(UnitType.Uri, ((StringBlock)token).Value)); + + case GrammarSegment.Percentage: // "10%" + return AddTerm(new PrimitiveTerm(UnitType.Percentage, ((UnitBlock)token).Value)); + + case GrammarSegment.Number: // "123" + return AddTerm(new PrimitiveTerm(UnitType.Number, ((NumericBlock)token).Value)); + + case GrammarSegment.Whitespace: // " " + _terms.AddSeparator(GrammarSegment.Whitespace); + SetParsingContext(ParsingContext.InValueList); + return true; + + case GrammarSegment.Function: // rgba(...) + _functionBuffers.Push(new FunctionBuffer(((SymbolBlock)token).Value)); + SetParsingContext(ParsingContext.InFunction); + return true; + + case GrammarSegment.Comma: // "," + _terms.AddSeparator(GrammarSegment.Comma); + SetParsingContext(ParsingContext.InValuePool); + return true; + + case GrammarSegment.Semicolon: // ";" + case GrammarSegment.CurlyBracketClose: // "}" + return ParsePostValue(token); + + default: + return false; + } + } + + private bool ParseValueFunction(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.ParenClose: + SetParsingContext(ParsingContext.InSingleValue); + return AddTerm(_functionBuffers.Pop().Done()); + + case GrammarSegment.Comma: + _functionBuffers.Peek().Include(); + return true; + + default: + return ParseSingleValue(token); + } + } + + private bool ParseValueList(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.CurlyBracketClose: + case GrammarSegment.Semicolon: + ParsePostValue(token); + break; + + case GrammarSegment.Comma: + SetParsingContext(ParsingContext.InValuePool); + break; + + default: + SetParsingContext(ParsingContext.InSingleValue); + return ParseSingleValue(token); + } + + return true; + } + + private bool ParseValuePool(Block token) + { + if (token.GrammarSegment == GrammarSegment.Semicolon || token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + ParsePostValue(token); + } + else + { + SetParsingContext(ParsingContext.InSingleValue); + return ParseSingleValue(token); + } + + return false; + } + + private bool ParseHexValue(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.Number: + case GrammarSegment.Dimension: + case GrammarSegment.Ident: + var rest = token.ToString(); + + if (_buffer.Length + rest.Length <= 6) + { + _buffer.Append(rest); + return true; + } + + break; + } + + ParseSingleValueHexColor(_buffer.ToString()); + SetParsingContext(ParsingContext.InSingleValue); + return ParseSingleValue(token); + } + + private bool ParsePostValue(Block token) + { + if (token.GrammarSegment == GrammarSegment.Semicolon) + { + FinalizeProperty(); + SetParsingContext(ParsingContext.InDeclaration); + return true; + } + + if (token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + return ParseDeclaration(token); + } + + return false; + } + + private bool ParseImportant(Block token) + { + if (token.GrammarSegment != GrammarSegment.Ident || ((SymbolBlock)token).Value != "important") + { + return ParsePostValue(token); + } + + SetParsingContext(ParsingContext.AfterValue); + _property.Important = true; + + return true; + } + + private bool ParseValueDelimiter(DelimiterBlock token) + { + switch (token.Value) + { + case Specification.Em: + SetParsingContext(ParsingContext.ValueImportant); + return true; + + case Specification.Hash: + _buffer = new StringBuilder(); + SetParsingContext(ParsingContext.InHexValue); + return true; + + case Specification.Solidus: + _isFraction = true; + return true; + + default: + return false; + } + } + + private bool ParseSingleValueIdent(SymbolBlock token) + { + if (token.Value != "inherit") + { + return AddTerm(new PrimitiveTerm(UnitType.Ident, token.Value)); + } + _terms.AddTerm(Term.Inherit); + SetParsingContext(ParsingContext.AfterValue); + return true; + } + + private bool ParseSingleValueHexColor(string color) + { + HtmlColor htmlColor; + + if(HtmlColor.TryFromHex(color, out htmlColor)) + return AddTerm(htmlColor); + return false; + } + + #region Namespace + private bool ParseNamespace(Block token) + { + SetParsingContext(ParsingContext.AfterInstruction); + + if (token.GrammarSegment != GrammarSegment.String) + { + return ParsePostInstruction(token); + } + + CastRuleSet().Uri = ((StringBlock)token).Value; + + return true; + } + #endregion + + #region Charset + private bool ParseCharacterSet(Block token) + { + SetParsingContext(ParsingContext.AfterInstruction); + + if (token.GrammarSegment != GrammarSegment.String) + { + return ParsePostInstruction(token); + } + + CastRuleSet().Encoding = ((StringBlock)token).Value; + + return true; + } + #endregion + + #region Import + private bool ParseImport(Block token) + { + if (token.GrammarSegment == GrammarSegment.String || token.GrammarSegment == GrammarSegment.Url) + { + CastRuleSet().Href = ((StringBlock)token).Value; + SetParsingContext(ParsingContext.InMediaList); + return true; + } + + SetParsingContext(ParsingContext.AfterInstruction); + + return false; + } + #endregion + + #region Font Face + + private bool ParseFontface(Block token) + { + if (token.GrammarSegment == GrammarSegment.CurlyBraceOpen) + { + SetParsingContext(ParsingContext.InDeclaration); + return true; + } + + return false; + } + #endregion + + #region Keyframes + private bool ParseKeyframesName(Block token) + { + //SetParsingContext(ParsingContext.BeforeKeyframesData); + + if (token.GrammarSegment == GrammarSegment.Ident) + { + CastRuleSet().Identifier = ((SymbolBlock)token).Value; + return true; + } + + if (token.GrammarSegment == GrammarSegment.CurlyBraceOpen) + { + SetParsingContext(ParsingContext.KeyframesData); + return true; + } + + return false; + } + + private bool ParsePreKeyframesData(Block token) + { + if (token.GrammarSegment != GrammarSegment.CurlyBraceOpen) + { + return false; + } + + SetParsingContext(ParsingContext.BeforeKeyframesData); + return true; + } + + private bool ParseKeyframesData(Block token) + { + if (token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + SetParsingContext(ParsingContext.DataBlock); + return FinalizeRule(); + } + + _buffer = new StringBuilder(); + + return ParseKeyframeText(token); + } + + private bool ParseKeyframeText(Block token) + { + if (token.GrammarSegment == GrammarSegment.CurlyBraceOpen) + { + SetParsingContext(ParsingContext.InDeclaration); + return true; + } + + if (token.GrammarSegment == GrammarSegment.CurlyBracketClose) + { + ParseKeyframesData(token); + + return false; + } + + var frame = new KeyframeRule + { + Value = token.ToString() + }; + + + CastRuleSet().Declarations.Add(frame); + _activeRuleSets.Push(frame); + + return true; + } + #endregion + + #region Page + + private bool ParsePageSelector(Block token) + { + if (token.GrammarSegment == GrammarSegment.Colon || token.GrammarSegment == GrammarSegment.Whitespace) + { + return true; + } + + if (token.GrammarSegment == GrammarSegment.Ident) + { + CastRuleSet().Selector = new SimpleSelector(token.ToString()); + return true; + } + + if (token.GrammarSegment == GrammarSegment.CurlyBraceOpen) + { + SetParsingContext(ParsingContext.InDeclaration); + return true; + } + + return false; + } + + #endregion + + #region Document + private bool ParsePreDocumentFunction(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.Url: + CastRuleSet().Conditions.Add(new KeyValuePair(DocumentFunction.Url, ((StringBlock)token).Value)); + break; + + case GrammarSegment.UrlPrefix: + CastRuleSet().Conditions.Add(new KeyValuePair(DocumentFunction.UrlPrefix, ((StringBlock)token).Value)); + break; + + case GrammarSegment.Domain: + CastRuleSet().Conditions.Add(new KeyValuePair(DocumentFunction.Domain, ((StringBlock)token).Value)); + break; + + case GrammarSegment.Function: + if (string.Compare(((SymbolBlock)token).Value, "regexp", StringComparison.OrdinalIgnoreCase) == 0) + { + SetParsingContext(ParsingContext.InDocumentFunction); + return true; + } + SetParsingContext(ParsingContext.AfterDocumentFunction); + return false; + + default: + SetParsingContext(ParsingContext.DataBlock); + return false; + } + + SetParsingContext(ParsingContext.BetweenDocumentFunctions); + return true; + } + + private bool ParseDocumentFunction(Block token) + { + SetParsingContext(ParsingContext.AfterDocumentFunction); + + if (token.GrammarSegment != GrammarSegment.String) return false; + CastRuleSet().Conditions.Add(new KeyValuePair(DocumentFunction.RegExp, ((StringBlock)token).Value)); + return true; + } + + private bool ParsePostDocumentFunction(Block token) + { + SetParsingContext(ParsingContext.BetweenDocumentFunctions); + return token.GrammarSegment == GrammarSegment.ParenClose; + } + + private bool ParseDocumentFunctions(Block token) + { + if (token.GrammarSegment == GrammarSegment.Comma) + { + SetParsingContext(ParsingContext.BeforeDocumentFunction); + return true; + } + + if (token.GrammarSegment == GrammarSegment.CurlyBraceOpen) + { + SetParsingContext(ParsingContext.DataBlock); + return true; + } + + SetParsingContext(ParsingContext.DataBlock); + return false; + } + #endregion + + #region Media + private bool ParseMediaList(Block token) + { + if (token.GrammarSegment == GrammarSegment.Semicolon) + { + FinalizeRule(); + SetParsingContext(ParsingContext.DataBlock); + return true; + } + + _buffer = new StringBuilder(); + SetParsingContext(ParsingContext.InMediaValue); + return ParseMediaValue(token); + } + + private bool ParseMediaValue(Block token) + { + switch (token.GrammarSegment) + { + case GrammarSegment.CurlyBraceOpen: + case GrammarSegment.Semicolon: + { + var container = CurrentRule as ISupportsMedia; + var medium = _buffer.ToString(); + + if (container != null) + { + container.Media.AppendMedium(medium); + } + + if (CurrentRule is ImportRule) + { + return ParsePostInstruction(token); + } + + SetParsingContext(ParsingContext.DataBlock); + return token.GrammarSegment == GrammarSegment.CurlyBraceOpen; + } + case GrammarSegment.Comma: + { + var container = CurrentRule as ISupportsMedia; + + if (container != null) + { + container.Media.AppendMedium(_buffer.ToString()); + } + + _buffer.Length = 0; + return true; + } + case GrammarSegment.Whitespace: + { + _buffer.Append(' '); + return true; + } + default: + { + _buffer.Append(token); + return true; + } + } + } + #endregion + } +} diff --git a/Source/External/ExCSS/Parser.cs b/Source/External/ExCSS/Parser.cs new file mode 100644 index 0000000..b44db37 --- /dev/null +++ b/Source/External/ExCSS/Parser.cs @@ -0,0 +1,252 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ExCSS.Model; +using ExCSS.Model.TextBlocks; + +// ReSharper disable once CheckNamespace +using System; + + +namespace ExCSS +{ + internal delegate void ParseErrorEventHandler(StylesheetParseError e); + + public sealed partial class Parser + { + private SelectorFactory _selectorFactory; + private Stack _functionBuffers; + private Lexer _lexer; + private bool _isFraction; + private Property _property; + private TermList _terms = new TermList(); + private StyleSheet _styleSheet; + private Stack _activeRuleSets; + private StringBuilder _buffer; + private ParsingContext _parsingContext; + + public StyleSheet Parse(string css) + { + _selectorFactory = new SelectorFactory(); + _functionBuffers = new Stack(); + _styleSheet = new StyleSheet(); + _activeRuleSets = new Stack(); + _lexer = new Lexer(new StylesheetReader(css)) { ErrorHandler = HandleLexerError }; + + SetParsingContext(ParsingContext.DataBlock); + + var tokens = _lexer.Tokens; + + foreach (var token in tokens) + { + if (ParseTokenBlock(token)) + { + continue; + } + + HandleLexerError(ParserError.UnexpectedLineBreak, ErrorMessages.Default); + } + + if (_property != null) + { + ParseTokenBlock(SpecialCharacter.Semicolon); + } + + return _styleSheet; + } + + internal static BaseSelector ParseSelector(string selector) + { + var tokenizer = new Lexer(new StylesheetReader(selector)); + var tokens = tokenizer.Tokens; + var selctor = new SelectorFactory(); + + foreach (var token in tokens) + { + selctor.Apply(token); + } + + var result = selctor.GetSelector(); + + return result; + } + + internal static RuleSet ParseRule(string css) + { + var parser = new Parser(); + + + var styleSheet = parser.Parse(css); + + return styleSheet.Rules.Count > 0 + ? styleSheet.Rules[0] + : null; + } + + internal static StyleDeclaration ParseDeclarations(string declarations, bool quirksMode = false) + { + var decl = new StyleDeclaration(); + AppendDeclarations(decl, declarations, quirksMode); + + return decl; + } + + internal static void AppendDeclarations(StyleDeclaration list, string css, bool quirksMode = false) + { + var parser = new Parser();//(new StyleSheet(), new StylesheetReader(declarations)) + + + parser.AddRuleSet(list.ParentRule ?? new StyleRule(list)); + + parser._parsingContext = ParsingContext.InDeclaration; + parser.Parse(css); + } + + internal void HandleLexerError(ParserError error, string message) + { + _styleSheet.Errors.Add(new StylesheetParseError(error, message, _lexer.Stream.Line, _lexer.Stream.Column)); + } + + private bool AddTerm(Term value) + { + if (_isFraction) + { + if (_terms.Length > 0) + { + value = new PrimitiveTerm(UnitType.Unknown, _terms[0] + "/" + value); + _terms = new TermList(); + } + + _isFraction = false; + } + + if (_functionBuffers.Count > 0) + { + _functionBuffers.Peek().TermList.Add(value); + } + else if (_terms.Length == 0) + { + _terms.AddTerm(value); + } + else if (_parsingContext == ParsingContext.InSingleValue) + { + _terms.AddTerm(value); + } + else + { + return false; + } + + return true; + } + + private void FinalizeProperty() + { + if (_property != null) + { + if (_terms.Length > 1) + { + _property.Term = _terms; + } + else + { + _property.Term = _terms[0]; + } + } + + _terms = new TermList(); + _property = null; + } + + private bool FinalizeRule() + { + if (_activeRuleSets.Count <= 0) + { + return false; + } + + _activeRuleSets.Pop(); + return true; + } + + private void AddRuleSet(RuleSet rule) + { + //rule.ParentStyleSheet = _styleSheet; + + if (_activeRuleSets.Count > 0) + { + var container = _activeRuleSets.Peek() as ISupportsRuleSets; + + if (container != null) + { + container.RuleSets.Add(rule); + } + } + else + { + _styleSheet.Rules.Add(rule); + } + + _activeRuleSets.Push(rule); + } + + private void AddProperty(Property property) + { + _property = property; + var rule = CurrentRule as ISupportsDeclarations; + + if (rule != null) + { + rule.Declarations.Add(property); + } + } + + private T CastRuleSet() where T : RuleSet + { + if (_activeRuleSets.Count > 0) + { + return _activeRuleSets.Peek() as T; + } + + return default(T); + } + + private void SetParsingContext(ParsingContext newState) + { + switch (newState) + { + case ParsingContext.InSelector: + _lexer.IgnoreComments = true; + _lexer.IgnoreWhitespace = false; + _selectorFactory.ResetFactory(); + break; + + case ParsingContext.InHexValue: + case ParsingContext.InUnknown: + case ParsingContext.InCondition: + case ParsingContext.InSingleValue: + case ParsingContext.InMediaValue: + _lexer.IgnoreComments = true; + _lexer.IgnoreWhitespace = false; + break; + + default: + _lexer.IgnoreComments = true; + _lexer.IgnoreWhitespace = true; + break; + } + + _parsingContext = newState; + } + + internal RuleSet CurrentRule + { + get + { + return _activeRuleSets.Count > 0 + ? _activeRuleSets.Peek() + : null; + } + } + } +} diff --git a/Source/External/ExCSS/Parser.generated.cs b/Source/External/ExCSS/Parser.generated.cs new file mode 100644 index 0000000..df0667b --- /dev/null +++ b/Source/External/ExCSS/Parser.generated.cs @@ -0,0 +1,2791 @@ + +/* #line 1 "Parser.rl" */ +using System; +using ExCSS.Model; + +namespace ExCSS +{ + public class Parser + { + private string _css; + private int _currentPosition; + private int p = 0; + private StylesheetContext _context; + + +/* #line 17 "Parser.rl" */ + + + private string GetCssFragment() { + return _css.Substring(_currentPosition, p - _currentPosition); + } + + private void BeginToken(TokenType tokenType){ + _currentPosition = p; + _context.BeginToken(tokenType); + } + + private void EndToken(TokenType tokenType){ + _context.EndToken(tokenType, GetCssFragment()); + } + + #region Generated Scanner + Parser + public void Parse(string value, StylesheetContext context) + { + _css = value; + _context = context; + + char[] data = value.ToCharArray(); + int cs; + int eof = data.Length; + + int pe = eof; + + +/* #line 2 "../ExCSS/Parser.generated.cs" */ + { + cs = selector_start; + } + +/* #line 45 "Parser.rl" */ + +/* #line 5 "../ExCSS/Parser.generated.cs" */ + { + sbyte _klen; + short _trans; + short _keys; + + if ( p == pe ) + goto _test_eof; + if ( cs == 0 ) + goto _out; +_resume: + _keys = _selector_key_offsets[cs]; + _trans = (short)_selector_index_offsets[cs]; + + _klen = _selector_single_lengths[cs]; + if ( _klen > 0 ) { + short _lower = _keys; + short _mid; + short _upper = (short) (_keys + _klen - 1); + while (true) { + if ( _upper < _lower ) + break; + + _mid = (short) (_lower + ((_upper-_lower) >> 1)); + if ( data[p] < _selector_trans_keys[_mid] ) + _upper = (short) (_mid - 1); + else if ( data[p] > _selector_trans_keys[_mid] ) + _lower = (short) (_mid + 1); + else { + _trans += (short) (_mid - _keys); + goto _match; + } + } + _keys += (short) _klen; + _trans += (short) _klen; + } + + _klen = _selector_range_lengths[cs]; + if ( _klen > 0 ) { + short _lower = _keys; + short _mid; + short _upper = (short) (_keys + (_klen<<1) - 2); + while (true) { + if ( _upper < _lower ) + break; + + _mid = (short) (_lower + (((_upper-_lower) >> 1) & ~1)); + if ( data[p] < _selector_trans_keys[_mid] ) + _upper = (short) (_mid - 2); + else if ( data[p] > _selector_trans_keys[_mid+1] ) + _lower = (short) (_mid + 2); + else { + _trans += (short)((_mid - _keys)>>1); + goto _match; + } + } + _trans += (short) _klen; + } + +_match: + cs = _selector_trans_targs[_trans]; + + if ( cs == 0 ) + goto _out; + if ( ++p != pe ) + goto _resume; + _test_eof: {} + _out: {} + } + +/* #line 46 "Parser.rl" */ + } + + +/* #line 73 "../ExCSS/Parser.generated.cs" */ +static readonly short[] _selector_key_offsets = new short [] { + 0, 0, 12, 16, 27, 31, 49, 50, + 72, 74, 76, 78, 80, 82, 84, 86, + 88, 90, 95, 96, 97, 98, 99, 100, + 101, 103, 127, 135, 156, 160, 180, 195, + 215, 237, 240, 243, 246, 249, 252, 255, + 258, 261, 264, 270, 283, 288, 300, 305, + 323, 325, 347, 350, 353, 356, 359, 362, + 365, 368, 371, 374, 380, 393, 398, 410, + 415, 433, 436, 460, 469, 490, 495, 515, + 529, 549, 571, 575, 579, 583, 587, 591, + 595, 599, 603, 607, 614, 628, 634, 647, + 653, 671, 675, 699, 709, 730, 736, 740, + 763, 776, 797, 820, 841, 862, 882, 894, + 906, 924, 937, 950, 963, 976, 989, 1001, + 1004, 1007, 1010, 1017, 1020, 1023, 1045, 1047, + 1069, 1070, 1073, 1076, 1079, 1082, 1085, 1088, + 1091, 1094, 1097, 1103, 1116, 1121, 1133, 1138, + 1156, 1161, 1164, 1188, 1197, 1218, 1223, 1243, + 1258, 1279, 1302, 1305, 1329, 1338, 1359, 1362, + 1385, 1399, 1421, 1442, 1463, 1483, 1495, 1507, + 1525, 1538, 1551, 1564, 1577, 1590, 1602, 1604, + 1606, 1608, 1614, 1616, 1618, 1620, 1642, 1643, + 1646, 1649, 1652, 1655, 1658, 1661, 1664, 1667, + 1670, 1676, 1689, 1694, 1706, 1711, 1729, 1732, + 1756, 1765, 1786, 1791, 1811, 1826, 1846, 1868, + 1872, 1876, 1880, 1884, 1888, 1892, 1896, 1900, + 1904, 1911, 1925, 1931, 1944, 1950, 1968, 1972, + 1996, 2006, 2027, 2033, 2037, 2060, 2074, 2095, + 2118, 2139, 2160, 2180, 2192, 2204, 2222, 2235, + 2248, 2261, 2274, 2287, 2299, 2302, 2305, 2308, + 2315, 2318, 2321, 2343, 2345, 2349, 2353, 2357, + 2361, 2365, 2369, 2373, 2377, 2381, 2388, 2402, + 2408, 2421, 2427, 2445, 2451, 2455, 2479, 2489, + 2510, 2516, 2536, 2551, 2572, 2595, 2599, 2603, + 2607, 2611, 2615, 2619, 2623, 2627, 2631, 2638, + 2652, 2658, 2671, 2677, 2695, 2699, 2723, 2733, + 2754, 2774, 2788, 2810, 2814, 2837, 2858, 2879, + 2899, 2911, 2923, 2941, 2954, 2967, 2980, 2993, + 3006, 3018, 3021, 3024, 3027, 3034, 3037, 3040, + 3051, 3054, 3057, 3060, 3063, 3066, 3086, 3091, + 3111, 3132, 3153, 3174, 3193, 3214, 3221, 3228, + 3235, 3242, 3245, 3248, 3269, 3287, 3303, 3327, + 3340, 3353, 3359, 3377, 3392, 3416, 3419, 3442, + 3463, 3484, 3504, 3516, 3528, 3546, 3559, 3572, + 3585, 3598, 3611, 3623, 3625, 3627, 3629, 3635, + 3637, 3639, 3649, 3651, 3653, 3655, 3657, 3659, + 3679, 3683, 3703, 3724, 3736, 3758, 3772, 3796, + 3798, 3821, 3842, 3863, 3883, 3895, 3907, 3925, + 3938, 3951, 3964, 3977, 3990, 4002, 4003, 4004, + 4005, 4010, 4011, 4012, 4021, 4041, 4044, 4064, + 4085, 4098, 4111, 4124, 4126, 4128, 4130, 4132, + 4134, 4136, 4142, 4144, 4146, 4168, 4183, 4207, + 4210, 4233, 4254, 4275, 4295, 4307, 4319, 4337, + 4350, 4363, 4376, 4389, 4402, 4414, 4416, 4418, + 4420, 4426, 4428, 4430, 4440, 4442, 4444, 4446, + 4448, 4450, 4470, 4474, 4494, 4515, 4529, 4543, + 4557, 4560, 4563, 4566, 4569, 4572, 4575, 4582, + 4585, 4588, 4603, 4618, 4630, 4644, 4658, 4679, + 4702, 4723, 4744, 4764, 4776, 4788, 4806, 4819, + 4832, 4845, 4858, 4871, 4883, 4886, 4889, 4892, + 4899, 4902, 4905, 4916, 4919, 4922, 4925, 4928, + 4931, 4951, 4956, 4976, 4997, 5019, 5023, 5046, + 5067, 5088, 5107, 5128, 5135, 5142, 5149, 5156, + 5159, 5162, 5183, 5201, 5217, 5241, 5254, 5267, + 5273, 5291, 5306, 5330, 5333, 5356, 5377, 5398, + 5418, 5430, 5442, 5460, 5473, 5486, 5499, 5512, + 5525, 5537, 5539, 5541, 5543, 5549, 5551, 5553, + 5563, 5565, 5567, 5569, 5571, 5573, 5593, 5597, + 5617, 5638, 5650, 5662, 5667, 5685, 5696, 5708, + 5720, 5732, 5733, 5734, 5735, 5736, 5737, 5738, + 5743, 5744, 5745, 5758, 5771, 5784, 5786, 5788, + 5790, 5792, 5794, 5796, 5802, 5804, 5806, 5819, + 5825, 5843, 5855, 5868, 5881, 5894, 5896, 5898, + 5900, 5902, 5904, 5906, 5912, 5914, 5916, 5930, + 5944, 5958, 5961, 5964, 5967, 5970, 5973, 5976, + 5983, 5986, 5989, 6004, 6019, 6031, 6045, 6059, + 6070, 6073, 6076, 6079, 6082, 6085, 6105, 6110, + 6130, 6151, 6173, 6194, 6215, 6234, 6255, 6262, + 6269, 6276, 6283, 6286, 6289, 6310, 6328, 6344, + 6368, 6381, 6403, 6416, 6422, 6440, 6455, 6479, + 6489, 6491, 6493, 6495, 6497, 6499, 6519, 6523, + 6543, 6564, 6576, 6589, 6602, 6615, 6617, 6619, + 6621, 6623, 6625, 6627, 6633, 6635, 6637, 6651, + 6665, 6679, 6682, 6685, 6688, 6691, 6694, 6697, + 6704, 6707, 6710, 6725, 6740, 6752, 6766, 6780, + 6801, 6824, 6845, 6868, 6890, 6911, 6932, 6951, + 6972, 6978, 6984, 6990, 6996, 6998, 7000, 7021, + 7035, 7049, 7060, 7073, 7086, 7107, 7128, 7147, + 7168, 7174, 7180, 7186, 7192, 7194, 7196, 7217, + 7238, 7261, 7283, 7304, 7325, 7344, 7365, 7371, + 7377, 7383, 7389, 7391, 7393, 7414, 7428, 7442, + 7453, 7466, 7479, 7490, 7493, 7496, 7499, 7502, + 7505, 7525, 7530, 7550, 7571, 7593, 7614, 7635, + 7654, 7675, 7682, 7689, 7696, 7703, 7706, 7709, + 7730, 7748, 7764, 7788, 7801, 7823, 7845, 7859, + 7873, 7887, 7890, 7893, 7896, 7899, 7902, 7905, + 7912, 7915, 7918, 7933, 7948, 7960, 7974, 7988, + 8010, 8031, 8052, 8071, 8092, 8098, 8104, 8110, + 8116, 8118, 8120, 8141, 8155, 8169, 8180, 8193, + 8206, 8220, 8234, 8245, 8258, 8271, 8292, 8315, + 8337, 8358, 8379, 8398, 8419, 8424, 8429, 8434, + 8439, 8440, 8441, 8462, 8475, 8488, 8498, 8510, + 8522, 8523, 8529, 8550, 8573, 8581, 8602, 8623, + 8646, 8653, 8674, 8697, 8718, 8741, 8748, 8762, + 8771, 8792, 8815, 8823, 8844, 8865, 8888, 8895, + 8909, 8918, 8939, 8962, 8970, 8991, 9012, 9035, + 9042, 9056, 9065, 9086, 9099, 9107, 9128, 9149, + 9162, 9170, 9191, 9214, 9222, 9243, 9257, 9266, + 9287, 9300, 9308, 9321, 9329, 9350, 9362 +}; + +static readonly char[] _selector_trans_keys = new char [] { + '\u0020', '\u002d', '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u0031', '\u0037', '\u005c', '\u0000', '\u0031', + '\u0020', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u003a', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0022', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', + '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0049', '\u0069', '\u004d', '\u006d', '\u0050', '\u0070', '\u004f', '\u006f', + '\u0052', '\u0072', '\u0054', '\u0074', '\u0041', '\u0061', '\u004e', '\u006e', + '\u0054', '\u0074', '\u0020', '\u003b', '\u007d', '\u0009', '\u000d', '\u002d', + '\u003e', '\u0021', '\u002d', '\u002d', '\u0027', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0037', + '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0029', '\u0009', '\u000d', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u000a', '\u0022', '\u0027', '\u0028', + '\u005c', '\u0075', '\u007d', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', + '\u0046', '\u0061', '\u0066', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0049', '\u0069', + '\u0022', '\u004d', '\u006d', '\u0022', '\u0050', '\u0070', '\u0022', '\u004f', + '\u006f', '\u0022', '\u0052', '\u0072', '\u0022', '\u0054', '\u0074', '\u0022', + '\u0041', '\u0061', '\u0022', '\u004e', '\u006e', '\u0022', '\u0054', '\u0074', + '\u0020', '\u0022', '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', '\u0022', + '\u002d', '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u0031', '\u0022', '\u0037', '\u005c', '\u0000', '\u0031', + '\u0020', '\u0022', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u003a', '\u0009', + '\u000d', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', + '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0020', '\u0021', '\u0022', + '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0027', '\u0049', '\u0069', '\u0027', '\u004d', + '\u006d', '\u0027', '\u0050', '\u0070', '\u0027', '\u004f', '\u006f', '\u0027', + '\u0052', '\u0072', '\u0027', '\u0054', '\u0074', '\u0027', '\u0041', '\u0061', + '\u0027', '\u004e', '\u006e', '\u0027', '\u0054', '\u0074', '\u0020', '\u0027', + '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', '\u0027', '\u002d', '\u0037', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u0031', '\u0027', '\u0037', '\u005c', '\u0000', '\u0031', '\u0020', '\u0027', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0027', '\u003a', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0027', '\u0037', '\u005c', '\u0000', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0027', '\u0029', '\u0009', '\u000d', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u000a', '\u0022', '\u0028', '\u005c', '\u0075', + '\u007d', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', + '\u0066', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0049', '\u0069', '\u0022', + '\u0027', '\u004d', '\u006d', '\u0022', '\u0027', '\u0050', '\u0070', '\u0022', + '\u0027', '\u004f', '\u006f', '\u0022', '\u0027', '\u0052', '\u0072', '\u0022', + '\u0027', '\u0054', '\u0074', '\u0022', '\u0027', '\u0041', '\u0061', '\u0022', + '\u0027', '\u004e', '\u006e', '\u0022', '\u0027', '\u0054', '\u0074', '\u0020', + '\u0022', '\u0027', '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', '\u0022', + '\u0027', '\u002d', '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u0031', '\u0022', '\u0027', '\u0037', '\u005c', + '\u0000', '\u0031', '\u0020', '\u0022', '\u0027', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', + '\u0022', '\u0027', '\u003a', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', + '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', + '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0037', '\u005c', '\u0000', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0029', '\u0009', '\u000d', + '\u0022', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u000a', '\u0028', '\u005c', '\u0075', '\u007d', + '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0072', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0030', '\u0039', + '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u0031', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u002c', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u0036', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', + '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u000d', '\u0022', '\u0027', '\u000a', '\u0022', '\u0027', '\u0022', + '\u0027', '\u007c', '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', '\u000c', + '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', '\u0020', + '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0020', + '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0022', '\u0049', + '\u0069', '\u0022', '\u004d', '\u006d', '\u0022', '\u0050', '\u0070', '\u0022', + '\u004f', '\u006f', '\u0022', '\u0052', '\u0072', '\u0022', '\u0054', '\u0074', + '\u0022', '\u0041', '\u0061', '\u0022', '\u004e', '\u006e', '\u0022', '\u0054', + '\u0074', '\u0020', '\u0022', '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', + '\u0022', '\u002d', '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u0031', '\u0022', '\u0037', '\u005c', '\u0000', + '\u0031', '\u0020', '\u0022', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u003a', + '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', + '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u0029', '\u0009', + '\u000d', '\u0022', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0037', '\u005c', '\u0000', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0022', '\u0029', '\u0009', '\u000d', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u000a', '\u0022', '\u0027', '\u0028', '\u005c', + '\u0075', '\u007d', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', + '\u0061', '\u0066', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', + '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0022', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0022', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', + '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', + '\u0039', '\u000a', '\u0027', '\u0028', '\u005c', '\u0075', '\u007d', '\u000c', + '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0072', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0030', + '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', '\u0029', + '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u0031', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', + '\u0022', '\u0029', '\u002c', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u0036', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', + '\u0028', '\u0020', '\u0022', '\u0029', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u000d', '\u0022', '\u000a', '\u0022', '\u0022', '\u007c', + '\u0020', '\u0022', '\u0009', '\u000a', '\u000c', '\u000d', '\u0022', '\u0029', + '\u0022', '\u003f', '\u0022', '\u0027', '\u0020', '\u0021', '\u0022', '\u0027', + '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0027', '\u0027', '\u0049', '\u0069', '\u0027', '\u004d', + '\u006d', '\u0027', '\u0050', '\u0070', '\u0027', '\u004f', '\u006f', '\u0027', + '\u0052', '\u0072', '\u0027', '\u0054', '\u0074', '\u0027', '\u0041', '\u0061', + '\u0027', '\u004e', '\u006e', '\u0027', '\u0054', '\u0074', '\u0020', '\u0027', + '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', '\u0027', '\u002d', '\u0037', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u0031', '\u0027', '\u0037', '\u005c', '\u0000', '\u0031', '\u0020', '\u0027', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0027', '\u003a', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0027', '\u0037', '\u005c', '\u0000', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0027', '\u0029', '\u0009', '\u000d', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u000a', '\u0022', '\u0027', '\u0028', '\u005c', + '\u0075', '\u007d', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', + '\u0061', '\u0066', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0049', '\u0069', + '\u0022', '\u0027', '\u004d', '\u006d', '\u0022', '\u0027', '\u0050', '\u0070', + '\u0022', '\u0027', '\u004f', '\u006f', '\u0022', '\u0027', '\u0052', '\u0072', + '\u0022', '\u0027', '\u0054', '\u0074', '\u0022', '\u0027', '\u0041', '\u0061', + '\u0022', '\u0027', '\u004e', '\u006e', '\u0022', '\u0027', '\u0054', '\u0074', + '\u0020', '\u0022', '\u0027', '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0027', '\u002d', '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u0031', '\u0022', '\u0027', '\u0037', + '\u005c', '\u0000', '\u0031', '\u0020', '\u0022', '\u0027', '\u003a', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', + '\u0020', '\u0022', '\u0027', '\u003a', '\u0009', '\u000d', '\u0020', '\u0022', + '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0022', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0037', '\u005c', + '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0029', '\u0009', + '\u000d', '\u0022', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0031', '\u0032', '\u0039', '\u000a', '\u0027', '\u0028', '\u005c', + '\u0075', '\u007d', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', + '\u0061', '\u0066', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0072', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u0031', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u002c', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', + '\u0028', '\u0029', '\u0036', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u000d', '\u0022', '\u0027', '\u000a', '\u0022', + '\u0027', '\u0022', '\u0027', '\u007c', '\u0020', '\u0022', '\u0027', '\u0009', + '\u000a', '\u000c', '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', + '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', + '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', + '\u0027', '\u0022', '\u0027', '\u0049', '\u0069', '\u0022', '\u0027', '\u004d', + '\u006d', '\u0022', '\u0027', '\u0050', '\u0070', '\u0022', '\u0027', '\u004f', + '\u006f', '\u0022', '\u0027', '\u0052', '\u0072', '\u0022', '\u0027', '\u0054', + '\u0074', '\u0022', '\u0027', '\u0041', '\u0061', '\u0022', '\u0027', '\u004e', + '\u006e', '\u0022', '\u0027', '\u0054', '\u0074', '\u0020', '\u0022', '\u0027', + '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u002d', + '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u0031', '\u0022', '\u0027', '\u0037', '\u005c', '\u0000', '\u0031', + '\u0020', '\u0022', '\u0027', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', + '\u003a', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', + '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u0027', + '\u0029', '\u0009', '\u000d', '\u0022', '\u0027', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', + '\u0027', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', + '\u0027', '\u0029', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u000a', '\u0022', '\u0027', '\u0028', '\u005c', '\u0075', '\u007d', '\u000c', + '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0049', '\u0069', '\u0022', + '\u0027', '\u004d', '\u006d', '\u0022', '\u0027', '\u0050', '\u0070', '\u0022', + '\u0027', '\u004f', '\u006f', '\u0022', '\u0027', '\u0052', '\u0072', '\u0022', + '\u0027', '\u0054', '\u0074', '\u0022', '\u0027', '\u0041', '\u0061', '\u0022', + '\u0027', '\u004e', '\u006e', '\u0022', '\u0027', '\u0054', '\u0074', '\u0020', + '\u0022', '\u0027', '\u003b', '\u007d', '\u0009', '\u000d', '\u0020', '\u0022', + '\u0027', '\u002d', '\u0037', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u0031', '\u0022', '\u0027', '\u0037', '\u005c', + '\u0000', '\u0031', '\u0020', '\u0022', '\u0027', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', + '\u0022', '\u0027', '\u003a', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', + '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', + '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u0037', '\u005c', '\u0000', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u000a', '\u0022', + '\u0028', '\u005c', '\u0075', '\u007d', '\u000c', '\u000d', '\u0030', '\u0039', + '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0022', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0072', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0030', + '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', '\u0027', + '\u0028', '\u0029', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u0031', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0027', '\u0028', '\u0029', '\u002c', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u0036', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u000d', '\u0022', '\u0027', '\u000a', '\u0022', '\u0027', + '\u0022', '\u0027', '\u007c', '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', + '\u000c', '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', + '\u0022', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u003e', '\u0022', '\u0027', + '\u002d', '\u0021', '\u0022', '\u0027', '\u0022', '\u0027', '\u002d', '\u0022', + '\u0027', '\u002d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0022', '\u0027', + '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u0031', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', + '\u0027', '\u002b', '\u002d', '\u0036', '\u0037', '\u005c', '\u0075', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u000d', '\u0020', + '\u0022', '\u0027', '\u0029', '\u0009', '\u000c', '\u000a', '\u0020', '\u0022', + '\u0027', '\u0029', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u0029', + '\u007c', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', + '\u000c', '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', + '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0022', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u000a', + '\u0022', '\u0027', '\u003a', '\u005c', '\u000c', '\u000d', '\u0030', '\u0039', + '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0027', '\u0029', '\u003a', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0027', '\u0029', '\u003a', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0072', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u006c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0030', '\u0039', '\u0041', '\u0046', + '\u0061', '\u0066', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0027', '\u0028', '\u0029', '\u0031', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u002c', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u0036', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u000d', + '\u0027', '\u000a', '\u0027', '\u0027', '\u007c', '\u0020', '\u0027', '\u0009', + '\u000a', '\u000c', '\u000d', '\u0027', '\u0029', '\u0027', '\u003f', '\u0027', + '\u002d', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0027', '\u003e', '\u0027', '\u002d', '\u0021', '\u0027', '\u0027', + '\u002d', '\u0027', '\u002d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0027', + '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u000a', '\u0027', '\u003a', '\u005c', + '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', + '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u002d', + '\u0037', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0072', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0030', + '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', '\u0029', + '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u0031', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', + '\u0022', '\u0029', '\u002c', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u0036', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', + '\u0028', '\u0020', '\u0022', '\u0029', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u000d', '\u000a', '\u007c', '\u0020', '\u0009', '\u000a', + '\u000c', '\u000d', '\u0029', '\u003f', '\u002d', '\u0037', '\u005c', '\u0000', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0027', '\u003a', + '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0027', '\u0031', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', + '\u0027', '\u002c', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002b', '\u002e', '\u002f', '\u0027', '\u0036', '\u0027', '\u007d', + '\u0027', '\u0028', '\u000d', '\u0027', '\u000a', '\u0027', '\u0027', '\u007c', + '\u0020', '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', '\u0027', '\u0029', + '\u0027', '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', + '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0022', '\u002d', '\u0037', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', + '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0072', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u006c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0029', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', + '\u0022', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0027', '\u0028', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', + '\u0066', '\u0020', '\u0022', '\u0029', '\u005c', '\u007b', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', + '\u0029', '\u0031', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', '\u002c', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', + '\u0020', '\u0022', '\u0029', '\u0036', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0027', '\u0028', '\u0020', '\u0022', '\u0029', + '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0027', '\u0028', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u000d', '\u0022', + '\u000a', '\u0022', '\u0022', '\u007c', '\u0020', '\u0022', '\u0009', '\u000a', + '\u000c', '\u000d', '\u0022', '\u0029', '\u0022', '\u003f', '\u0022', '\u002d', + '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0022', '\u003e', '\u0022', '\u002d', '\u0021', '\u0022', '\u0022', '\u002d', + '\u0022', '\u002d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0022', '\u002d', + '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u003e', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u003a', '\u005c', + '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0022', '\u0027', '\u0031', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', + '\u0022', '\u0027', '\u002c', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', '\u0022', '\u0027', '\u0036', + '\u0022', '\u0027', '\u007d', '\u0022', '\u0027', '\u0028', '\u000d', '\u0022', + '\u0027', '\u000a', '\u0022', '\u0027', '\u0022', '\u0027', '\u007c', '\u0020', + '\u0022', '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', '\u0022', '\u0027', + '\u0029', '\u0022', '\u0027', '\u003f', '\u0020', '\u0022', '\u0027', '\u003a', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', '\u002d', '\u0037', + '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u0031', '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0022', + '\u0027', '\u003a', '\u003e', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', '\u0027', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0072', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u0031', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u002c', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', + '\u0028', '\u0029', '\u0036', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', + '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u000d', '\u0022', '\u0027', '\u000a', '\u0022', + '\u0027', '\u0022', '\u0027', '\u007c', '\u0020', '\u0022', '\u0027', '\u0009', + '\u000a', '\u000c', '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', + '\u003f', '\u0022', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', '\u003e', '\u0022', + '\u0027', '\u002d', '\u0021', '\u0022', '\u0027', '\u0022', '\u0027', '\u002d', + '\u0022', '\u0027', '\u002d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0022', + '\u0027', '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0022', '\u0027', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u0031', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0036', '\u0037', '\u005c', + '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u000d', '\u0020', '\u0022', '\u0027', '\u0029', '\u0009', '\u000c', '\u000a', + '\u0020', '\u0022', '\u0027', '\u0029', '\u0009', '\u000d', '\u0020', '\u0022', + '\u0027', '\u0029', '\u007c', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', + '\u0009', '\u000a', '\u000c', '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', + '\u0027', '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0022', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', + '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u000a', '\u0022', '\u0027', '\u003a', '\u005c', '\u000c', '\u000d', + '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0027', + '\u0029', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0027', '\u0029', '\u003a', '\u0009', + '\u000d', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', + '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0020', '\u0027', '\u002d', '\u0037', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', + '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0027', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0072', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u006c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0030', '\u0039', + '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0022', '\u0027', '\u0028', + '\u0029', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u0031', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', + '\u0027', '\u0028', '\u0029', '\u002c', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', + '\u0036', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', + '\u0020', '\u0022', '\u0027', '\u0028', '\u0029', '\u005c', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u001f', '\u0020', '\u0022', '\u0027', + '\u0028', '\u0029', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u001f', '\u000d', '\u0027', '\u000a', '\u0027', '\u0027', '\u007c', '\u0020', + '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', '\u0027', '\u0029', '\u0027', + '\u003f', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0027', '\u003e', '\u0027', '\u002d', '\u0021', + '\u0027', '\u0027', '\u002d', '\u0027', '\u002d', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0027', '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u000a', '\u0027', + '\u003a', '\u005c', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', + '\u0061', '\u0066', '\u0020', '\u0029', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0029', + '\u003a', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', + '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u000a', '\u003a', '\u005c', + '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', + '\u0020', '\u003a', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0031', '\u003a', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', + '\u0020', '\u002c', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002b', '\u002e', '\u002f', '\u0036', '\u007d', '\u0028', '\u000d', + '\u000a', '\u007c', '\u0020', '\u0009', '\u000a', '\u000c', '\u000d', '\u0029', + '\u003f', '\u0020', '\u0027', '\u003a', '\u005c', '\u007b', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0027', + '\u0031', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0027', '\u002c', '\u003a', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', + '\u0027', '\u0036', '\u0027', '\u007d', '\u0027', '\u0028', '\u000d', '\u0027', + '\u000a', '\u0027', '\u0027', '\u007c', '\u0020', '\u0027', '\u0009', '\u000a', + '\u000c', '\u000d', '\u0027', '\u0029', '\u0027', '\u003f', '\u0020', '\u0022', + '\u0029', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0029', '\u003a', '\u0009', + '\u000d', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', + '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u000a', '\u0022', '\u003a', '\u005c', '\u000c', + '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', + '\u0022', '\u003a', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0031', '\u003a', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0022', '\u002c', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', '\u0022', '\u0036', + '\u0022', '\u007d', '\u0022', '\u0028', '\u000d', '\u0022', '\u000a', '\u0022', + '\u0022', '\u007c', '\u0020', '\u0022', '\u0009', '\u000a', '\u000c', '\u000d', + '\u0022', '\u0029', '\u0022', '\u003f', '\u0020', '\u0022', '\u0027', '\u003a', + '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', '\u0031', '\u003a', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', + '\u0020', '\u0022', '\u0027', '\u002c', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', '\u0022', '\u0027', + '\u0036', '\u0022', '\u0027', '\u007d', '\u0022', '\u0027', '\u0028', '\u000d', + '\u0022', '\u0027', '\u000a', '\u0022', '\u0027', '\u0022', '\u0027', '\u007c', + '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', '\u0022', + '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', '\u0020', '\u0022', '\u0027', + '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', '\u002d', + '\u0037', '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u0031', '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', + '\u0022', '\u0027', '\u003a', '\u003e', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', + '\u0027', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0022', '\u0027', '\u002d', '\u0037', '\u005c', + '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', '\u0027', + '\u003e', '\u0022', '\u0027', '\u002d', '\u0021', '\u0022', '\u0027', '\u0022', + '\u0027', '\u002d', '\u0022', '\u0027', '\u002d', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0022', '\u0027', '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u0031', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0022', '\u0027', '\u002b', '\u002d', '\u0036', '\u0037', '\u005c', '\u0075', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u000d', + '\u0020', '\u0022', '\u0027', '\u0029', '\u0009', '\u000c', '\u000a', '\u0020', + '\u0022', '\u0027', '\u0029', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', + '\u0029', '\u007c', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u0009', + '\u000a', '\u000c', '\u000d', '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', + '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', + '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0022', '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', + '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u000a', '\u0022', '\u0027', '\u003a', '\u005c', '\u000c', '\u000d', '\u0030', + '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', '\u0020', '\u0021', '\u0022', + '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u0029', '\u003a', '\u005c', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', + '\u0020', '\u0022', '\u0029', '\u003a', '\u0009', '\u000d', '\u0020', '\u0022', + '\u0027', '\u002b', '\u002d', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0022', '\u002d', '\u0037', '\u005c', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u002c', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0022', + '\u002d', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0022', '\u003e', '\u0022', '\u002d', '\u0021', '\u0022', '\u0022', + '\u002d', '\u0022', '\u002d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0022', + '\u002d', '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u003e', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u000a', '\u0022', '\u003a', '\u005c', + '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', '\u0066', + '\u0020', '\u0022', '\u003a', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0031', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0022', '\u002c', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', '\u0022', + '\u0036', '\u0022', '\u007d', '\u0022', '\u0028', '\u000d', '\u0022', '\u000a', + '\u0022', '\u0022', '\u007c', '\u0020', '\u0022', '\u0009', '\u000a', '\u000c', + '\u000d', '\u0022', '\u0029', '\u0022', '\u003f', '\u0020', '\u0022', '\u0027', + '\u003a', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', '\u0031', '\u003a', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0022', '\u0027', '\u002c', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', '\u0022', + '\u0027', '\u0036', '\u0022', '\u0027', '\u007d', '\u0022', '\u0027', '\u0028', + '\u000d', '\u0022', '\u0027', '\u000a', '\u0022', '\u0027', '\u0022', '\u0027', + '\u007c', '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', + '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', '\u0020', '\u0022', + '\u0027', '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', + '\u002d', '\u0037', '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u0031', '\u0020', '\u0022', '\u0027', '\u002d', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0020', '\u0022', '\u0027', '\u003a', '\u003e', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', + '\u0022', '\u0027', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u0029', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0029', '\u002b', '\u002c', + '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u0031', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u002b', + '\u002d', '\u0036', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u000d', '\u0020', '\u0027', '\u0029', + '\u0009', '\u000c', '\u000a', '\u0020', '\u0027', '\u0029', '\u0009', '\u000d', + '\u0020', '\u0027', '\u0029', '\u007c', '\u0009', '\u000d', '\u0020', '\u0027', + '\u0009', '\u000a', '\u000c', '\u000d', '\u0027', '\u0029', '\u0027', '\u003f', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0027', '\u003a', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0027', '\u002d', '\u0037', '\u003a', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u0031', '\u0020', '\u0027', '\u002d', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0027', '\u003a', '\u003e', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0021', '\u0027', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u0031', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0036', '\u0037', '\u005c', + '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u000d', '\u0020', '\u0022', '\u0029', '\u0009', '\u000c', '\u000a', '\u0020', + '\u0022', '\u0029', '\u0009', '\u000d', '\u0020', '\u0022', '\u0029', '\u007c', + '\u0009', '\u000d', '\u0020', '\u0022', '\u0009', '\u000a', '\u000c', '\u000d', + '\u0022', '\u0029', '\u0022', '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', '\u002b', + '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', + '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', + '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002e', '\u002f', '\u0031', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', + '\u002b', '\u002d', '\u0036', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u000d', '\u0020', '\u0022', + '\u0029', '\u0009', '\u000c', '\u000a', '\u0020', '\u0022', '\u0029', '\u0009', + '\u000d', '\u0020', '\u0022', '\u0029', '\u007c', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0009', '\u000a', '\u000c', '\u000d', '\u0022', '\u0029', '\u0022', + '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', + '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u002d', '\u0037', + '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u0031', '\u0020', '\u0022', '\u002d', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0022', '\u003a', + '\u003e', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0022', + '\u0027', '\u002d', '\u0037', '\u005c', '\u0000', '\u002f', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0022', '\u0027', '\u003e', '\u0022', '\u0027', '\u002d', + '\u0021', '\u0022', '\u0027', '\u0022', '\u0027', '\u002d', '\u0022', '\u0027', + '\u002d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0022', '\u0027', '\u002d', + '\u0049', '\u0069', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002d', '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u003e', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u0031', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', + '\u0036', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u000d', '\u0020', '\u0022', '\u0027', '\u0029', + '\u0009', '\u000c', '\u000a', '\u0020', '\u0022', '\u0027', '\u0029', '\u0009', + '\u000d', '\u0020', '\u0022', '\u0027', '\u0029', '\u007c', '\u0009', '\u000d', + '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', '\u0022', + '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', '\u0037', + '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u0027', '\u002d', + '\u0037', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u002b', '\u002d', '\u002e', '\u0037', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u002c', '\u002f', + '\u0030', '\u0031', '\u0032', '\u0039', '\u000a', '\u0022', '\u0027', '\u003a', + '\u005c', '\u000c', '\u000d', '\u0030', '\u0039', '\u0041', '\u0046', '\u0061', + '\u0066', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', + '\u002f', '\u0037', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u0027', + '\u003a', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', '\u0031', '\u003a', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0022', '\u0027', '\u002c', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002b', '\u002e', '\u002f', '\u0022', + '\u0027', '\u0036', '\u0022', '\u0027', '\u007d', '\u0022', '\u0027', '\u0028', + '\u000d', '\u0022', '\u0027', '\u000a', '\u0022', '\u0027', '\u0022', '\u0027', + '\u007c', '\u0020', '\u0022', '\u0027', '\u0009', '\u000a', '\u000c', '\u000d', + '\u0022', '\u0027', '\u0029', '\u0022', '\u0027', '\u003f', '\u0020', '\u0022', + '\u0027', '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u0027', + '\u002d', '\u0037', '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u0031', '\u0020', '\u0022', '\u0027', '\u002d', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0020', '\u0022', '\u0027', '\u003a', '\u003e', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', + '\u0022', '\u0027', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', '\u0025', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', + '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002e', '\u002f', '\u0031', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u002b', + '\u002d', '\u0036', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u000d', '\u0020', '\u0027', '\u0029', + '\u0009', '\u000c', '\u000a', '\u0020', '\u0027', '\u0029', '\u0009', '\u000d', + '\u0020', '\u0027', '\u0029', '\u007c', '\u0009', '\u000d', '\u0020', '\u0027', + '\u0009', '\u000a', '\u000c', '\u000d', '\u0027', '\u0029', '\u0027', '\u003f', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0027', '\u003a', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u0027', '\u002d', '\u0037', '\u003a', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u0031', '\u0020', '\u0027', '\u002d', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0027', '\u003a', '\u003e', + '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', + '\u002f', '\u0020', '\u0021', '\u0027', '\u003a', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', + '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0022', '\u002d', '\u0037', + '\u003a', '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u0031', '\u0020', '\u0022', '\u002d', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0022', '\u003a', + '\u003e', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u0020', '\u0021', '\u0022', '\u003a', '\u005c', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u0029', '\u002b', '\u002c', '\u002e', + '\u002f', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0029', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', '\u0022', '\u0025', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u0031', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u002b', '\u002d', + '\u0036', '\u0037', '\u005c', '\u0075', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002f', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0025', '\u0027', '\u0028', '\u002b', '\u002c', '\u002e', '\u002f', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002a', '\u0030', '\u0039', '\u000d', '\u0020', '\u0029', '\u0009', '\u000c', + '\u000a', '\u0020', '\u0029', '\u0009', '\u000d', '\u0020', '\u0029', '\u007c', + '\u0009', '\u000d', '\u0020', '\u0009', '\u000a', '\u000c', '\u000d', '\u0029', + '\u003f', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002e', '\u002f', '\u005c', '\u0075', '\u007b', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002a', '\u0030', '\u0039', '\u0020', '\u003a', + '\u003b', '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002c', '\u002e', '\u002f', '\u0020', '\u002d', '\u0037', '\u003a', '\u003b', + '\u005c', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u0031', + '\u0020', '\u002d', '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002f', '\u0020', '\u003a', '\u003e', '\u005c', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002c', '\u002e', '\u002f', '\u0020', '\u0021', + '\u003a', '\u005c', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002c', + '\u002e', '\u002f', '\u007b', '\u0020', '\u002d', '\u003c', '\u007b', '\u0009', + '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u003c', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u0027', + '\u002d', '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0027', + '\u002d', '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', + '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', + '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', + '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', + '\u002d', '\u002f', '\u0037', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', + '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u003c', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u002d', + '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u002d', + '\u003a', '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002f', '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', '\u003c', + '\u007b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', + '\u0037', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', + '\u0022', '\u0027', '\u002d', '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', + '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', + '\u002f', '\u0037', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', + '\u0020', '\u0027', '\u002d', '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', + '\u0022', '\u0027', '\u002d', '\u003a', '\u003c', '\u005c', '\u007b', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0022', '\u0027', + '\u002d', '\u003a', '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', '\u002b', + '\u002c', '\u002d', '\u002f', '\u0037', '\u003c', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0031', + '\u0032', '\u0039', '\u0020', '\u0022', '\u0027', '\u002d', '\u003c', '\u007b', + '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', + '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0021', '\u0022', '\u0027', + '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', '\u003c', '\u005c', '\u0075', + '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', + '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', '\u002d', '\u003c', '\u007b', + '\u0009', '\u000d', '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', '\u003c', + '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002f', + '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', '\u003c', '\u007b', '\u0009', + '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0027', + '\u002d', '\u003a', '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002f', '\u0020', '\u0027', '\u002d', '\u003a', '\u003c', + '\u007b', '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', + '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', + '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', + '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', + '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', + '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u0022', '\u002d', + '\u003a', '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002f', '\u0020', '\u0022', '\u002d', '\u003a', '\u003c', '\u007b', + '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0021', '\u0022', '\u0027', '\u002b', '\u002c', '\u002d', '\u002f', '\u0037', + '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002e', '\u0030', '\u0031', '\u0032', '\u0039', '\u0020', '\u0022', + '\u0027', '\u002d', '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', '\u0021', + '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', '\u002d', '\u002f', '\u003c', + '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002e', '\u0030', '\u0039', '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', + '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002f', '\u0020', '\u0022', '\u0027', '\u002d', '\u003a', '\u003c', '\u007b', + '\u0009', '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', + '\u002c', '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', + '\u0008', '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', + '\u0027', '\u002d', '\u003a', '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002f', '\u0020', '\u0027', '\u002d', '\u003a', + '\u003c', '\u007b', '\u0009', '\u000d', '\u0020', '\u0022', '\u002d', '\u003a', + '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', '\u000e', + '\u002f', '\u0020', '\u0022', '\u002d', '\u003a', '\u003c', '\u007b', '\u0009', + '\u000d', '\u0020', '\u0021', '\u0022', '\u0027', '\u0028', '\u002b', '\u002c', + '\u002d', '\u002f', '\u003c', '\u005c', '\u0075', '\u007d', '\u0000', '\u0008', + '\u0009', '\u000d', '\u000e', '\u002e', '\u0030', '\u0039', '\u0020', '\u002d', + '\u003a', '\u003c', '\u005c', '\u007b', '\u0000', '\u0008', '\u0009', '\u000d', + '\u000e', '\u002f', '\u0020', '\u002d', '\u003a', '\u003c', '\u007b', '\u0009', + '\u000d', (char) 0 +}; + +static readonly sbyte[] _selector_single_lengths = new sbyte [] { + 0, 6, 2, 3, 2, 8, 1, 12, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 1, 1, 1, 1, 1, 1, + 0, 12, 2, 13, 2, 12, 7, 12, + 12, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 4, 7, 3, 4, 3, 8, + 2, 12, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 4, 7, 3, 4, 3, + 8, 1, 12, 3, 13, 3, 12, 6, + 12, 12, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 5, 8, 4, 5, 4, + 8, 2, 12, 4, 13, 4, 2, 13, + 5, 13, 13, 13, 13, 12, 6, 6, + 6, 7, 7, 7, 7, 7, 6, 3, + 3, 3, 3, 3, 3, 12, 2, 12, + 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 4, 7, 3, 4, 3, 8, + 3, 1, 12, 3, 13, 3, 12, 7, + 13, 13, 1, 12, 3, 13, 1, 13, + 6, 14, 13, 13, 12, 6, 4, 4, + 5, 5, 5, 5, 5, 6, 2, 2, + 2, 2, 2, 2, 2, 12, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 4, 7, 3, 4, 3, 8, 1, 12, + 3, 13, 3, 12, 7, 12, 12, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 8, 4, 5, 4, 8, 2, 12, + 4, 13, 4, 2, 13, 6, 13, 13, + 13, 13, 12, 6, 6, 6, 7, 7, + 7, 7, 7, 6, 3, 3, 3, 3, + 3, 3, 12, 2, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 5, 8, 4, + 5, 4, 8, 4, 2, 12, 4, 13, + 4, 12, 7, 13, 13, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 5, 8, + 4, 5, 4, 8, 2, 12, 4, 13, + 12, 6, 14, 2, 13, 13, 13, 12, + 6, 6, 6, 7, 7, 7, 7, 7, + 6, 3, 3, 3, 3, 3, 3, 5, + 3, 3, 3, 3, 3, 12, 5, 12, + 13, 13, 13, 9, 13, 5, 5, 5, + 3, 3, 3, 13, 8, 6, 12, 5, + 5, 4, 8, 5, 12, 1, 13, 13, + 13, 12, 6, 6, 6, 7, 7, 7, + 7, 7, 6, 2, 2, 2, 2, 2, + 2, 4, 2, 2, 2, 2, 2, 12, + 4, 12, 13, 4, 12, 4, 12, 0, + 13, 13, 13, 12, 6, 4, 4, 5, + 5, 5, 5, 5, 6, 1, 1, 1, + 1, 1, 1, 3, 12, 3, 12, 13, + 5, 5, 5, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 12, 5, 12, 1, + 13, 13, 13, 12, 6, 4, 4, 5, + 5, 5, 5, 5, 6, 2, 2, 2, + 2, 2, 2, 4, 2, 2, 2, 2, + 2, 12, 4, 12, 13, 6, 6, 6, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 7, 9, 6, 6, 6, 13, 13, + 13, 13, 12, 6, 6, 6, 7, 7, + 7, 7, 7, 6, 3, 3, 3, 3, + 3, 3, 5, 3, 3, 3, 3, 3, + 12, 5, 12, 13, 14, 2, 13, 13, + 13, 9, 13, 5, 5, 5, 3, 3, + 3, 13, 8, 6, 12, 5, 5, 4, + 8, 5, 12, 1, 13, 13, 13, 12, + 6, 6, 6, 7, 7, 7, 7, 7, + 6, 2, 2, 2, 2, 2, 2, 4, + 2, 2, 2, 2, 2, 12, 4, 12, + 13, 4, 4, 3, 8, 3, 4, 4, + 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 5, 5, 5, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 5, 4, + 8, 4, 5, 5, 5, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 6, 6, + 6, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 7, 9, 6, 6, 6, 5, + 3, 3, 3, 3, 3, 12, 5, 12, + 13, 14, 13, 13, 9, 13, 5, 5, + 5, 3, 3, 3, 13, 8, 6, 12, + 5, 12, 5, 4, 8, 5, 12, 4, + 2, 2, 2, 2, 2, 12, 4, 12, + 13, 4, 5, 5, 5, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 6, 6, + 6, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 7, 9, 6, 6, 6, 13, + 13, 13, 13, 14, 13, 13, 9, 13, + 4, 4, 4, 2, 2, 2, 13, 6, + 8, 5, 5, 5, 13, 13, 9, 13, + 4, 4, 4, 2, 2, 2, 13, 13, + 13, 14, 13, 13, 9, 13, 4, 4, + 4, 2, 2, 2, 13, 6, 8, 5, + 5, 5, 5, 3, 3, 3, 3, 3, + 12, 5, 12, 13, 14, 13, 13, 9, + 13, 5, 5, 5, 3, 3, 3, 13, + 8, 6, 12, 5, 12, 12, 6, 6, + 6, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 7, 9, 6, 6, 6, 14, + 13, 13, 9, 13, 4, 4, 4, 2, + 2, 2, 13, 6, 8, 5, 5, 5, + 6, 8, 5, 5, 5, 13, 13, 14, + 13, 13, 9, 13, 3, 3, 3, 1, + 1, 1, 13, 5, 7, 4, 4, 4, + 1, 4, 13, 13, 6, 13, 13, 13, + 5, 13, 13, 13, 13, 5, 8, 7, + 13, 13, 6, 13, 13, 13, 5, 8, + 7, 13, 13, 6, 13, 13, 13, 5, + 8, 7, 13, 7, 6, 13, 13, 7, + 6, 13, 13, 6, 13, 8, 7, 13, + 7, 6, 7, 6, 13, 6, 5 +}; + +static readonly sbyte[] _selector_range_lengths = new sbyte [] { + 0, 3, 1, 4, 1, 5, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 1, 6, 3, 4, 1, 4, 4, 4, + 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 3, 1, 4, 1, 5, + 0, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 3, 1, 4, 1, + 5, 1, 6, 3, 4, 1, 4, 4, + 4, 5, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 3, 1, 4, 1, + 5, 1, 6, 3, 4, 1, 1, 5, + 4, 4, 5, 4, 4, 4, 3, 3, + 6, 3, 3, 3, 3, 3, 3, 0, + 0, 0, 2, 0, 0, 5, 0, 5, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 3, 1, 4, 1, 5, + 1, 1, 6, 3, 4, 1, 4, 4, + 4, 5, 1, 6, 3, 4, 1, 5, + 4, 4, 4, 4, 4, 3, 4, 7, + 4, 4, 4, 4, 4, 3, 0, 0, + 0, 2, 0, 0, 0, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 1, 4, 1, 5, 1, 6, + 3, 4, 1, 4, 4, 4, 5, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 3, 1, 4, 1, 5, 1, 6, + 3, 4, 1, 1, 5, 4, 4, 5, + 4, 4, 4, 3, 3, 6, 3, 3, + 3, 3, 3, 3, 0, 0, 0, 2, + 0, 0, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 3, 1, + 4, 1, 5, 1, 1, 6, 3, 4, + 1, 4, 4, 4, 5, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 3, + 1, 4, 1, 5, 1, 6, 3, 4, + 4, 4, 4, 1, 5, 4, 4, 4, + 3, 3, 6, 3, 3, 3, 3, 3, + 3, 0, 0, 0, 2, 0, 0, 3, + 0, 0, 0, 0, 0, 4, 0, 4, + 4, 4, 4, 5, 4, 1, 1, 1, + 2, 0, 0, 4, 5, 5, 6, 4, + 4, 1, 5, 5, 6, 1, 5, 4, + 4, 4, 3, 3, 6, 3, 3, 3, + 3, 3, 3, 0, 0, 0, 2, 0, + 0, 3, 0, 0, 0, 0, 0, 4, + 0, 4, 4, 4, 5, 5, 6, 1, + 5, 4, 4, 4, 3, 4, 7, 4, + 4, 4, 4, 4, 3, 0, 0, 0, + 2, 0, 0, 3, 4, 0, 4, 4, + 4, 4, 4, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 5, 5, 6, 1, + 5, 4, 4, 4, 3, 4, 7, 4, + 4, 4, 4, 4, 3, 0, 0, 0, + 2, 0, 0, 3, 0, 0, 0, 0, + 0, 4, 0, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 2, 0, + 0, 4, 3, 3, 4, 4, 4, 5, + 4, 4, 4, 3, 3, 6, 3, 3, + 3, 3, 3, 3, 0, 0, 0, 2, + 0, 0, 3, 0, 0, 0, 0, 0, + 4, 0, 4, 4, 4, 1, 5, 4, + 4, 5, 4, 1, 1, 1, 2, 0, + 0, 4, 5, 5, 6, 4, 4, 1, + 5, 5, 6, 1, 5, 4, 4, 4, + 3, 3, 6, 3, 3, 3, 3, 3, + 3, 0, 0, 0, 2, 0, 0, 3, + 0, 0, 0, 0, 0, 4, 0, 4, + 4, 4, 4, 1, 5, 4, 4, 4, + 4, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 4, 4, 4, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 4, 1, + 5, 4, 4, 4, 4, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 4, 4, + 4, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 4, 3, 3, 4, 4, 3, + 0, 0, 0, 0, 0, 4, 0, 4, + 4, 4, 4, 4, 5, 4, 1, 1, + 1, 2, 0, 0, 4, 5, 5, 6, + 4, 5, 4, 1, 5, 5, 6, 3, + 0, 0, 0, 0, 0, 4, 0, 4, + 4, 4, 4, 4, 4, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 4, 4, + 4, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 4, 3, 3, 4, 4, 4, + 5, 4, 5, 4, 4, 4, 5, 4, + 1, 1, 1, 2, 0, 0, 4, 4, + 3, 3, 4, 4, 4, 4, 5, 4, + 1, 1, 1, 2, 0, 0, 4, 4, + 5, 4, 4, 4, 5, 4, 1, 1, + 1, 2, 0, 0, 4, 4, 3, 3, + 4, 4, 3, 0, 0, 0, 0, 0, + 4, 0, 4, 4, 4, 4, 4, 5, + 4, 1, 1, 1, 2, 0, 0, 4, + 5, 5, 6, 4, 5, 5, 4, 4, + 4, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 4, 3, 3, 4, 4, 4, + 4, 4, 5, 4, 1, 1, 1, 2, + 0, 0, 4, 4, 3, 3, 4, 4, + 4, 3, 3, 4, 4, 4, 5, 4, + 4, 4, 5, 4, 1, 1, 1, 2, + 0, 0, 4, 4, 3, 3, 4, 4, + 0, 1, 4, 5, 1, 4, 4, 5, + 1, 4, 5, 4, 5, 1, 3, 1, + 4, 5, 1, 4, 4, 5, 1, 3, + 1, 4, 5, 1, 4, 4, 5, 1, + 3, 1, 4, 3, 1, 4, 4, 3, + 1, 4, 5, 1, 4, 3, 1, 4, + 3, 1, 3, 1, 4, 3, 1 +}; + +static readonly short[] _selector_index_offsets = new short [] { + 0, 0, 10, 14, 22, 26, 40, 42, + 60, 63, 66, 69, 72, 75, 78, 81, + 84, 87, 92, 94, 96, 98, 100, 102, + 104, 106, 125, 131, 149, 153, 170, 182, + 199, 217, 221, 225, 229, 233, 237, 241, + 245, 249, 253, 259, 270, 275, 284, 289, + 303, 306, 324, 328, 332, 336, 340, 344, + 348, 352, 356, 360, 366, 377, 382, 391, + 396, 410, 413, 432, 439, 457, 462, 479, + 490, 507, 525, 530, 535, 540, 545, 550, + 555, 560, 565, 570, 577, 589, 595, 605, + 611, 625, 629, 648, 656, 674, 680, 684, + 703, 713, 731, 750, 768, 786, 803, 813, + 823, 836, 847, 858, 869, 880, 891, 901, + 905, 909, 913, 919, 923, 927, 945, 948, + 966, 968, 972, 976, 980, 984, 988, 992, + 996, 1000, 1004, 1010, 1021, 1026, 1035, 1040, + 1054, 1059, 1062, 1081, 1088, 1106, 1111, 1128, + 1140, 1158, 1177, 1180, 1199, 1206, 1224, 1227, + 1246, 1257, 1276, 1294, 1312, 1329, 1339, 1348, + 1360, 1370, 1380, 1390, 1400, 1410, 1420, 1423, + 1426, 1429, 1434, 1437, 1440, 1443, 1461, 1463, + 1467, 1471, 1475, 1479, 1483, 1487, 1491, 1495, + 1499, 1505, 1516, 1521, 1530, 1535, 1549, 1552, + 1571, 1578, 1596, 1601, 1618, 1630, 1647, 1665, + 1670, 1675, 1680, 1685, 1690, 1695, 1700, 1705, + 1710, 1717, 1729, 1735, 1745, 1751, 1765, 1769, + 1788, 1796, 1814, 1820, 1824, 1843, 1854, 1872, + 1891, 1909, 1927, 1944, 1954, 1964, 1977, 1988, + 1999, 2010, 2021, 2032, 2042, 2046, 2050, 2054, + 2060, 2064, 2068, 2086, 2089, 2094, 2099, 2104, + 2109, 2114, 2119, 2124, 2129, 2134, 2141, 2153, + 2159, 2169, 2175, 2189, 2195, 2199, 2218, 2226, + 2244, 2250, 2267, 2279, 2297, 2316, 2321, 2326, + 2331, 2336, 2341, 2346, 2351, 2356, 2361, 2368, + 2380, 2386, 2396, 2402, 2416, 2420, 2439, 2447, + 2465, 2482, 2493, 2512, 2516, 2535, 2553, 2571, + 2588, 2598, 2608, 2621, 2632, 2643, 2654, 2665, + 2676, 2686, 2690, 2694, 2698, 2704, 2708, 2712, + 2721, 2725, 2729, 2733, 2737, 2741, 2758, 2764, + 2781, 2799, 2817, 2835, 2850, 2868, 2875, 2882, + 2889, 2895, 2899, 2903, 2921, 2935, 2947, 2966, + 2976, 2986, 2992, 3006, 3017, 3036, 3039, 3058, + 3076, 3094, 3111, 3121, 3131, 3144, 3155, 3166, + 3177, 3188, 3199, 3209, 3212, 3215, 3218, 3223, + 3226, 3229, 3237, 3240, 3243, 3246, 3249, 3252, + 3269, 3274, 3291, 3309, 3318, 3336, 3346, 3365, + 3367, 3386, 3404, 3422, 3439, 3449, 3458, 3470, + 3480, 3490, 3500, 3510, 3520, 3530, 3532, 3534, + 3536, 3540, 3542, 3544, 3551, 3568, 3572, 3589, + 3607, 3617, 3627, 3637, 3640, 3643, 3646, 3649, + 3652, 3655, 3660, 3663, 3666, 3684, 3695, 3714, + 3717, 3736, 3754, 3772, 3789, 3799, 3808, 3820, + 3830, 3840, 3850, 3860, 3870, 3880, 3883, 3886, + 3889, 3894, 3897, 3900, 3908, 3911, 3914, 3917, + 3920, 3923, 3940, 3945, 3962, 3980, 3991, 4002, + 4013, 4017, 4021, 4025, 4029, 4033, 4037, 4043, + 4047, 4051, 4063, 4076, 4086, 4097, 4108, 4126, + 4145, 4163, 4181, 4198, 4208, 4218, 4231, 4242, + 4253, 4264, 4275, 4286, 4296, 4300, 4304, 4308, + 4314, 4318, 4322, 4331, 4335, 4339, 4343, 4347, + 4351, 4368, 4374, 4391, 4409, 4428, 4432, 4451, + 4469, 4487, 4502, 4520, 4527, 4534, 4541, 4547, + 4551, 4555, 4573, 4587, 4599, 4618, 4628, 4638, + 4644, 4658, 4669, 4688, 4691, 4710, 4728, 4746, + 4763, 4773, 4783, 4796, 4807, 4818, 4829, 4840, + 4851, 4861, 4864, 4867, 4870, 4875, 4878, 4881, + 4889, 4892, 4895, 4898, 4901, 4904, 4921, 4926, + 4943, 4961, 4970, 4979, 4984, 4998, 5006, 5015, + 5024, 5033, 5035, 5037, 5039, 5041, 5043, 5045, + 5049, 5051, 5053, 5063, 5073, 5083, 5086, 5089, + 5092, 5095, 5098, 5101, 5106, 5109, 5112, 5122, + 5128, 5142, 5151, 5161, 5171, 5181, 5184, 5187, + 5190, 5193, 5196, 5199, 5204, 5207, 5210, 5221, + 5232, 5243, 5247, 5251, 5255, 5259, 5263, 5267, + 5273, 5277, 5281, 5293, 5306, 5316, 5327, 5338, + 5347, 5351, 5355, 5359, 5363, 5367, 5384, 5390, + 5407, 5425, 5444, 5462, 5480, 5495, 5513, 5520, + 5527, 5534, 5540, 5544, 5548, 5566, 5580, 5592, + 5611, 5621, 5639, 5649, 5655, 5669, 5680, 5699, + 5707, 5710, 5713, 5716, 5719, 5722, 5739, 5744, + 5761, 5779, 5788, 5798, 5808, 5818, 5821, 5824, + 5827, 5830, 5833, 5836, 5841, 5844, 5847, 5858, + 5869, 5880, 5884, 5888, 5892, 5896, 5900, 5904, + 5910, 5914, 5918, 5930, 5943, 5953, 5964, 5975, + 5993, 6012, 6030, 6049, 6068, 6086, 6104, 6119, + 6137, 6143, 6149, 6155, 6160, 6163, 6166, 6184, + 6195, 6207, 6216, 6226, 6236, 6254, 6272, 6287, + 6305, 6311, 6317, 6323, 6328, 6331, 6334, 6352, + 6370, 6389, 6408, 6426, 6444, 6459, 6477, 6483, + 6489, 6495, 6500, 6503, 6506, 6524, 6535, 6547, + 6556, 6566, 6576, 6585, 6589, 6593, 6597, 6601, + 6605, 6622, 6628, 6645, 6663, 6682, 6700, 6718, + 6733, 6751, 6758, 6765, 6772, 6778, 6782, 6786, + 6804, 6818, 6830, 6849, 6859, 6877, 6895, 6906, + 6917, 6928, 6932, 6936, 6940, 6944, 6948, 6952, + 6958, 6962, 6966, 6978, 6991, 7001, 7012, 7023, + 7042, 7060, 7078, 7093, 7111, 7117, 7123, 7129, + 7134, 7137, 7140, 7158, 7169, 7181, 7190, 7200, + 7210, 7221, 7233, 7242, 7252, 7262, 7280, 7299, + 7318, 7336, 7354, 7369, 7387, 7392, 7397, 7402, + 7406, 7408, 7410, 7428, 7438, 7449, 7457, 7466, + 7475, 7477, 7483, 7501, 7520, 7528, 7546, 7564, + 7583, 7590, 7608, 7627, 7645, 7664, 7671, 7683, + 7692, 7710, 7729, 7737, 7755, 7773, 7792, 7799, + 7811, 7820, 7838, 7857, 7865, 7883, 7901, 7920, + 7927, 7939, 7948, 7966, 7977, 7985, 8003, 8021, + 8032, 8040, 8058, 8077, 8085, 8103, 8115, 8124, + 8142, 8153, 8161, 8172, 8180, 8198, 8208 +}; + +static readonly short[] _selector_trans_targs = new short [] { + 1, 2, 0, 811, 549, 869, 0, 1, + 0, 3, 0, 549, 0, 3, 4, 548, + 549, 0, 4, 0, 0, 3, 4, 5, + 4, 0, 5, 6, 23, 24, 26, 25, + 30, 377, 0, 5, 0, 25, 27, 29, + 7, 6, 7, 8, 6, 23, 24, 5, + 26, 5, 25, 30, 377, 825, 0, 7, + 0, 25, 27, 29, 9, 9, 0, 10, + 10, 0, 11, 11, 0, 12, 12, 0, + 13, 13, 0, 14, 14, 0, 15, 15, + 0, 16, 16, 0, 17, 17, 0, 17, + 1, 817, 17, 0, 19, 0, 817, 0, + 21, 0, 22, 0, 817, 0, 7, 23, + 25, 0, 7, 8, 6, 7, 23, 24, + 26, 375, 25, 30, 377, 825, 0, 7, + 0, 5, 25, 27, 29, 25, 30, 0, + 25, 27, 29, 7, 8, 6, 7, 23, + 28, 24, 5, 375, 5, 30, 377, 825, + 0, 7, 0, 27, 29, 28, 7, 28, + 0, 7, 8, 6, 23, 28, 24, 5, + 0, 5, 30, 377, 825, 0, 7, 0, + 27, 29, 7, 31, 70, 797, 30, 377, + 825, 7, 799, 810, 810, 29, 32, 33, + 32, 48, 136, 146, 47, 6, 47, 152, + 154, 845, 6, 32, 6, 149, 31, 32, + 33, 32, 48, 146, 47, 148, 47, 147, + 152, 154, 845, 6, 32, 6, 147, 149, + 31, 7, 34, 34, 6, 7, 35, 35, + 6, 7, 36, 36, 6, 7, 37, 37, + 6, 7, 38, 38, 6, 7, 39, 39, + 6, 7, 40, 40, 6, 7, 41, 41, + 6, 7, 42, 42, 6, 42, 7, 43, + 847, 42, 6, 43, 7, 44, 6, 792, + 649, 866, 6, 43, 6, 45, 7, 6, + 649, 6, 45, 46, 7, 636, 649, 6, + 46, 6, 6, 45, 46, 7, 47, 46, + 6, 47, 32, 48, 146, 148, 147, 152, + 154, 6, 47, 6, 147, 149, 31, 49, + 32, 48, 49, 50, 48, 49, 65, 64, + 67, 64, 66, 71, 343, 822, 23, 49, + 23, 66, 68, 70, 7, 51, 51, 23, + 7, 52, 52, 23, 7, 53, 53, 23, + 7, 54, 54, 23, 7, 55, 55, 23, + 7, 56, 56, 23, 7, 57, 57, 23, + 7, 58, 58, 23, 7, 59, 59, 23, + 59, 7, 60, 824, 59, 23, 60, 7, + 61, 23, 787, 371, 864, 23, 60, 23, + 62, 7, 23, 371, 23, 62, 63, 7, + 338, 371, 23, 63, 23, 23, 62, 63, + 7, 64, 63, 23, 64, 48, 49, 65, + 67, 66, 71, 343, 23, 64, 23, 66, + 68, 70, 7, 66, 23, 49, 50, 48, + 49, 49, 65, 67, 341, 66, 71, 343, + 822, 23, 49, 23, 64, 66, 68, 70, + 7, 66, 71, 23, 66, 68, 70, 49, + 50, 48, 49, 49, 69, 65, 64, 341, + 64, 71, 343, 822, 23, 49, 23, 68, + 70, 69, 7, 49, 69, 23, 49, 50, + 48, 49, 69, 65, 64, 23, 64, 71, + 343, 822, 23, 49, 23, 68, 70, 49, + 72, 679, 71, 343, 822, 49, 775, 786, + 786, 70, 73, 74, 73, 73, 93, 89, + 88, 48, 88, 96, 99, 857, 48, 73, + 48, 92, 72, 73, 74, 73, 73, 89, + 88, 91, 88, 90, 96, 99, 857, 48, + 73, 48, 90, 92, 72, 49, 32, 75, + 75, 48, 49, 32, 76, 76, 48, 49, + 32, 77, 77, 48, 49, 32, 78, 78, + 48, 49, 32, 79, 79, 48, 49, 32, + 80, 80, 48, 49, 32, 81, 81, 48, + 49, 32, 82, 82, 48, 49, 32, 83, + 83, 48, 83, 49, 32, 84, 859, 83, + 48, 84, 49, 32, 85, 48, 770, 755, + 861, 48, 84, 48, 86, 49, 32, 48, + 755, 48, 86, 87, 49, 32, 752, 755, + 48, 87, 48, 48, 86, 87, 49, 32, + 88, 87, 48, 88, 73, 73, 89, 91, + 90, 96, 99, 48, 88, 48, 90, 92, + 72, 49, 32, 90, 48, 73, 74, 73, + 73, 73, 89, 91, 94, 90, 96, 99, + 857, 48, 73, 48, 88, 90, 92, 72, + 49, 32, 90, 96, 48, 90, 92, 72, + 73, 74, 73, 73, 73, 93, 89, 88, + 94, 88, 96, 99, 857, 48, 73, 48, + 92, 72, 93, 49, 32, 73, 93, 48, + 49, 32, 95, 48, 73, 74, 73, 73, + 73, 89, 88, 91, 88, 90, 96, 99, + 857, 48, 73, 48, 90, 92, 72, 73, + 97, 96, 99, 857, 73, 740, 751, 751, + 72, 98, 74, 73, 73, 93, 73, 89, + 88, 48, 88, 96, 99, 857, 48, 98, + 48, 92, 72, 98, 74, 73, 73, 73, + 89, 88, 91, 88, 90, 96, 99, 857, + 48, 98, 48, 90, 92, 72, 73, 74, + 73, 73, 93, 89, 88, 48, 88, 96, + 100, 99, 857, 48, 73, 48, 92, 72, + 73, 74, 73, 73, 93, 89, 88, 48, + 88, 96, 101, 99, 857, 48, 73, 48, + 92, 72, 73, 74, 73, 73, 102, 89, + 88, 48, 88, 96, 99, 857, 48, 73, + 48, 92, 72, 102, 117, 198, 48, 73, + 104, 48, 102, 48, 103, 93, 49, 32, + 48, 73, 104, 48, 93, 48, 103, 93, + 49, 32, 48, 73, 104, 48, 93, 48, + 105, 105, 105, 103, 93, 49, 32, 48, + 73, 104, 106, 48, 93, 48, 103, 93, + 49, 32, 48, 73, 107, 104, 48, 93, + 48, 103, 93, 49, 32, 48, 73, 108, + 104, 48, 93, 48, 103, 93, 49, 32, + 48, 73, 109, 104, 48, 93, 48, 103, + 93, 49, 32, 48, 73, 104, 110, 48, + 93, 48, 103, 93, 49, 32, 111, 73, + 104, 48, 93, 48, 103, 112, 49, 32, + 48, 113, 49, 32, 48, 49, 32, 114, + 48, 115, 49, 32, 115, 115, 48, 49, + 32, 116, 48, 49, 32, 103, 48, 117, + 269, 93, 117, 284, 283, 286, 283, 285, + 289, 293, 818, 118, 117, 118, 285, 287, + 288, 69, 119, 118, 119, 121, 136, 118, + 137, 135, 139, 135, 138, 143, 417, 827, + 120, 119, 120, 138, 140, 142, 28, 120, + 28, 122, 122, 120, 28, 123, 123, 120, + 28, 124, 124, 120, 28, 125, 125, 120, + 28, 126, 126, 120, 28, 127, 127, 120, + 28, 128, 128, 120, 28, 129, 129, 120, + 28, 130, 130, 120, 130, 28, 131, 829, + 130, 120, 131, 28, 132, 120, 725, 577, + 855, 120, 131, 120, 133, 28, 120, 577, + 120, 133, 134, 28, 576, 577, 120, 134, + 120, 120, 133, 134, 28, 135, 134, 120, + 135, 136, 118, 137, 139, 138, 143, 417, + 120, 135, 120, 138, 140, 142, 136, 7, + 32, 136, 6, 28, 138, 120, 119, 121, + 136, 119, 118, 137, 139, 415, 138, 143, + 417, 827, 120, 119, 120, 135, 138, 140, + 142, 28, 138, 143, 120, 138, 140, 142, + 119, 121, 136, 119, 118, 141, 137, 135, + 415, 135, 143, 417, 827, 120, 119, 120, + 140, 142, 141, 28, 119, 141, 120, 119, + 121, 136, 118, 141, 137, 135, 120, 135, + 143, 417, 827, 120, 119, 120, 140, 142, + 119, 144, 288, 711, 143, 417, 827, 119, + 713, 724, 724, 142, 145, 33, 32, 48, + 136, 32, 146, 47, 6, 47, 152, 154, + 845, 6, 145, 6, 149, 31, 145, 33, + 32, 48, 32, 146, 47, 148, 47, 147, + 152, 154, 845, 6, 145, 6, 147, 149, + 31, 7, 147, 6, 32, 33, 32, 32, + 48, 146, 148, 150, 147, 152, 154, 845, + 6, 32, 6, 47, 147, 149, 31, 7, + 147, 152, 6, 147, 149, 31, 32, 33, + 32, 32, 48, 136, 146, 47, 150, 47, + 152, 154, 845, 6, 32, 6, 149, 31, + 7, 151, 6, 32, 33, 32, 32, 48, + 146, 47, 148, 47, 147, 152, 154, 845, + 6, 32, 6, 147, 149, 31, 32, 72, + 144, 152, 154, 845, 32, 153, 710, 710, + 31, 32, 33, 32, 32, 48, 136, 146, + 47, 150, 47, 152, 154, 700, 845, 6, + 32, 6, 149, 31, 32, 33, 32, 48, + 136, 146, 47, 6, 47, 152, 155, 154, + 845, 6, 32, 6, 149, 31, 32, 33, + 32, 48, 136, 146, 47, 6, 47, 152, + 156, 154, 845, 6, 32, 6, 149, 31, + 32, 33, 32, 48, 157, 146, 47, 6, + 47, 152, 154, 845, 6, 32, 6, 149, + 31, 157, 119, 172, 6, 32, 159, 6, + 157, 6, 158, 136, 7, 32, 159, 6, + 136, 6, 6, 158, 136, 7, 32, 159, + 6, 136, 6, 6, 160, 160, 160, 158, + 136, 7, 32, 159, 161, 6, 136, 6, + 6, 158, 136, 7, 32, 162, 159, 6, + 136, 6, 6, 158, 136, 7, 32, 163, + 159, 6, 136, 6, 6, 158, 136, 7, + 32, 164, 159, 6, 136, 6, 6, 158, + 136, 7, 32, 159, 165, 6, 136, 6, + 6, 158, 136, 7, 6, 166, 32, 159, + 6, 136, 6, 158, 167, 7, 6, 168, + 7, 6, 7, 169, 6, 170, 7, 170, + 170, 6, 7, 171, 6, 7, 158, 6, + 173, 136, 172, 173, 175, 172, 69, 190, + 189, 192, 189, 191, 196, 517, 836, 174, + 173, 174, 191, 193, 195, 28, 174, 28, + 176, 176, 174, 28, 177, 177, 174, 28, + 178, 178, 174, 28, 179, 179, 174, 28, + 180, 180, 174, 28, 181, 181, 174, 28, + 182, 182, 174, 28, 183, 183, 174, 28, + 184, 184, 174, 184, 28, 185, 838, 184, + 174, 185, 28, 186, 174, 695, 545, 851, + 174, 185, 174, 187, 28, 174, 545, 174, + 187, 188, 28, 512, 545, 174, 188, 174, + 174, 187, 188, 28, 189, 188, 174, 189, + 172, 69, 190, 192, 191, 196, 517, 174, + 189, 174, 191, 193, 195, 28, 191, 174, + 173, 175, 172, 173, 69, 190, 192, 515, + 191, 196, 517, 836, 174, 173, 174, 189, + 191, 193, 195, 28, 191, 196, 174, 191, + 193, 195, 173, 175, 172, 173, 69, 194, + 190, 189, 515, 189, 196, 517, 836, 174, + 173, 174, 193, 195, 194, 28, 173, 194, + 174, 173, 175, 172, 69, 194, 190, 189, + 174, 189, 196, 517, 836, 174, 173, 174, + 193, 195, 173, 197, 679, 681, 196, 517, + 836, 173, 683, 694, 694, 195, 198, 199, + 198, 93, 218, 214, 213, 172, 213, 221, + 224, 841, 172, 198, 172, 217, 197, 198, + 199, 198, 93, 214, 213, 216, 213, 215, + 221, 224, 841, 172, 198, 172, 215, 217, + 197, 173, 136, 200, 200, 172, 173, 136, + 201, 201, 172, 173, 136, 202, 202, 172, + 173, 136, 203, 203, 172, 173, 136, 204, + 204, 172, 173, 136, 205, 205, 172, 173, + 136, 206, 206, 172, 173, 136, 207, 207, + 172, 173, 136, 208, 208, 172, 208, 173, + 136, 209, 843, 208, 172, 209, 173, 136, + 210, 172, 674, 632, 848, 172, 209, 172, + 211, 173, 136, 172, 632, 172, 211, 212, + 173, 136, 629, 632, 172, 212, 172, 172, + 211, 212, 173, 136, 213, 212, 172, 213, + 198, 93, 214, 216, 215, 221, 224, 172, + 213, 172, 215, 217, 197, 173, 136, 215, + 172, 198, 199, 198, 198, 93, 214, 216, + 219, 215, 221, 224, 841, 172, 198, 172, + 213, 215, 217, 197, 173, 136, 215, 221, + 172, 215, 217, 197, 198, 199, 198, 198, + 93, 218, 214, 213, 219, 213, 221, 224, + 841, 172, 198, 172, 217, 197, 218, 173, + 136, 198, 218, 172, 173, 136, 220, 172, + 198, 199, 198, 198, 93, 214, 213, 216, + 213, 215, 221, 224, 841, 172, 198, 172, + 215, 217, 197, 198, 97, 222, 221, 224, + 841, 198, 617, 628, 628, 197, 223, 199, + 198, 93, 218, 198, 214, 213, 172, 213, + 221, 224, 841, 172, 223, 172, 217, 197, + 223, 199, 198, 93, 198, 214, 213, 216, + 213, 215, 221, 224, 841, 172, 223, 172, + 215, 217, 197, 198, 199, 198, 93, 218, + 214, 213, 172, 213, 221, 225, 224, 841, + 172, 198, 172, 217, 197, 198, 199, 198, + 93, 218, 214, 213, 172, 213, 221, 226, + 224, 841, 172, 198, 172, 217, 197, 198, + 199, 198, 93, 227, 214, 213, 172, 213, + 221, 224, 841, 172, 198, 172, 217, 197, + 227, 242, 218, 172, 198, 229, 172, 227, + 172, 228, 218, 173, 136, 172, 198, 229, + 172, 218, 172, 228, 218, 173, 136, 172, + 198, 229, 172, 218, 172, 230, 230, 230, + 228, 218, 173, 136, 172, 198, 229, 231, + 172, 218, 172, 228, 218, 173, 136, 172, + 198, 232, 229, 172, 218, 172, 228, 218, + 173, 136, 172, 198, 233, 229, 172, 218, + 172, 228, 218, 173, 136, 172, 198, 234, + 229, 172, 218, 172, 228, 218, 173, 136, + 172, 198, 229, 235, 172, 218, 172, 228, + 218, 173, 136, 236, 198, 229, 172, 218, + 172, 228, 237, 173, 136, 172, 238, 173, + 136, 172, 173, 136, 239, 172, 240, 173, + 136, 240, 240, 172, 173, 136, 241, 172, + 173, 136, 228, 172, 242, 244, 218, 259, + 260, 258, 262, 258, 261, 266, 464, 832, + 243, 242, 243, 261, 263, 265, 194, 141, + 243, 194, 141, 245, 245, 243, 194, 141, + 246, 246, 243, 194, 141, 247, 247, 243, + 194, 141, 248, 248, 243, 194, 141, 249, + 249, 243, 194, 141, 250, 250, 243, 194, + 141, 251, 251, 243, 194, 141, 252, 252, + 243, 194, 141, 253, 253, 243, 253, 194, + 141, 254, 834, 253, 243, 254, 194, 141, + 255, 243, 602, 509, 839, 243, 254, 243, + 256, 194, 141, 243, 509, 243, 256, 257, + 194, 141, 506, 509, 243, 257, 243, 243, + 256, 257, 194, 141, 258, 257, 243, 258, + 218, 259, 260, 262, 261, 266, 464, 243, + 258, 243, 261, 263, 265, 259, 69, 119, + 117, 259, 118, 194, 141, 261, 243, 242, + 244, 218, 242, 259, 260, 262, 493, 261, + 266, 464, 832, 243, 242, 243, 258, 261, + 263, 265, 194, 141, 261, 266, 243, 261, + 263, 265, 242, 244, 218, 242, 259, 264, + 260, 258, 493, 258, 266, 464, 832, 243, + 242, 243, 263, 265, 264, 194, 141, 242, + 264, 243, 242, 244, 218, 259, 264, 260, + 258, 243, 258, 266, 464, 832, 243, 242, + 243, 263, 265, 242, 222, 267, 462, 266, + 464, 832, 242, 492, 505, 505, 265, 268, + 269, 93, 117, 259, 117, 284, 283, 118, + 283, 289, 293, 818, 118, 268, 118, 287, + 288, 268, 269, 93, 117, 117, 284, 283, + 286, 283, 285, 289, 293, 818, 118, 268, + 118, 285, 287, 288, 69, 119, 270, 270, + 118, 69, 119, 271, 271, 118, 69, 119, + 272, 272, 118, 69, 119, 273, 273, 118, + 69, 119, 274, 274, 118, 69, 119, 275, + 275, 118, 69, 119, 276, 276, 118, 69, + 119, 277, 277, 118, 69, 119, 278, 278, + 118, 278, 69, 119, 279, 820, 278, 118, + 279, 69, 119, 280, 118, 457, 335, 830, + 118, 279, 118, 281, 69, 119, 118, 335, + 118, 281, 282, 69, 119, 332, 335, 118, + 282, 118, 118, 281, 282, 69, 119, 283, + 282, 118, 283, 93, 117, 284, 286, 285, + 289, 293, 118, 283, 118, 285, 287, 288, + 69, 119, 285, 118, 117, 269, 93, 117, + 117, 284, 286, 291, 285, 289, 293, 818, + 118, 117, 118, 283, 285, 287, 288, 69, + 119, 285, 289, 118, 285, 287, 288, 117, + 269, 93, 117, 117, 259, 284, 283, 291, + 283, 289, 293, 818, 118, 117, 118, 287, + 288, 117, 269, 93, 117, 259, 284, 283, + 118, 283, 289, 293, 818, 118, 117, 118, + 287, 288, 117, 97, 267, 289, 293, 818, + 117, 290, 331, 331, 288, 117, 269, 93, + 117, 117, 259, 284, 283, 291, 283, 289, + 293, 321, 818, 118, 117, 118, 287, 288, + 69, 119, 292, 118, 117, 269, 93, 117, + 117, 284, 283, 286, 283, 285, 289, 293, + 818, 118, 117, 118, 285, 287, 288, 117, + 269, 93, 117, 259, 284, 283, 118, 283, + 289, 294, 293, 818, 118, 117, 118, 287, + 288, 117, 269, 93, 117, 259, 284, 283, + 118, 283, 289, 295, 293, 818, 118, 117, + 118, 287, 288, 117, 269, 93, 117, 296, + 284, 283, 118, 283, 289, 293, 818, 118, + 117, 118, 287, 288, 296, 259, 242, 118, + 117, 298, 118, 296, 118, 297, 259, 69, + 119, 118, 117, 298, 118, 259, 118, 297, + 259, 69, 119, 118, 117, 298, 118, 259, + 118, 299, 299, 299, 297, 259, 69, 119, + 118, 117, 298, 300, 118, 259, 118, 297, + 259, 69, 119, 118, 117, 301, 298, 118, + 259, 118, 297, 259, 69, 119, 118, 117, + 302, 298, 118, 259, 118, 297, 259, 69, + 119, 118, 117, 303, 298, 118, 259, 118, + 297, 259, 69, 119, 118, 117, 298, 304, + 118, 259, 118, 297, 259, 69, 119, 305, + 117, 298, 118, 259, 118, 297, 306, 69, + 119, 118, 307, 69, 119, 118, 69, 119, + 308, 118, 309, 69, 119, 309, 309, 118, + 69, 119, 310, 118, 69, 119, 297, 118, + 69, 119, 312, 285, 289, 118, 285, 287, + 288, 69, 119, 820, 118, 69, 119, 312, + 118, 315, 69, 119, 118, 69, 119, 316, + 118, 69, 119, 820, 118, 117, 318, 93, + 117, 259, 284, 283, 118, 283, 289, 293, + 818, 118, 117, 118, 287, 288, 69, 119, + 316, 270, 270, 118, 117, 269, 93, 117, + 259, 284, 283, 320, 283, 289, 293, 818, + 118, 117, 118, 287, 288, 117, 269, 93, + 117, 259, 284, 283, 118, 283, 818, 289, + 293, 818, 118, 117, 118, 287, 288, 117, + 269, 93, 117, 259, 284, 283, 118, 283, + 322, 289, 293, 818, 118, 117, 118, 287, + 288, 117, 269, 93, 117, 117, 259, 284, + 323, 291, 283, 289, 293, 818, 118, 117, + 118, 287, 288, 283, 93, 117, 284, 286, + 324, 285, 289, 293, 118, 283, 118, 285, + 287, 288, 117, 269, 93, 117, 117, 259, + 284, 283, 291, 283, 289, 293, 821, 118, + 117, 118, 287, 288, 326, 259, 69, 119, + 117, 259, 118, 327, 259, 69, 119, 117, + 259, 118, 259, 69, 119, 117, 328, 259, + 118, 329, 69, 119, 329, 329, 118, 69, + 119, 330, 118, 69, 119, 288, 118, 117, + 269, 93, 117, 259, 284, 283, 118, 283, + 289, 293, 321, 818, 118, 117, 118, 287, + 288, 283, 93, 117, 284, 333, 334, 289, + 293, 118, 283, 118, 334, 287, 288, 282, + 69, 119, 281, 334, 289, 118, 282, 118, + 334, 287, 288, 117, 269, 93, 117, 117, + 284, 333, 291, 334, 289, 293, 818, 118, + 117, 118, 283, 334, 287, 288, 282, 336, + 412, 332, 335, 282, 445, 445, 445, 281, + 337, 7, 49, 338, 371, 23, 337, 23, + 23, 62, 337, 7, 49, 64, 337, 23, + 64, 48, 49, 65, 339, 340, 71, 343, + 23, 64, 23, 340, 68, 70, 63, 7, + 62, 340, 71, 23, 63, 23, 340, 68, + 70, 49, 50, 48, 49, 49, 65, 339, + 341, 340, 71, 343, 822, 23, 49, 23, + 64, 340, 68, 70, 7, 342, 23, 49, + 50, 48, 49, 49, 65, 64, 67, 64, + 66, 71, 343, 822, 23, 49, 23, 66, + 68, 70, 49, 50, 48, 49, 69, 65, + 64, 23, 64, 71, 344, 343, 822, 23, + 49, 23, 68, 70, 49, 50, 48, 49, + 69, 65, 64, 23, 64, 71, 345, 343, + 822, 23, 49, 23, 68, 70, 49, 50, + 48, 49, 346, 65, 64, 23, 64, 71, + 343, 822, 23, 49, 23, 68, 70, 346, + 118, 173, 23, 49, 348, 23, 346, 23, + 347, 69, 23, 7, 23, 49, 348, 23, + 69, 23, 347, 69, 23, 7, 23, 49, + 348, 23, 69, 23, 349, 349, 349, 347, + 69, 23, 7, 23, 49, 348, 350, 23, + 69, 23, 347, 69, 23, 7, 23, 49, + 351, 348, 23, 69, 23, 347, 69, 23, + 7, 23, 49, 352, 348, 23, 69, 23, + 347, 69, 23, 7, 23, 49, 353, 348, + 23, 69, 23, 347, 69, 23, 7, 23, + 49, 348, 354, 23, 69, 23, 347, 69, + 23, 7, 355, 49, 348, 23, 69, 23, + 347, 356, 7, 23, 357, 7, 23, 7, + 358, 23, 359, 7, 359, 359, 23, 7, + 360, 23, 7, 347, 23, 7, 362, 66, + 71, 23, 66, 68, 70, 7, 824, 23, + 7, 362, 23, 365, 7, 23, 7, 366, + 23, 7, 824, 23, 49, 368, 48, 49, + 69, 65, 64, 23, 64, 71, 343, 822, + 23, 49, 23, 68, 70, 7, 366, 51, + 51, 23, 49, 50, 48, 49, 69, 65, + 64, 370, 64, 71, 343, 822, 23, 49, + 23, 68, 70, 49, 50, 48, 49, 69, + 65, 64, 23, 64, 822, 71, 343, 822, + 23, 49, 23, 68, 70, 63, 372, 338, + 371, 63, 400, 400, 400, 62, 7, 8, + 6, 23, 24, 5, 373, 5, 374, 30, + 377, 825, 0, 7, 0, 374, 27, 29, + 4, 3, 374, 30, 0, 4, 0, 374, + 27, 29, 7, 8, 6, 7, 23, 24, + 373, 375, 374, 30, 377, 825, 0, 7, + 0, 5, 374, 27, 29, 376, 0, 7, + 8, 6, 7, 23, 24, 5, 26, 5, + 25, 30, 377, 825, 0, 7, 0, 25, + 27, 29, 7, 8, 6, 23, 28, 24, + 5, 0, 5, 30, 378, 377, 825, 0, + 7, 0, 27, 29, 7, 8, 6, 23, + 28, 24, 5, 0, 5, 30, 379, 377, + 825, 0, 7, 0, 27, 29, 7, 8, + 6, 23, 380, 24, 5, 0, 5, 30, + 377, 825, 0, 7, 0, 27, 29, 380, + 120, 174, 0, 7, 382, 0, 380, 0, + 381, 28, 0, 7, 382, 0, 28, 0, + 0, 381, 28, 0, 7, 382, 0, 28, + 0, 0, 383, 383, 383, 381, 28, 0, + 7, 382, 384, 0, 28, 0, 0, 381, + 28, 0, 7, 385, 382, 0, 28, 0, + 0, 381, 28, 0, 7, 386, 382, 0, + 28, 0, 0, 381, 28, 0, 7, 387, + 382, 0, 28, 0, 0, 381, 28, 0, + 7, 382, 388, 0, 28, 0, 0, 381, + 28, 0, 0, 389, 7, 382, 0, 28, + 0, 381, 390, 0, 391, 0, 392, 0, + 393, 393, 393, 0, 394, 0, 381, 0, + 19, 25, 30, 0, 25, 27, 29, 7, + 397, 6, 23, 28, 24, 5, 0, 5, + 30, 377, 825, 0, 7, 0, 27, 29, + 22, 9, 9, 0, 7, 8, 6, 23, + 28, 24, 5, 399, 5, 30, 377, 825, + 0, 7, 0, 27, 29, 7, 8, 6, + 23, 28, 24, 5, 0, 5, 825, 30, + 377, 825, 0, 7, 0, 27, 29, 63, + 7, 338, 371, 401, 23, 63, 23, 23, + 62, 63, 7, 402, 338, 371, 23, 63, + 23, 23, 62, 63, 7, 403, 338, 371, + 23, 63, 23, 23, 62, 7, 404, 23, + 7, 405, 23, 7, 406, 23, 407, 7, + 23, 408, 7, 23, 7, 409, 23, 410, + 7, 410, 410, 23, 7, 411, 23, 7, + 62, 23, 119, 121, 136, 118, 137, 135, + 413, 135, 414, 143, 417, 827, 120, 119, + 120, 414, 140, 142, 134, 28, 133, 414, + 143, 120, 134, 120, 414, 140, 142, 119, + 121, 136, 119, 118, 137, 413, 415, 414, + 143, 417, 827, 120, 119, 120, 135, 414, + 140, 142, 28, 416, 120, 119, 121, 136, + 119, 118, 137, 135, 139, 135, 138, 143, + 417, 827, 120, 119, 120, 138, 140, 142, + 119, 121, 136, 118, 141, 137, 135, 120, + 135, 143, 418, 417, 827, 120, 119, 120, + 140, 142, 119, 121, 136, 118, 141, 137, + 135, 120, 135, 143, 419, 417, 827, 120, + 119, 120, 140, 142, 119, 121, 136, 118, + 420, 137, 135, 120, 135, 143, 417, 827, + 120, 119, 120, 140, 142, 420, 141, 243, + 120, 119, 422, 120, 420, 120, 421, 141, + 28, 119, 422, 120, 141, 120, 120, 421, + 141, 28, 119, 422, 120, 141, 120, 120, + 423, 423, 423, 421, 141, 28, 119, 422, + 424, 120, 141, 120, 120, 421, 141, 28, + 119, 425, 422, 120, 141, 120, 120, 421, + 141, 28, 119, 426, 422, 120, 141, 120, + 120, 421, 141, 28, 119, 427, 422, 120, + 141, 120, 120, 421, 141, 28, 119, 422, + 428, 120, 141, 120, 120, 421, 141, 28, + 120, 429, 119, 422, 120, 141, 120, 421, + 430, 28, 120, 431, 28, 120, 28, 432, + 120, 433, 28, 433, 433, 120, 28, 434, + 120, 28, 421, 120, 28, 436, 138, 143, + 120, 138, 140, 142, 28, 829, 120, 28, + 436, 120, 439, 28, 120, 28, 440, 120, + 28, 829, 120, 119, 442, 136, 118, 141, + 137, 135, 120, 135, 143, 417, 827, 120, + 119, 120, 140, 142, 28, 440, 122, 122, + 120, 119, 121, 136, 118, 141, 137, 135, + 444, 135, 143, 417, 827, 120, 119, 120, + 140, 142, 119, 121, 136, 118, 141, 137, + 135, 120, 135, 827, 143, 417, 827, 120, + 119, 120, 140, 142, 282, 69, 119, 332, + 335, 446, 118, 282, 118, 118, 281, 282, + 69, 119, 447, 332, 335, 118, 282, 118, + 118, 281, 282, 69, 119, 448, 332, 335, + 118, 282, 118, 118, 281, 69, 119, 449, + 118, 69, 119, 450, 118, 69, 119, 451, + 118, 452, 69, 119, 118, 453, 69, 119, + 118, 69, 119, 454, 118, 455, 69, 119, + 455, 455, 118, 69, 119, 456, 118, 69, + 119, 281, 118, 458, 69, 119, 332, 457, + 335, 830, 118, 458, 118, 118, 281, 458, + 69, 119, 280, 118, 332, 457, 335, 830, + 118, 458, 118, 281, 282, 69, 119, 460, + 332, 335, 118, 282, 118, 281, 282, 69, + 119, 332, 830, 335, 118, 282, 118, 118, + 281, 282, 315, 69, 119, 332, 335, 118, + 282, 118, 118, 281, 463, 244, 218, 259, + 264, 242, 260, 258, 243, 258, 266, 464, + 832, 243, 463, 243, 263, 265, 463, 244, + 218, 259, 242, 260, 258, 262, 258, 261, + 266, 464, 832, 243, 463, 243, 261, 263, + 265, 242, 244, 218, 259, 264, 260, 258, + 243, 258, 266, 465, 464, 832, 243, 242, + 243, 263, 265, 242, 244, 218, 259, 264, + 260, 258, 243, 258, 266, 466, 464, 832, + 243, 242, 243, 263, 265, 242, 244, 218, + 259, 467, 260, 258, 243, 258, 266, 464, + 832, 243, 242, 243, 263, 265, 467, 264, + 264, 243, 242, 469, 243, 467, 243, 468, + 264, 194, 141, 243, 242, 469, 243, 264, + 243, 468, 264, 194, 141, 243, 242, 469, + 243, 264, 243, 470, 470, 470, 468, 264, + 194, 141, 243, 242, 469, 471, 243, 264, + 243, 468, 264, 194, 141, 243, 242, 472, + 469, 243, 264, 243, 468, 264, 194, 141, + 243, 242, 473, 469, 243, 264, 243, 468, + 264, 194, 141, 243, 242, 474, 469, 243, + 264, 243, 468, 264, 194, 141, 243, 242, + 469, 475, 243, 264, 243, 468, 264, 194, + 141, 476, 242, 469, 243, 264, 243, 468, + 477, 194, 141, 243, 478, 194, 141, 243, + 194, 141, 479, 243, 480, 194, 141, 480, + 480, 243, 194, 141, 481, 243, 194, 141, + 468, 243, 194, 141, 483, 261, 266, 243, + 261, 263, 265, 194, 141, 834, 243, 194, + 141, 483, 243, 486, 194, 141, 243, 194, + 141, 487, 243, 194, 141, 834, 243, 242, + 489, 218, 259, 264, 260, 258, 243, 258, + 266, 464, 832, 243, 242, 243, 263, 265, + 194, 141, 487, 245, 245, 243, 242, 244, + 218, 259, 264, 260, 258, 491, 258, 266, + 464, 832, 243, 242, 243, 263, 265, 242, + 244, 218, 259, 264, 260, 258, 243, 258, + 832, 266, 464, 832, 243, 242, 243, 263, + 265, 242, 244, 218, 242, 259, 264, 260, + 258, 493, 258, 266, 464, 495, 832, 243, + 242, 243, 263, 265, 194, 141, 494, 243, + 242, 244, 218, 242, 259, 260, 258, 262, + 258, 261, 266, 464, 832, 243, 242, 243, + 261, 263, 265, 242, 244, 218, 259, 264, + 260, 258, 243, 258, 496, 266, 464, 832, + 243, 242, 243, 263, 265, 242, 244, 218, + 242, 259, 264, 260, 497, 493, 258, 266, + 464, 832, 243, 242, 243, 263, 265, 258, + 218, 259, 260, 262, 498, 261, 266, 464, + 243, 258, 243, 261, 263, 265, 242, 244, + 218, 242, 259, 264, 260, 258, 493, 258, + 266, 464, 835, 243, 242, 243, 263, 265, + 500, 264, 194, 141, 242, 264, 243, 501, + 264, 194, 141, 242, 264, 243, 264, 194, + 141, 242, 502, 264, 243, 503, 194, 141, + 503, 503, 243, 194, 141, 504, 243, 194, + 141, 265, 243, 242, 244, 218, 259, 264, + 260, 258, 243, 258, 266, 464, 495, 832, + 243, 242, 243, 263, 265, 258, 218, 259, + 260, 507, 508, 266, 464, 243, 258, 243, + 508, 263, 265, 257, 194, 141, 256, 508, + 266, 243, 257, 243, 508, 263, 265, 242, + 244, 218, 242, 259, 260, 507, 493, 508, + 266, 464, 832, 243, 242, 243, 258, 508, + 263, 265, 257, 510, 574, 506, 509, 257, + 590, 590, 590, 256, 511, 28, 173, 512, + 545, 174, 511, 174, 174, 187, 511, 28, + 173, 189, 511, 174, 189, 172, 69, 190, + 513, 514, 196, 517, 174, 189, 174, 514, + 193, 195, 188, 28, 187, 514, 196, 174, + 188, 174, 514, 193, 195, 173, 175, 172, + 173, 69, 190, 513, 515, 514, 196, 517, + 836, 174, 173, 174, 189, 514, 193, 195, + 28, 516, 174, 173, 175, 172, 173, 69, + 190, 189, 192, 189, 191, 196, 517, 836, + 174, 173, 174, 191, 193, 195, 173, 175, + 172, 69, 194, 190, 189, 174, 189, 196, + 518, 517, 836, 174, 173, 174, 193, 195, + 173, 175, 172, 69, 194, 190, 189, 174, + 189, 196, 519, 517, 836, 174, 173, 174, + 193, 195, 173, 175, 172, 69, 520, 190, + 189, 174, 189, 196, 517, 836, 174, 173, + 174, 193, 195, 520, 243, 194, 174, 173, + 522, 174, 520, 174, 521, 194, 174, 28, + 174, 173, 522, 174, 194, 174, 521, 194, + 174, 28, 174, 173, 522, 174, 194, 174, + 523, 523, 523, 521, 194, 174, 28, 174, + 173, 522, 524, 174, 194, 174, 521, 194, + 174, 28, 174, 173, 525, 522, 174, 194, + 174, 521, 194, 174, 28, 174, 173, 526, + 522, 174, 194, 174, 521, 194, 174, 28, + 174, 173, 527, 522, 174, 194, 174, 521, + 194, 174, 28, 174, 173, 522, 528, 174, + 194, 174, 521, 194, 174, 28, 529, 173, + 522, 174, 194, 174, 521, 530, 28, 174, + 531, 28, 174, 28, 532, 174, 533, 28, + 533, 533, 174, 28, 534, 174, 28, 521, + 174, 28, 536, 191, 196, 174, 191, 193, + 195, 28, 838, 174, 28, 536, 174, 539, + 28, 174, 28, 540, 174, 28, 838, 174, + 173, 542, 172, 69, 194, 190, 189, 174, + 189, 196, 517, 836, 174, 173, 174, 193, + 195, 28, 540, 176, 176, 174, 173, 175, + 172, 69, 194, 190, 189, 544, 189, 196, + 517, 836, 174, 173, 174, 193, 195, 173, + 175, 172, 69, 194, 190, 189, 174, 189, + 836, 196, 517, 836, 174, 173, 174, 193, + 195, 188, 546, 512, 545, 188, 562, 562, + 562, 187, 547, 7, 548, 549, 0, 547, + 0, 0, 3, 547, 7, 5, 547, 0, + 5, 6, 23, 24, 373, 374, 30, 377, + 0, 5, 0, 374, 27, 29, 4, 548, + 549, 4, 550, 550, 550, 3, 4, 548, + 549, 551, 0, 4, 0, 0, 3, 4, + 552, 548, 549, 0, 4, 0, 0, 3, + 4, 553, 548, 549, 0, 4, 0, 0, + 3, 554, 0, 555, 0, 556, 0, 557, + 0, 558, 0, 559, 0, 560, 560, 560, + 0, 561, 0, 3, 0, 188, 28, 512, + 545, 563, 174, 188, 174, 174, 187, 188, + 28, 564, 512, 545, 174, 188, 174, 174, + 187, 188, 28, 565, 512, 545, 174, 188, + 174, 174, 187, 28, 566, 174, 28, 567, + 174, 28, 568, 174, 569, 28, 174, 570, + 28, 174, 28, 571, 174, 572, 28, 572, + 572, 174, 28, 573, 174, 28, 187, 174, + 575, 28, 119, 576, 577, 120, 575, 120, + 120, 133, 575, 28, 119, 135, 575, 120, + 135, 136, 118, 137, 413, 414, 143, 417, + 120, 135, 120, 414, 140, 142, 134, 546, + 576, 577, 134, 578, 578, 578, 133, 134, + 28, 576, 577, 579, 120, 134, 120, 120, + 133, 134, 28, 580, 576, 577, 120, 134, + 120, 120, 133, 134, 28, 581, 576, 577, + 120, 134, 120, 120, 133, 28, 582, 120, + 28, 583, 120, 28, 584, 120, 585, 28, + 120, 586, 28, 120, 28, 587, 120, 588, + 28, 588, 588, 120, 28, 589, 120, 28, + 133, 120, 257, 194, 141, 506, 509, 591, + 243, 257, 243, 243, 256, 257, 194, 141, + 592, 506, 509, 243, 257, 243, 243, 256, + 257, 194, 141, 593, 506, 509, 243, 257, + 243, 243, 256, 194, 141, 594, 243, 194, + 141, 595, 243, 194, 141, 596, 243, 597, + 194, 141, 243, 598, 194, 141, 243, 194, + 141, 599, 243, 600, 194, 141, 600, 600, + 243, 194, 141, 601, 243, 194, 141, 256, + 243, 603, 194, 141, 506, 602, 509, 839, + 243, 603, 243, 243, 256, 603, 194, 141, + 255, 243, 506, 602, 509, 839, 243, 603, + 243, 256, 257, 194, 141, 605, 506, 509, + 243, 257, 243, 256, 257, 194, 141, 506, + 839, 509, 243, 257, 243, 243, 256, 257, + 486, 194, 141, 506, 509, 243, 257, 243, + 243, 256, 173, 136, 608, 215, 221, 172, + 215, 217, 197, 173, 136, 843, 172, 173, + 136, 608, 172, 611, 173, 136, 172, 173, + 136, 612, 172, 173, 136, 843, 172, 198, + 614, 198, 93, 218, 214, 213, 172, 213, + 221, 224, 841, 172, 198, 172, 217, 197, + 173, 136, 612, 200, 200, 172, 198, 199, + 198, 93, 218, 214, 213, 616, 213, 221, + 224, 841, 172, 198, 172, 217, 197, 198, + 199, 198, 93, 218, 214, 213, 172, 213, + 841, 221, 224, 841, 172, 198, 172, 217, + 197, 198, 199, 198, 198, 93, 218, 214, + 213, 219, 213, 221, 224, 618, 841, 172, + 198, 172, 217, 197, 198, 199, 198, 93, + 218, 214, 213, 172, 213, 619, 221, 224, + 841, 172, 198, 172, 217, 197, 198, 199, + 198, 198, 93, 218, 214, 620, 219, 213, + 221, 224, 841, 172, 198, 172, 217, 197, + 213, 198, 93, 214, 216, 621, 215, 221, + 224, 172, 213, 172, 215, 217, 197, 198, + 199, 198, 198, 93, 218, 214, 213, 219, + 213, 221, 224, 844, 172, 198, 172, 217, + 197, 623, 218, 173, 136, 198, 218, 172, + 624, 218, 173, 136, 198, 218, 172, 218, + 173, 136, 198, 625, 218, 172, 626, 173, + 136, 626, 626, 172, 173, 136, 627, 172, + 173, 136, 197, 172, 198, 199, 198, 93, + 218, 214, 213, 172, 213, 221, 224, 618, + 841, 172, 198, 172, 217, 197, 213, 198, + 93, 214, 630, 631, 221, 224, 172, 213, + 172, 631, 217, 197, 212, 173, 136, 211, + 631, 221, 172, 212, 172, 631, 217, 197, + 198, 199, 198, 198, 93, 214, 630, 219, + 631, 221, 224, 841, 172, 198, 172, 213, + 631, 217, 197, 212, 633, 634, 629, 632, + 212, 662, 662, 662, 211, 173, 175, 172, + 69, 190, 189, 513, 189, 514, 196, 517, + 836, 174, 173, 174, 514, 193, 195, 635, + 7, 32, 636, 649, 6, 635, 6, 6, + 45, 635, 7, 32, 47, 635, 6, 47, + 32, 48, 146, 637, 638, 152, 154, 6, + 47, 6, 638, 149, 31, 46, 7, 45, + 638, 152, 6, 46, 6, 638, 149, 31, + 32, 33, 32, 32, 48, 146, 637, 150, + 638, 152, 154, 845, 6, 32, 6, 47, + 638, 149, 31, 7, 640, 147, 152, 6, + 147, 149, 31, 7, 847, 6, 7, 640, + 6, 643, 7, 6, 7, 644, 6, 7, + 847, 6, 32, 646, 32, 48, 136, 146, + 47, 6, 47, 152, 154, 845, 6, 32, + 6, 149, 31, 7, 644, 34, 34, 6, + 32, 33, 32, 48, 136, 146, 47, 648, + 47, 152, 154, 845, 6, 32, 6, 149, + 31, 32, 33, 32, 48, 136, 146, 47, + 6, 47, 845, 152, 154, 845, 6, 32, + 6, 149, 31, 46, 372, 636, 649, 46, + 650, 650, 650, 45, 46, 7, 636, 649, + 651, 6, 46, 6, 6, 45, 46, 7, + 652, 636, 649, 6, 46, 6, 6, 45, + 46, 7, 653, 636, 649, 6, 46, 6, + 6, 45, 7, 654, 6, 7, 655, 6, + 7, 656, 6, 657, 7, 6, 658, 7, + 6, 7, 659, 6, 660, 7, 660, 660, + 6, 7, 661, 6, 7, 45, 6, 212, + 173, 136, 629, 632, 663, 172, 212, 172, + 172, 211, 212, 173, 136, 664, 629, 632, + 172, 212, 172, 172, 211, 212, 173, 136, + 665, 629, 632, 172, 212, 172, 172, 211, + 173, 136, 666, 172, 173, 136, 667, 172, + 173, 136, 668, 172, 669, 173, 136, 172, + 670, 173, 136, 172, 173, 136, 671, 172, + 672, 173, 136, 672, 672, 172, 173, 136, + 673, 172, 173, 136, 211, 172, 675, 173, + 136, 629, 674, 632, 848, 172, 675, 172, + 172, 211, 675, 173, 136, 210, 172, 629, + 674, 632, 848, 172, 675, 172, 211, 212, + 173, 136, 677, 629, 632, 172, 212, 172, + 211, 212, 173, 136, 629, 848, 632, 172, + 212, 172, 172, 211, 212, 611, 173, 136, + 629, 632, 172, 212, 172, 172, 211, 680, + 50, 48, 49, 69, 49, 65, 64, 23, + 64, 71, 343, 822, 23, 680, 23, 68, + 70, 680, 50, 48, 49, 49, 65, 64, + 67, 64, 66, 71, 343, 822, 23, 680, + 23, 66, 68, 70, 682, 175, 172, 69, + 194, 173, 190, 189, 174, 189, 196, 517, + 836, 174, 682, 174, 193, 195, 682, 175, + 172, 69, 173, 190, 189, 192, 189, 191, + 196, 517, 836, 174, 682, 174, 191, 193, + 195, 173, 175, 172, 173, 69, 194, 190, + 189, 515, 189, 196, 517, 684, 836, 174, + 173, 174, 193, 195, 173, 175, 172, 69, + 194, 190, 189, 174, 189, 685, 196, 517, + 836, 174, 173, 174, 193, 195, 173, 175, + 172, 173, 69, 194, 190, 686, 515, 189, + 196, 517, 836, 174, 173, 174, 193, 195, + 189, 172, 69, 190, 192, 687, 191, 196, + 517, 174, 189, 174, 191, 193, 195, 173, + 175, 172, 173, 69, 194, 190, 189, 515, + 189, 196, 517, 850, 174, 173, 174, 193, + 195, 689, 194, 28, 173, 194, 174, 690, + 194, 28, 173, 194, 174, 194, 28, 173, + 691, 194, 174, 692, 28, 692, 692, 174, + 28, 693, 174, 28, 195, 174, 173, 175, + 172, 69, 194, 190, 189, 174, 189, 196, + 517, 684, 836, 174, 173, 174, 193, 195, + 696, 28, 512, 695, 545, 851, 174, 696, + 174, 174, 187, 696, 28, 186, 174, 512, + 695, 545, 851, 174, 696, 174, 187, 188, + 28, 698, 512, 545, 174, 188, 174, 187, + 188, 28, 512, 851, 545, 174, 188, 174, + 174, 187, 188, 539, 28, 512, 545, 174, + 188, 174, 174, 187, 32, 33, 32, 48, + 136, 146, 47, 6, 47, 701, 152, 154, + 845, 6, 32, 6, 149, 31, 32, 33, + 32, 32, 48, 136, 146, 702, 150, 47, + 152, 154, 845, 6, 32, 6, 149, 31, + 47, 32, 48, 146, 148, 703, 147, 152, + 154, 6, 47, 6, 147, 149, 31, 32, + 33, 32, 32, 48, 136, 146, 47, 150, + 47, 152, 154, 853, 6, 32, 6, 149, + 31, 705, 136, 7, 32, 136, 6, 706, + 136, 7, 32, 136, 6, 136, 7, 32, + 707, 136, 6, 708, 7, 708, 708, 6, + 7, 709, 6, 7, 31, 6, 32, 33, + 32, 48, 136, 146, 47, 6, 47, 152, + 154, 700, 845, 6, 32, 6, 149, 31, + 712, 121, 136, 118, 141, 119, 137, 135, + 120, 135, 143, 417, 827, 120, 712, 120, + 140, 142, 712, 121, 136, 118, 119, 137, + 135, 139, 135, 138, 143, 417, 827, 120, + 712, 120, 138, 140, 142, 119, 121, 136, + 119, 118, 141, 137, 135, 415, 135, 143, + 417, 714, 827, 120, 119, 120, 140, 142, + 119, 121, 136, 118, 141, 137, 135, 120, + 135, 715, 143, 417, 827, 120, 119, 120, + 140, 142, 119, 121, 136, 119, 118, 141, + 137, 716, 415, 135, 143, 417, 827, 120, + 119, 120, 140, 142, 135, 136, 118, 137, + 139, 717, 138, 143, 417, 120, 135, 120, + 138, 140, 142, 119, 121, 136, 119, 118, + 141, 137, 135, 415, 135, 143, 417, 854, + 120, 119, 120, 140, 142, 719, 141, 28, + 119, 141, 120, 720, 141, 28, 119, 141, + 120, 141, 28, 119, 721, 141, 120, 722, + 28, 722, 722, 120, 28, 723, 120, 28, + 142, 120, 119, 121, 136, 118, 141, 137, + 135, 120, 135, 143, 417, 714, 827, 120, + 119, 120, 140, 142, 726, 28, 576, 725, + 577, 855, 120, 726, 120, 120, 133, 726, + 28, 132, 120, 576, 725, 577, 855, 120, + 726, 120, 133, 134, 28, 728, 576, 577, + 120, 134, 120, 133, 134, 28, 576, 855, + 577, 120, 134, 120, 120, 133, 134, 439, + 28, 576, 577, 120, 134, 120, 120, 133, + 49, 32, 731, 90, 96, 48, 90, 92, + 72, 49, 32, 859, 48, 49, 32, 731, + 48, 734, 49, 32, 48, 49, 32, 735, + 48, 49, 32, 859, 48, 73, 737, 73, + 73, 93, 89, 88, 48, 88, 96, 99, + 857, 48, 73, 48, 92, 72, 49, 32, + 735, 75, 75, 48, 73, 74, 73, 73, + 93, 89, 88, 739, 88, 96, 99, 857, + 48, 73, 48, 92, 72, 73, 74, 73, + 73, 93, 89, 88, 48, 88, 857, 96, + 99, 857, 48, 73, 48, 92, 72, 73, + 74, 73, 73, 73, 93, 89, 88, 94, + 88, 96, 99, 741, 857, 48, 73, 48, + 92, 72, 73, 74, 73, 73, 93, 89, + 88, 48, 88, 742, 96, 99, 857, 48, + 73, 48, 92, 72, 73, 74, 73, 73, + 73, 93, 89, 743, 94, 88, 96, 99, + 857, 48, 73, 48, 92, 72, 88, 73, + 73, 89, 91, 744, 90, 96, 99, 48, + 88, 48, 90, 92, 72, 73, 74, 73, + 73, 73, 93, 89, 88, 94, 88, 96, + 99, 860, 48, 73, 48, 92, 72, 746, + 93, 49, 32, 73, 93, 48, 747, 93, + 49, 32, 73, 93, 48, 93, 49, 32, + 73, 748, 93, 48, 749, 49, 32, 749, + 749, 48, 49, 32, 750, 48, 49, 32, + 72, 48, 73, 74, 73, 73, 93, 89, + 88, 48, 88, 96, 99, 741, 857, 48, + 73, 48, 92, 72, 88, 73, 73, 89, + 753, 754, 96, 99, 48, 88, 48, 754, + 92, 72, 87, 49, 32, 86, 754, 96, + 48, 87, 48, 754, 92, 72, 73, 74, + 73, 73, 73, 89, 753, 94, 754, 96, + 99, 857, 48, 73, 48, 88, 754, 92, + 72, 87, 756, 757, 752, 755, 87, 758, + 758, 758, 86, 49, 50, 48, 49, 65, + 64, 339, 64, 340, 71, 343, 822, 23, + 49, 23, 340, 68, 70, 32, 33, 32, + 48, 146, 47, 637, 47, 638, 152, 154, + 845, 6, 32, 6, 638, 149, 31, 87, + 49, 32, 752, 755, 759, 48, 87, 48, + 48, 86, 87, 49, 32, 760, 752, 755, + 48, 87, 48, 48, 86, 87, 49, 32, + 761, 752, 755, 48, 87, 48, 48, 86, + 49, 32, 762, 48, 49, 32, 763, 48, + 49, 32, 764, 48, 765, 49, 32, 48, + 766, 49, 32, 48, 49, 32, 767, 48, + 768, 49, 32, 768, 768, 48, 49, 32, + 769, 48, 49, 32, 86, 48, 771, 49, + 32, 752, 770, 755, 861, 48, 771, 48, + 48, 86, 771, 49, 32, 85, 48, 752, + 770, 755, 861, 48, 771, 48, 86, 87, + 49, 32, 773, 752, 755, 48, 87, 48, + 86, 87, 49, 32, 752, 861, 755, 48, + 87, 48, 48, 86, 87, 734, 49, 32, + 752, 755, 48, 87, 48, 48, 86, 49, + 50, 48, 49, 49, 69, 65, 64, 341, + 64, 71, 343, 776, 822, 23, 49, 23, + 68, 70, 49, 50, 48, 49, 69, 65, + 64, 23, 64, 777, 71, 343, 822, 23, + 49, 23, 68, 70, 49, 50, 48, 49, + 49, 69, 65, 778, 341, 64, 71, 343, + 822, 23, 49, 23, 68, 70, 64, 48, + 49, 65, 67, 779, 66, 71, 343, 23, + 64, 23, 66, 68, 70, 49, 50, 48, + 49, 49, 69, 65, 64, 341, 64, 71, + 343, 863, 23, 49, 23, 68, 70, 781, + 69, 7, 49, 69, 23, 782, 69, 7, + 49, 69, 23, 69, 7, 49, 783, 69, + 23, 784, 7, 784, 784, 23, 7, 785, + 23, 7, 70, 23, 49, 50, 48, 49, + 69, 65, 64, 23, 64, 71, 343, 776, + 822, 23, 49, 23, 68, 70, 788, 7, + 338, 787, 371, 864, 23, 788, 23, 23, + 62, 788, 7, 61, 23, 338, 787, 371, + 864, 23, 788, 23, 62, 63, 7, 790, + 338, 371, 23, 63, 23, 62, 63, 7, + 338, 864, 371, 23, 63, 23, 23, 62, + 63, 365, 7, 338, 371, 23, 63, 23, + 23, 62, 793, 7, 636, 792, 649, 866, + 6, 793, 6, 6, 45, 793, 7, 44, + 6, 636, 792, 649, 866, 6, 793, 6, + 45, 46, 7, 795, 636, 649, 6, 46, + 6, 45, 46, 7, 636, 866, 649, 6, + 46, 6, 6, 45, 46, 643, 7, 636, + 649, 6, 46, 6, 6, 45, 798, 8, + 6, 23, 28, 7, 24, 5, 0, 5, + 30, 377, 825, 0, 798, 0, 27, 29, + 798, 8, 6, 23, 7, 24, 5, 26, + 5, 25, 30, 377, 825, 0, 798, 0, + 25, 27, 29, 7, 8, 6, 7, 23, + 28, 24, 5, 375, 5, 30, 377, 800, + 825, 0, 7, 0, 27, 29, 7, 8, + 6, 23, 28, 24, 5, 0, 5, 801, + 30, 377, 825, 0, 7, 0, 27, 29, + 7, 8, 6, 7, 23, 28, 24, 802, + 375, 5, 30, 377, 825, 0, 7, 0, + 27, 29, 5, 6, 23, 24, 26, 803, + 25, 30, 377, 0, 5, 0, 25, 27, + 29, 7, 8, 6, 7, 23, 28, 24, + 5, 375, 5, 30, 377, 868, 0, 7, + 0, 27, 29, 805, 28, 7, 28, 0, + 806, 28, 7, 28, 0, 28, 7, 807, + 28, 0, 808, 808, 808, 0, 809, 0, + 29, 0, 7, 8, 6, 23, 28, 24, + 5, 0, 5, 30, 377, 800, 825, 0, + 7, 0, 27, 29, 812, 548, 811, 549, + 869, 0, 812, 0, 0, 3, 812, 2, + 0, 548, 811, 549, 869, 0, 812, 0, + 3, 4, 814, 548, 549, 0, 4, 0, + 3, 4, 548, 869, 549, 0, 4, 0, + 0, 3, 4, 21, 548, 549, 0, 4, + 0, 0, 3, 1, 0, 817, 18, 20, + 1, 817, 0, 819, 269, 93, 117, 259, + 284, 283, 319, 283, 317, 289, 293, 818, + 118, 819, 118, 287, 288, 819, 269, 93, + 117, 284, 283, 311, 283, 285, 317, 289, + 293, 818, 118, 819, 118, 285, 287, 288, + 820, 69, 119, 313, 314, 279, 820, 118, + 819, 269, 93, 117, 325, 284, 283, 319, + 283, 317, 289, 293, 818, 118, 819, 118, + 287, 288, 823, 50, 48, 49, 69, 65, + 64, 369, 64, 367, 71, 343, 822, 23, + 823, 23, 68, 70, 823, 50, 48, 49, + 65, 64, 361, 64, 66, 367, 71, 343, + 822, 23, 823, 23, 66, 68, 70, 824, + 7, 363, 364, 60, 824, 23, 826, 8, + 6, 23, 28, 24, 5, 398, 5, 396, + 30, 377, 825, 0, 826, 0, 27, 29, + 826, 8, 6, 23, 24, 5, 395, 5, + 25, 396, 30, 377, 825, 0, 826, 0, + 25, 27, 29, 828, 121, 136, 118, 141, + 137, 135, 443, 135, 441, 143, 417, 827, + 120, 828, 120, 140, 142, 828, 121, 136, + 118, 137, 135, 435, 135, 138, 441, 143, + 417, 827, 120, 828, 120, 138, 140, 142, + 829, 28, 437, 438, 131, 829, 120, 831, + 69, 119, 459, 332, 461, 335, 457, 118, + 831, 118, 281, 831, 69, 119, 313, 283, + 314, 279, 831, 118, 833, 244, 218, 259, + 264, 260, 258, 490, 258, 488, 266, 464, + 832, 243, 833, 243, 263, 265, 833, 244, + 218, 259, 260, 258, 482, 258, 261, 488, + 266, 464, 832, 243, 833, 243, 261, 263, + 265, 834, 194, 141, 484, 485, 254, 834, + 243, 833, 244, 218, 259, 499, 260, 258, + 490, 258, 488, 266, 464, 832, 243, 833, + 243, 263, 265, 837, 175, 172, 69, 194, + 190, 189, 543, 189, 541, 196, 517, 836, + 174, 837, 174, 193, 195, 837, 175, 172, + 69, 190, 189, 535, 189, 191, 541, 196, + 517, 836, 174, 837, 174, 191, 193, 195, + 838, 28, 537, 538, 185, 838, 174, 840, + 194, 141, 604, 506, 606, 509, 602, 243, + 840, 243, 256, 840, 194, 141, 484, 258, + 485, 254, 840, 243, 842, 199, 198, 93, + 218, 214, 213, 615, 213, 613, 221, 224, + 841, 172, 842, 172, 217, 197, 842, 199, + 198, 93, 214, 213, 607, 213, 215, 613, + 221, 224, 841, 172, 842, 172, 215, 217, + 197, 843, 173, 136, 609, 610, 209, 843, + 172, 842, 199, 198, 93, 622, 214, 213, + 615, 213, 613, 221, 224, 841, 172, 842, + 172, 217, 197, 846, 33, 32, 48, 136, + 146, 47, 647, 47, 645, 152, 154, 845, + 6, 846, 6, 149, 31, 846, 33, 32, + 48, 146, 47, 639, 47, 147, 645, 152, + 154, 845, 6, 846, 6, 147, 149, 31, + 847, 7, 641, 642, 43, 847, 6, 849, + 173, 136, 676, 629, 678, 632, 674, 172, + 849, 172, 211, 849, 173, 136, 609, 213, + 610, 209, 849, 172, 837, 175, 172, 69, + 688, 190, 189, 543, 189, 541, 196, 517, + 836, 174, 837, 174, 193, 195, 852, 28, + 697, 512, 699, 545, 695, 174, 852, 174, + 187, 852, 28, 537, 189, 538, 185, 852, + 174, 846, 33, 32, 48, 704, 146, 47, + 647, 47, 645, 152, 154, 845, 6, 846, + 6, 149, 31, 828, 121, 136, 118, 718, + 137, 135, 443, 135, 441, 143, 417, 827, + 120, 828, 120, 140, 142, 856, 28, 727, + 576, 729, 577, 725, 120, 856, 120, 133, + 856, 28, 437, 135, 438, 131, 856, 120, + 858, 74, 73, 73, 93, 89, 88, 738, + 88, 736, 96, 99, 857, 48, 858, 48, + 92, 72, 858, 74, 73, 73, 89, 88, + 730, 88, 90, 736, 96, 99, 857, 48, + 858, 48, 90, 92, 72, 859, 49, 32, + 732, 733, 84, 859, 48, 858, 74, 73, + 73, 745, 89, 88, 738, 88, 736, 96, + 99, 857, 48, 858, 48, 92, 72, 862, + 49, 32, 772, 752, 774, 755, 770, 48, + 862, 48, 86, 862, 49, 32, 732, 88, + 733, 84, 862, 48, 823, 50, 48, 49, + 780, 65, 64, 369, 64, 367, 71, 343, + 822, 23, 823, 23, 68, 70, 865, 7, + 789, 338, 791, 371, 787, 23, 865, 23, + 62, 865, 7, 363, 64, 364, 60, 865, + 23, 867, 7, 794, 636, 796, 649, 792, + 6, 867, 6, 45, 867, 7, 641, 47, + 642, 43, 867, 6, 826, 8, 6, 23, + 804, 24, 5, 398, 5, 396, 30, 377, + 825, 0, 826, 0, 27, 29, 870, 813, + 548, 815, 549, 811, 0, 870, 0, 3, + 870, 18, 5, 20, 1, 870, 0, 0 +}; + +const int selector_start = 816; +const int selector_first_final = 816; +const int selector_error = 0; + +const int selector_en_main = 816; + + +/* #line 58 "Parser.rl" */ + + #endregion + } +} diff --git a/Source/External/ExCSS/ParserX.cs b/Source/External/ExCSS/ParserX.cs new file mode 100644 index 0000000..91f57f0 --- /dev/null +++ b/Source/External/ExCSS/ParserX.cs @@ -0,0 +1,1425 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Threading.Tasks; + +namespace ExCSS +{ + public sealed class CssParser + { + CssSelectorConstructor selector; + Stack function; + Boolean skipExceptions; + Lexer tokenizer; + Boolean fraction; + CSSProperty property; + CSSValue value; + List mvalues; + CSSValueList cvalues; + Boolean started; + Boolean quirks; + CSSStyleSheet sheet; + Stack open; + StringBuilder buffer; + CssState state; + Object sync; + Task task; + + #region ctor + + + /// + /// Creates a new CSS parser instance parser with the specified stylesheet + /// based on the given source manager. + /// + /// The stylesheet to be constructed. + /// The source to use. + internal CssParser(StylesheetReader reader) + { + selector = Pool.NewSelectorConstructor(); + sync = new Object(); + skipExceptions = true; + tokenizer = new Lexer(reader); + + started = false; + function = new Stack(); + sheet = stylesheet; + open = new Stack(); + SwitchTo(CssState.Data); + } + + #endregion + + #region Properties + + /// + /// Gets if the parser has been started asynchronously. + /// + public Boolean IsAsync + { + get { return task != null; } + } + + /// + /// Gets or sets if the quirks-mode is activated. + /// + public Boolean IsQuirksMode + { + get { return quirks; } + set { quirks = value; } + } + + /// + /// Gets the current rule if any. + /// + internal CSSRule CurrentRule + { + get { return open.Count > 0 ? open.Peek() : null; } + } + + #endregion + + #region Methods + + /// + /// Parses the given source asynchronously and creates the stylesheet. + /// + /// The task which could be awaited or continued differently. + public Task ParseAsync() + { + lock (sync) + { + if (!started) + { + started = true; + task = Task.Run(() => Kernel()); + } + else if (task == null) + throw new InvalidOperationException("The parser has already run synchronously."); + + return task; + } + } + + /// + /// Parses the given source code. + /// + public void Parse() + { + var run = false; + + lock (sync) + { + if (!started) + { + started = true; + run = true; + } + } + + if (run) + { + Kernel(); + } + } + + #endregion + + #region States + + /// + /// The general state. + /// + /// The current token. + /// The status. + Boolean Data(CssToken token) + { + if (token.Type == CssTokenType.AtKeyword) + { + switch (((CssKeywordToken)token).Data) + { + case RuleNames.MEDIA: + { + AddRule(new CSSMediaRule()); + SwitchTo(CssState.InMediaList); + break; + } + case RuleNames.PAGE: + { + AddRule(new CSSPageRule()); + SwitchTo(CssState.InSelector); + break; + } + case RuleNames.IMPORT: + { + AddRule(new CSSImportRule()); + SwitchTo(CssState.BeforeImport); + break; + } + case RuleNames.FONT_FACE: + { + AddRule(new CSSFontFaceRule()); + SwitchTo(CssState.InDeclaration); + break; + } + case RuleNames.CHARSET: + { + AddRule(new CSSCharsetRule()); + SwitchTo(CssState.BeforeCharset); + break; + } + case RuleNames.NAMESPACE: + { + AddRule(new CSSNamespaceRule()); + SwitchTo(CssState.BeforeNamespacePrefix); + break; + } + case RuleNames.SUPPORTS: + { + buffer = Pool.NewStringBuilder(); + AddRule(new CSSSupportsRule()); + SwitchTo(CssState.InCondition); + break; + } + case RuleNames.KEYFRAMES: + { + AddRule(new CSSKeyframesRule()); + SwitchTo(CssState.BeforeKeyframesName); + break; + } + case RuleNames.DOCUMENT: + { + AddRule(new CSSDocumentRule()); + SwitchTo(CssState.BeforeDocumentFunction); + break; + } + default: + { + buffer = Pool.NewStringBuilder(); + AddRule(new CSSUnknownRule()); + SwitchTo(CssState.InUnknown); + InUnknown(token); + break; + } + } + + return true; + } + else if (token.Type == CssTokenType.CurlyBracketClose) + { + return CloseRule(); + } + else + { + AddRule(new CSSStyleRule()); + SwitchTo(CssState.InSelector); + InSelector(token); + return true; + } + } + + /// + /// State that is called once in the head of an unknown @ rule. + /// + /// The current token. + /// The status. + Boolean InUnknown(CssToken token) + { + switch (token.Type) + { + case CssTokenType.Semicolon: + CurrentRuleAs().SetInstruction(buffer.ToPool()); + SwitchTo(CssState.Data); + return CloseRule(); + case CssTokenType.CurlyBracketOpen: + CurrentRuleAs().SetCondition(buffer.ToPool()); + SwitchTo(CssState.Data); + break; + default: + buffer.Append(token.ToValue()); + break; + } + + return true; + } + + /// + /// State that is called once we are in a CSS selector. + /// + /// The current token. + /// The status. + Boolean InSelector(CssToken token) + { + if (token.Type == CssTokenType.CurlyBracketOpen) + { + var rule = CurrentRule as ICssSelector; + + if (rule != null) + rule.Selector = selector.Result; + + SwitchTo(CurrentRule is CSSStyleRule ? CssState.InDeclaration : CssState.Data); + } + else if (token.Type == CssTokenType.CurlyBracketClose) + return false; + else + selector.Apply(token); + + return true; + } + + /// + /// Called before the property name has been detected. + /// + /// The current token. + /// The status. + Boolean InDeclaration(CssToken token) + { + if (token.Type == CssTokenType.CurlyBracketClose) + { + CloseProperty(); + SwitchTo(CurrentRule is CSSKeyframeRule ? CssState.KeyframesData : CssState.Data); + return CloseRule(); + } + else if (token.Type == CssTokenType.Ident) + { + AddDeclaration(CSSProperty.Create(((CssKeywordToken)token).Data)); + SwitchTo(CssState.AfterProperty); + return true; + } + + return false; + } + + /// + /// After instruction rules a semicolon is required. + /// + /// The current token. + /// The status. + Boolean AfterInstruction(CssToken token) + { + if (token.Type == CssTokenType.Semicolon) + { + SwitchTo(CssState.Data); + return CloseRule(); + } + + return false; + } + + /// + /// In the condition text of a supports rule. + /// + /// The current token. + /// The status. + Boolean InCondition(CssToken token) + { + switch (token.Type) + { + case CssTokenType.CurlyBracketOpen: + CurrentRuleAs().ConditionText = buffer.ToPool(); + SwitchTo(CssState.Data); + break; + default: + buffer.Append(token.ToValue()); + break; + } + + return true; + } + + /// + /// Called before a prefix has been found for the namespace rule. + /// + /// The current token. + /// The status. + Boolean BeforePrefix(CssToken token) + { + if (token.Type == CssTokenType.Ident) + { + CurrentRuleAs().Prefix = ((CssKeywordToken)token).Data; + SwitchTo(CssState.AfterNamespacePrefix); + return true; + } + + SwitchTo(CssState.AfterInstruction); + return AfterInstruction(token); + } + + /// + /// Called before a namespace has been found for the namespace rule. + /// + /// The current token. + /// The status. + Boolean BeforeNamespace(CssToken token) + { + SwitchTo(CssState.AfterInstruction); + + if (token.Type == CssTokenType.String) + { + CurrentRuleAs().NamespaceURI = ((CssStringToken)token).Data; + return true; + } + + return AfterInstruction(token); + } + + /// + /// Before a charset string has been found. + /// + /// The current token. + /// The status. + Boolean BeforeCharset(CssToken token) + { + SwitchTo(CssState.AfterInstruction); + + if (token.Type == CssTokenType.String) + { + CurrentRuleAs().Encoding = ((CssStringToken)token).Data; + return true; + } + + return AfterInstruction(token); + } + + /// + /// Before an URL has been found for the import rule. + /// + /// The current token. + /// The status. + Boolean BeforeImport(CssToken token) + { + if (token.Type == CssTokenType.String || token.Type == CssTokenType.Url) + { + CurrentRuleAs().Href = ((CssStringToken)token).Data; + SwitchTo(CssState.InMediaList); + return true; + } + + SwitchTo(CssState.AfterInstruction); + return false; + } + + /// + /// Called before the property separating colon has been seen. + /// + /// The current token. + /// The status. + Boolean AfterProperty(CssToken token) + { + if (token.Type == CssTokenType.Colon) + { + fraction = false; + SwitchTo(CssState.BeforeValue); + return true; + } + else if (token.Type == CssTokenType.Semicolon || token.Type == CssTokenType.CurlyBracketClose) + AfterValue(token); + + return false; + } + + /// + /// Called before any token in the value regime had been seen. + /// + /// The current token. + /// The status. + Boolean BeforeValue(CssToken token) + { + if (token.Type == CssTokenType.Semicolon) + SwitchTo(CssState.InDeclaration); + else if (token.Type == CssTokenType.CurlyBracketClose) + InDeclaration(token); + else + { + SwitchTo(CssState.InSingleValue); + return InSingleValue(token); + } + + return false; + } + + /// + /// Called when a value has to be computed. + /// + /// The current token. + /// The status. + Boolean InSingleValue(CssToken token) + { + switch (token.Type) + { + case CssTokenType.Dimension: // e.g. "3px" + return AddValue(new CSSPrimitiveValue(((CssUnitToken)token).Unit, ((CssUnitToken)token).Data)); + case CssTokenType.Hash:// e.g. "#ABCDEF" + return InSingleValueHexColor(((CssKeywordToken)token).Data); + case CssTokenType.Delim:// e.g. "#" + return InSingleValueDelim((CssDelimToken)token); + case CssTokenType.Ident: // e.g. "auto" + return InSingleValueIdent((CssKeywordToken)token); + case CssTokenType.String:// e.g. "'i am a string'" + return AddValue(new CSSPrimitiveValue(CssUnit.String, ((CssStringToken)token).Data)); + case CssTokenType.Url:// e.g. "url('this is a valid URL')" + return AddValue(new CSSPrimitiveValue(CssUnit.Uri, ((CssStringToken)token).Data)); + case CssTokenType.Percentage: // e.g. "5%" + return AddValue(new CSSPrimitiveValue(CssUnit.Percentage, ((CssUnitToken)token).Data)); + case CssTokenType.Number: // e.g. "173" + return AddValue(new CSSPrimitiveValue(CssUnit.Number, ((CssNumberToken)token).Data)); + case CssTokenType.Whitespace: // e.g. " " + SwitchTo(CssState.InValueList); + return true; + case CssTokenType.Function: //e.g. rgba(...) + function.Push(new FunctionBuffer(((CssKeywordToken)token).Data)); + SwitchTo(CssState.InFunction); + return true; + case CssTokenType.Comma: // e.g. "," + SwitchTo(CssState.InValuePool); + return true; + case CssTokenType.Semicolon: // e.g. ";" + case CssTokenType.CurlyBracketClose: // e.g. "}" + return AfterValue(token); + default: + return false; + } + } + + /// + /// Gathers a value inside a function. + /// + /// The current token. + /// The status. + Boolean InValueFunction(CssToken token) + { + switch (token.Type) + { + case CssTokenType.RoundBracketClose: + SwitchTo(CssState.InSingleValue); + return AddValue(function.Pop().Done()); + case CssTokenType.Comma: + function.Peek().Include(); + return true; + default: + return InSingleValue(token); + } + } + + /// + /// Called when a new value is seen from the zero-POV (whitespace seen previously). + /// + /// The current token. + /// The status. + Boolean InValueList(CssToken token) + { + if (token.Type == CssTokenType.Semicolon || token.Type == CssTokenType.CurlyBracketClose) + AfterValue(token); + else if (token.Type == CssTokenType.Comma) + SwitchTo(CssState.InValuePool); + else + { + //TDO + SwitchTo(CssState.InSingleValue); + return InSingleValue(token); + } + + return true; + } + + /// + /// Called when a new value is seen from the zero-POV (comma seen previously). + /// + /// The current token. + /// The status. + Boolean InValuePool(CssToken token) + { + if (token.Type == CssTokenType.Semicolon || token.Type == CssTokenType.CurlyBracketClose) + AfterValue(token); + else + { + //TODO + SwitchTo(CssState.InSingleValue); + return InSingleValue(token); + } + + return false; + } + + /// + /// Called if a # sign has been found. + /// + /// The current token. + /// The status. + Boolean InHexValue(CssToken token) + { + switch (token.Type) + { + case CssTokenType.Number: + case CssTokenType.Dimension: + case CssTokenType.Ident: + var rest = token.ToValue(); + + if (buffer.Length + rest.Length <= 6) + { + buffer.Append(rest); + return true; + } + + break; + } + + var s = buffer.ToPool(); + InSingleValueHexColor(buffer.ToString()); + SwitchTo(CssState.InSingleValue); + return InSingleValue(token); + } + + /// + /// Called after the value is known to be over. + /// + /// The current token. + /// The status. + Boolean AfterValue(CssToken token) + { + if (token.Type == CssTokenType.Semicolon) + { + CloseProperty(); + SwitchTo(CssState.InDeclaration); + return true; + } + else if (token.Type == CssTokenType.CurlyBracketClose) + return InDeclaration(token); + + return false; + } + + /// + /// Called once an important instruction is expected. + /// + /// The current token. + /// The status. + Boolean ValueImportant(CssToken token) + { + if (token.Type == CssTokenType.Ident && ((CssKeywordToken)token).Data == "important") + { + SwitchTo(CssState.AfterValue); + property.Important = true; + return true; + } + + return AfterValue(token); + } + + /// + /// Before the name of an @keyframes rule has been detected. + /// + /// The current token. + /// The status. + Boolean BeforeKeyframesName(CssToken token) + { + SwitchTo(CssState.BeforeKeyframesData); + + if (token.Type == CssTokenType.Ident) + { + CurrentRuleAs().Name = ((CssKeywordToken)token).Data; + return true; + } + else if (token.Type == CssTokenType.CurlyBracketOpen) + { + SwitchTo(CssState.KeyframesData); + } + + return false; + } + + /// + /// Before the curly bracket of an @keyframes rule has been seen. + /// + /// The current token. + /// The status. + Boolean BeforeKeyframesData(CssToken token) + { + if (token.Type == CssTokenType.CurlyBracketOpen) + { + SwitchTo(CssState.BeforeKeyframesData); + return true; + } + + return false; + } + + /// + /// Called in the @keyframes rule. + /// + /// The current token. + /// The status. + Boolean KeyframesData(CssToken token) + { + if (token.Type == CssTokenType.CurlyBracketClose) + { + SwitchTo(CssState.Data); + return CloseRule(); + } + else + { + buffer = Pool.NewStringBuilder(); + return InKeyframeText(token); + } + } + + /// + /// Called in the text for a frame in the @keyframes rule. + /// + /// The current token. + /// The status. + Boolean InKeyframeText(CssToken token) + { + if (token.Type == CssTokenType.CurlyBracketOpen) + { + var frame = new CSSKeyframeRule(); + frame.KeyText = buffer.ToPool(); + AddRule(frame); + SwitchTo(CssState.InDeclaration); + return true; + } + else if (token.Type == CssTokenType.CurlyBracketClose) + { + buffer.ToPool(); + KeyframesData(token); + return false; + } + + buffer.Append(token.ToValue()); + return true; + } + + /// + /// Called before a document function has been found. + /// + /// The current token. + /// The status. + Boolean BeforeDocumentFunction(CssToken token) + { + switch (token.Type) + { + case CssTokenType.Url: + CurrentRuleAs().Conditions.Add(Tuple.Create(CSSDocumentRule.DocumentFunction.Url, ((CssStringToken)token).Data)); + break; + case CssTokenType.UrlPrefix: + CurrentRuleAs().Conditions.Add(Tuple.Create(CSSDocumentRule.DocumentFunction.UrlPrefix, ((CssStringToken)token).Data)); + break; + case CssTokenType.Domain: + CurrentRuleAs().Conditions.Add(Tuple.Create(CSSDocumentRule.DocumentFunction.Domain, ((CssStringToken)token).Data)); + break; + case CssTokenType.Function: + if (String.Compare(((CssKeywordToken)token).Data, "regexp", StringComparison.OrdinalIgnoreCase) == 0) + { + SwitchTo(CssState.InDocumentFunction); + return true; + } + SwitchTo(CssState.AfterDocumentFunction); + return false; + default: + SwitchTo(CssState.Data); + return false; + } + + SwitchTo(CssState.BetweenDocumentFunctions); + return true; + } + + /// + /// Called before the argument of a document function has been found. + /// + /// The current token. + /// The status. + Boolean InDocumentFunction(CssToken token) + { + SwitchTo(CssState.AfterDocumentFunction); + + if (token.Type == CssTokenType.String) + { + CurrentRuleAs().Conditions.Add(Tuple.Create(CSSDocumentRule.DocumentFunction.RegExp, ((CssStringToken)token).Data)); + return true; + } + + return false; + } + + /// + /// Called after the arguments of a document function has been found. + /// + /// The current token. + /// The status. + Boolean AfterDocumentFunction(CssToken token) + { + SwitchTo(CssState.BetweenDocumentFunctions); + return token.Type == CssTokenType.RoundBracketClose; + } + + /// + /// Called after a function has been completed. + /// + /// The current token. + /// The status. + Boolean BetweenDocumentFunctions(CssToken token) + { + if (token.Type == CssTokenType.Comma) + { + SwitchTo(CssState.BeforeDocumentFunction); + return true; + } + else if (token.Type == CssTokenType.CurlyBracketOpen) + { + SwitchTo(CssState.Data); + return true; + } + + SwitchTo(CssState.Data); + return false; + } + + /// + /// Before any medium has been found for the @media or @import rule. + /// + /// The current token. + /// The status. + Boolean InMediaList(CssToken token) + { + if (token.Type == CssTokenType.Semicolon) + { + CloseRule(); + SwitchTo(CssState.Data); + return true; + } + + buffer = Pool.NewStringBuilder(); + SwitchTo(CssState.InMediaValue); + return InMediaValue(token); + } + + /// + /// Scans the current medium for the @media or @import rule. + /// + /// The current token. + /// The status. + Boolean InMediaValue(CssToken token) + { + switch (token.Type) + { + case CssTokenType.CurlyBracketOpen: + case CssTokenType.Semicolon: + { + var container = CurrentRule as ICssMedia; + var s = buffer.ToPool(); + + if (container != null) + container.Media.AppendMedium(s); + + if (CurrentRule is CSSImportRule) + return AfterInstruction(token); + + SwitchTo(CssState.Data); + return token.Type == CssTokenType.CurlyBracketClose; + } + case CssTokenType.Comma: + { + var container = CurrentRule as ICssMedia; + + if (container != null) + container.Media.AppendMedium(buffer.ToString()); + + buffer.Clear(); + return true; + } + case CssTokenType.Whitespace: + { + buffer.Append(' '); + return true; + } + default: + { + buffer.Append(token.ToValue()); + return true; + } + } + } + + #endregion + + #region Substates + + /// + /// Called in a value - a delimiter has been found. + /// + /// The current delim token. + /// The status. + Boolean InSingleValueDelim(CssDelimToken token) + { + switch (token.Data) + { + case Specification.EM: + SwitchTo(CssState.ValueImportant); + return true; + case Specification.NUM: + buffer = Pool.NewStringBuilder(); + SwitchTo(CssState.InHexValue); + return true; + case Specification.SOLIDUS: + fraction = true; + return true; + default: + return false; + } + } + + /// + /// Called in a value - an identifier has been found. + /// + /// The current keyword token. + /// The status. + Boolean InSingleValueIdent(CssKeywordToken token) + { + if (token.Data == "inherit") + { + property.Value = CSSValue.Inherit; + SwitchTo(CssState.AfterValue); + return true; + } + + return AddValue(new CSSPrimitiveValue(CssUnit.Ident, token.Data)); + } + + /// + /// Called in a value - a hash (probably hex) value has been found. + /// + /// The value of the token. + /// The status. + Boolean InSingleValueHexColor(String color) + { + CSSColor value; + + if (CSSColor.TryFromHex(color, out value)) + return AddValue(new CSSPrimitiveValue(value)); + + return false; + } + + #endregion + + #region Rule management + + /// + /// Adds the new value to the current value (or replaces it). + /// + /// The value to add. + /// The status. + Boolean AddValue(CSSValue value) + { + if (fraction) + { + if (this.value != null) + { + value = new CSSPrimitiveValue(CssUnit.Unknown, this.value.ToCss() + "/" + value.ToCss()); + this.value = null; + } + + fraction = false; + } + + if (function.Count > 0) + function.Peek().Arguments.Add(value); + else if (this.value == null) + this.value = value; + else + return false; + + return true; + } + + /// + /// Closes a property. + /// + void CloseProperty() + { + if (property != null) + property.Value = value; + + value = null; + property = null; + } + + /// + /// Closes the current rule (if any). + /// + /// The status. + Boolean CloseRule() + { + if (open.Count > 0) + { + open.Pop(); + return true; + } + + return false; + } + + /// + /// Adds a new rule. + /// + /// The new rule. + void AddRule(CSSRule rule) + { + rule.ParentStyleSheet = sheet; + + if (open.Count > 0) + { + var container = open.Peek() as ICssRules; + + if (container != null) + { + container.CssRules.List.Add(rule); + rule.ParentRule = open.Peek(); + } + } + else + sheet.CssRules.List.Add(rule); + + open.Push(rule); + } + + /// + /// Adds a declaration. + /// + /// The new property. + void AddDeclaration(CSSProperty property) + { + this.property = property; + var rule = CurrentRule as IStyleDeclaration; + + if (rule != null) + rule.Style.List.Add(property); + } + + #endregion + + #region Helpers + + /// + /// Gets the current rule casted to the given type. + /// + T CurrentRuleAs() + where T : CSSRule + { + if (open.Count > 0) + return open.Peek() as T; + + return default(T); + } + + /// + /// Switches the current state to the given one. + /// + /// The state to switch to. + void SwitchTo(CssState newState) + { + switch (newState) + { + case CssState.InSelector: + tokenizer.IgnoreComments = true; + tokenizer.IgnoreWhitespace = false; + selector.Reset(); + selector.IgnoreErrors = skipExceptions; + break; + + case CssState.InHexValue: + case CssState.InUnknown: + case CssState.InCondition: + case CssState.InSingleValue: + case CssState.InMediaValue: + tokenizer.IgnoreComments = true; + tokenizer.IgnoreWhitespace = false; + break; + + default: + tokenizer.IgnoreComments = true; + tokenizer.IgnoreWhitespace = true; + break; + } + + state = newState; + } + + /// + /// The kernel that is pulling the tokens into the parser. + /// + void Kernel() + { + var tokens = tokenizer.Tokens; + + foreach (var token in tokens) + { + if (General(token) == false) + RaiseErrorOccurred(ErrorCode.InputUnexpected); + } + + if (property != null) + General(CssSpecialCharacter.Semicolon); + + selector.ToPool(); + } + + /// + /// Examines the token by using the current state. + /// + /// The current token. + /// The status. + Boolean General(CssToken token) + { + switch (state) + { + case CssState.Data: + return Data(token); + case CssState.InSelector: + return InSelector(token); + case CssState.InDeclaration: + return InDeclaration(token); + case CssState.AfterProperty: + return AfterProperty(token); + case CssState.BeforeValue: + return BeforeValue(token); + case CssState.InValuePool: + return InValuePool(token); + case CssState.InValueList: + return InValueList(token); + case CssState.InSingleValue: + return InSingleValue(token); + case CssState.ValueImportant: + return ValueImportant(token); + case CssState.AfterValue: + return AfterValue(token); + case CssState.InMediaList: + return InMediaList(token); + case CssState.InMediaValue: + return InMediaValue(token); + case CssState.BeforeImport: + return BeforeImport(token); + case CssState.AfterInstruction: + return AfterInstruction(token); + case CssState.BeforeCharset: + return BeforeCharset(token); + case CssState.BeforeNamespacePrefix: + return BeforePrefix(token); + case CssState.AfterNamespacePrefix: + return BeforeNamespace(token); + case CssState.InCondition: + return InCondition(token); + case CssState.InUnknown: + return InUnknown(token); + case CssState.InKeyframeText: + return InKeyframeText(token); + case CssState.BeforeDocumentFunction: + return BeforeDocumentFunction(token); + case CssState.InDocumentFunction: + return InDocumentFunction(token); + case CssState.AfterDocumentFunction: + return AfterDocumentFunction(token); + case CssState.BetweenDocumentFunctions: + return BetweenDocumentFunctions(token); + case CssState.BeforeKeyframesName: + return BeforeKeyframesName(token); + case CssState.BeforeKeyframesData: + return BeforeKeyframesData(token); + case CssState.KeyframesData: + return KeyframesData(token); + case CssState.InHexValue: + return InHexValue(token); + case CssState.InFunction: + return InValueFunction(token); + default: + return false; + } + } + + #endregion + + #region Public static methods + + /// + /// Takes a string and transforms it into a selector object. + /// + /// The string to parse. + /// The Selector object. + public static Selector ParseSelector(String selector) + { + var tokenizer = new CssTokenizer(new SourceManager(selector)); + var tokens = tokenizer.Tokens; + var selctor = Pool.NewSelectorConstructor(); + + foreach (var token in tokens) + selctor.Apply(token); + + var result = selctor.Result; + selctor.ToPool(); + return result; + } + + /// + /// Takes a string and transforms it into a CSS stylesheet. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSStyleSheet object. + public static CSSStyleSheet ParseStyleSheet(String stylesheet, Boolean quirksMode = false) + { + var parser = new CssParser(stylesheet); + parser.IsQuirksMode = quirksMode; + return parser.Result; + } + + /// + /// Takes a string and transforms it into a CSS rule. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSRule object. + public static CSSRule ParseRule(String rule, Boolean quirksMode = false) + { + var parser = new CssParser(rule); + parser.skipExceptions = false; + parser.IsQuirksMode = quirksMode; + parser.Parse(); + + if (parser.sheet.CssRules.Length > 0) + return parser.sheet.CssRules[0]; + + return null; + } + + /// + /// Takes a string and transforms it into CSS declarations. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSStyleDeclaration object. + public static CSSStyleDeclaration ParseDeclarations(String declarations, Boolean quirksMode = false) + { + var decl = new CSSStyleDeclaration(); + AppendDeclarations(decl, declarations, quirksMode); + return decl; + } + + /// + /// Takes a string and transforms it into a CSS declaration (CSS property). + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSProperty object. + public static CSSProperty ParseDeclaration(String declarations, Boolean quirksMode = false) + { + var parser = new CssParser(declarations); + parser.state = CssState.InDeclaration; + parser.IsQuirksMode = quirksMode; + parser.skipExceptions = false; + parser.Parse(); + return parser.property; + } + + /// + /// Takes a string and transforms it into a CSS value. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSValue object. + public static CSSValue ParseValue(String source, Boolean quirksMode = false) + { + var parser = new CssParser(source); + var property = new CSSProperty(String.Empty); + parser.property = property; + parser.IsQuirksMode = quirksMode; + parser.skipExceptions = false; + parser.state = CssState.BeforeValue; + parser.Parse(); + return property.Value; + } + + #endregion + + #region Internal static methods + + /// + /// Takes a string and transforms it into a list of CSS values. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSValueList object. + internal static CSSValueList ParseValueList(String source, Boolean quirksMode = false) + { + var parser = new CssParser(source); + var list = new CSSValueList(); + var property = new CSSProperty(String.Empty); + property.Value = list; + parser.property = property; + parser.IsQuirksMode = quirksMode; + parser.skipExceptions = false; + parser.state = CssState.InValueList; + parser.Parse(); + return list; + } + + /// + /// Takes a comma separated string and transforms it into a list of CSS values. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSValueList object. + internal static CSSValuePool ParseMultipleValues(String source, Boolean quirksMode = false) + { + var parser = new CssParser(source); + var pool = new CSSValuePool(); + var property = new CSSProperty(String.Empty); + property.Value = pool; + parser.property = property; + parser.IsQuirksMode = quirksMode; + parser.skipExceptions = false; + parser.state = CssState.InValuePool; + parser.Parse(); + return pool; + } + + /// + /// Takes a string and transforms it into a CSS keyframe rule. + /// + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + /// The CSSKeyframeRule object. + internal static CSSKeyframeRule ParseKeyframeRule(String rule, Boolean quirksMode = false) + { + var parser = new CssParser(rule); + var keyframe = new CSSKeyframeRule(); + parser.AddRule(keyframe); + parser.IsQuirksMode = quirksMode; + parser.skipExceptions = false; + parser.state = CssState.InKeyframeText; + parser.Parse(); + return keyframe; + } + + /// + /// Takes a string and appends all rules to the given list of properties. + /// + /// The list of css properties to append to. + /// The string to parse. + /// Optional: The status of the quirks mode flag (usually not set). + internal static void AppendDeclarations(CSSStyleDeclaration list, String declarations, Boolean quirksMode = false) + { + var parser = new CssParser(declarations); + parser.IsQuirksMode = quirksMode; + parser.skipExceptions = false; + + if (list.ParentRule != null) + parser.AddRule(list.ParentRule); + else + parser.AddRule(new CSSStyleRule(list)); + + parser.state = CssState.InDeclaration; + parser.Parse(); + } + + #endregion + + #region State Enumeration + + /// + /// The enumeration with possible state values. + /// + enum CssState + { + Data, + InSelector, + InDeclaration, + AfterProperty, + BeforeValue, + InValuePool, + InValueList, + InSingleValue, + InMediaList, + InMediaValue, + BeforeImport, + BeforeCharset, + BeforeNamespacePrefix, + AfterNamespacePrefix, + AfterInstruction, + InCondition, + BeforeKeyframesName, + BeforeKeyframesData, + KeyframesData, + InKeyframeText, + BeforeDocumentFunction, + InDocumentFunction, + AfterDocumentFunction, + BetweenDocumentFunctions, + InUnknown, + ValueImportant, + AfterValue, + InHexValue, + InFunction + } + + /// + /// A buffer for functions. + /// + class FunctionBuffer + { + #region Members + + String name; + List arguments; + CSSValue value; + + #endregion + + #region ctor + + internal FunctionBuffer(String name) + { + this.arguments = new List(); + this.name = name; + } + + #endregion + + #region Properties + + public List Arguments + { + get { return arguments; } + } + + public CSSValue Value + { + get { return value; } + set { this.value = value; } + } + + #endregion + + #region Methods + + public void Include() + { + if (value != null) + arguments.Add(value); + + value = null; + } + + public CSSValue Done() + { + Include(); + return CSSFunction.Create(name, arguments); + } + + #endregion + } + + #endregion + } +} diff --git a/Source/External/ExCSS/StyleSheet.cs b/Source/External/ExCSS/StyleSheet.cs new file mode 100644 index 0000000..6be25e4 --- /dev/null +++ b/Source/External/ExCSS/StyleSheet.cs @@ -0,0 +1,146 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using ExCSS.Model.Extensions; + +// ReSharper disable once CheckNamespace +namespace ExCSS +{ + public sealed class StyleSheet + { + private readonly List _rules; + + public StyleSheet() + { + _rules = new List(); + Errors = new List(); + } + + public List Rules + { + get { return _rules; } + } + + public StyleSheet RemoveRule(int index) + { + if (index >= 0 && index < _rules.Count) + { + _rules.RemoveAt(index); + } + + return this; + } + + public StyleSheet InsertRule(string rule, int index) + { + if (index < 0 || index > _rules.Count) + { + return this; + } + + var value = Parser.ParseRule(rule); + _rules.Insert(index, value); + + return this; + } + + public IList StyleRules + { + get + { + return Rules.Where(r => r is StyleRule).Cast().ToList(); + } + } + + public IList CharsetDirectives + { + get + { + return GetDirectives(RuleType.Charset); + } + } + + public IList ImportDirectives + { + get + { + return GetDirectives(RuleType.Import); + } + } + + public IList FontFaceDirectives + { + get + { + return GetDirectives(RuleType.FontFace); + } + } + + public IList KeyframeDirectives + { + get + { + return GetDirectives(RuleType.Keyframes); + } + } + + public IList MediaDirectives + { + get + { + return GetDirectives(RuleType.Media); + + } + } + + public IList PageDirectives + { + get + { + return GetDirectives(RuleType.Page); + + } + } + + public IList SupportsDirectives + { + get + { + return GetDirectives(RuleType.Supports); + } + } + + public IList NamespaceDirectives + { + get + { + return GetDirectives(RuleType.Namespace); + } + } + + private IList GetDirectives(RuleType ruleType) + { + return Rules.Where(r => r.RuleType == ruleType).Cast().ToList(); + } + + public List Errors { get; private set; } + + public override string ToString() + { + return ToString(false); + } + + public string ToString(bool friendlyFormat, int indentation = 0) + { + var builder = new StringBuilder(); + + foreach (var rule in _rules) + { + builder.Append(rule.ToString(friendlyFormat, indentation).TrimStart() + (friendlyFormat ? Environment.NewLine : "")); + } + + return builder.TrimFirstLine().TrimLastLine().ToString(); + } + } +} diff --git a/Source/External/ExCSS/StylesheetParseError.cs b/Source/External/ExCSS/StylesheetParseError.cs new file mode 100644 index 0000000..090629c --- /dev/null +++ b/Source/External/ExCSS/StylesheetParseError.cs @@ -0,0 +1,27 @@ + +namespace ExCSS +{ + public sealed class StylesheetParseError + { + public StylesheetParseError(ParserError error, string errorMessage, int line, int column) + { + ParserError = error; + Message = errorMessage; + Line = line; + Column = column; + } + + public ParserError ParserError { get; set; } + + public int Line{get;set;} + + public int Column{get;set;} + + public string Message{get;private set;} + + public override string ToString() + { + return string.Format("Line {0}, Column {1}: {2}.", Line, Column, Message); + } + } +} \ No newline at end of file diff --git a/Source/External/ExCSS/StylesheetReader.cs b/Source/External/ExCSS/StylesheetReader.cs new file mode 100644 index 0000000..0446822 --- /dev/null +++ b/Source/External/ExCSS/StylesheetReader.cs @@ -0,0 +1,186 @@ +using System.Collections.Generic; +using System.IO; +using System.Text; +using ExCSS.Model; + +namespace ExCSS +{ + internal class StylesheetReader + { + private int _insertion; + private readonly Stack _collengths; + private TextReader _reader; + private readonly StringBuilder _buffer; + private bool _lineWithReturn; + + StylesheetReader() + { + _buffer = new StringBuilder(); + _collengths = new Stack(); + Column = 1; + Line = 1; + } + + internal StylesheetReader(string styleText) : this() + { + _reader = new StringReader(styleText); + ReadCurrent(); + } + + internal StylesheetReader(Stream styleStream) : this() + { + _reader = new StreamReader(styleStream, true); + ReadCurrent(); + } + + internal bool IsBeginning + { + get { return _insertion < 2; } + } + + internal int Line { get; private set; } + + internal int Column { get; private set; } + + internal bool IsEnded { get; private set; } + + internal bool IsEnding + { + get { return Current == Specification.EndOfFile; } + } + + internal char Current { get; private set; } + + internal char Next + { + get + { + Advance(); + + return Current; + } + } + + internal char Previous + { + get + { + Back(); + + return Current; + } + } + + internal void Advance() + { + if (!IsEnding) + { + AdvanceUnsafe(); + } + else if (!IsEnded) + { + IsEnded = true; + } + } + + internal void Advance(int positions) + { + while (positions-- > 0 && !IsEnding) + { + AdvanceUnsafe(); + } + } + + internal void Back() + { + IsEnded = false; + + if (!IsBeginning) + { + BackUnsafe(); + } + } + + internal void Back(int positions) + { + IsEnded = false; + + while (positions-- > 0 && !IsBeginning) + { + BackUnsafe(); + } + } + + private void ReadCurrent() + { + if (_insertion < _buffer.Length) + { + Current = _buffer[_insertion]; + _insertion++; + return; + } + + var nextPosition = _reader.Read(); + Current = nextPosition == -1 ? Specification.EndOfFile : (char)nextPosition; + + if (Current == Specification.CarriageReturn) + { + Current = Specification.LineFeed; + _lineWithReturn = true; + } + else if (_lineWithReturn) + { + _lineWithReturn = false; + + if (Current == Specification.LineFeed) + { + ReadCurrent(); + return; + } + } + + _buffer.Append(Current); + _insertion++; + } + + private void AdvanceUnsafe() + { + if (Current.IsLineBreak()) + { + _collengths.Push(Column); + Column = 1; + Line++; + } + else + { + Column++; + } + + ReadCurrent(); + } + + private void BackUnsafe() + { + _insertion--; + + if (_insertion == 0) + { + Column = 0; + Current = Specification.Null; + return; + } + + Current = _buffer[_insertion - 1]; + + if (Current.IsLineBreak()) + { + Column = _collengths.Count != 0 ? _collengths.Pop() : 1; + Line--; + } + else + { + Column--; + } + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/Either.cs b/Source/External/Fizzler/Either.cs new file mode 100644 index 0000000..2372563 --- /dev/null +++ b/Source/External/Fizzler/Either.cs @@ -0,0 +1,136 @@ +// +// Copyright (c) 2008 Novell, Inc. (http://www.novell.com) +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +namespace Fizzler +{ + #region Imports + + using System; + using System.Collections.Generic; + + #endregion + + // Adapted from Mono Rocks + + internal abstract class Either + : IEquatable> + { + private Either() {} + + public static Either A(TA value) + { + if (value == null) throw new ArgumentNullException("value"); + return new AImpl(value); + } + + public static Either B(TB value) + { + if (value == null) throw new ArgumentNullException("value"); + return new BImpl(value); + } + + public override abstract bool Equals(object obj); + public abstract bool Equals(Either obj); + public override abstract int GetHashCode(); + public override abstract string ToString(); + public abstract TResult Fold(Func a, Func b); + + private sealed class AImpl : Either + { + private readonly TA _value; + + public AImpl(TA value) + { + _value = value; + } + + public override int GetHashCode() + { + return _value.GetHashCode(); + } + + public override bool Equals(object obj) + { + return Equals(obj as AImpl); + } + + public override bool Equals(Either obj) + { + var a = obj as AImpl; + return a != null + && EqualityComparer.Default.Equals(_value, a._value); + } + + public override TResult Fold(Func a, Func b) + { + if (a == null) throw new ArgumentNullException("a"); + if (b == null) throw new ArgumentNullException("b"); + return a(_value); + } + + public override string ToString() + { + return _value.ToString(); + } + } + + private sealed class BImpl : Either + { + private readonly TB _value; + + public BImpl(TB value) + { + _value = value; + } + + public override int GetHashCode() + { + return _value.GetHashCode(); + } + + public override bool Equals(object obj) + { + return Equals(obj as BImpl); + } + + public override bool Equals(Either obj) + { + var b = obj as BImpl; + return b != null + && EqualityComparer.Default.Equals(_value, b._value); + } + + public override TResult Fold(Func a, Func b) + { + if (a == null) throw new ArgumentNullException("a"); + if (b == null) throw new ArgumentNullException("b"); + return b(_value); + } + + public override string ToString() + { + return _value.ToString(); + } + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/HumanReadableSelectorGenerator.cs b/Source/External/Fizzler/HumanReadableSelectorGenerator.cs new file mode 100644 index 0000000..8070c0f --- /dev/null +++ b/Source/External/Fizzler/HumanReadableSelectorGenerator.cs @@ -0,0 +1,256 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + using System; + + /// + /// An implementation that generates + /// human-readable description of the selector. + /// + public class HumanReadableSelectorGenerator : ISelectorGenerator + { + private int _chainCount; + + /// + /// Initializes the text. + /// + public virtual void OnInit() + { + Text = null; + } + + /// + /// Gets the generated human-readable description text. + /// + public string Text { get; private set; } + + /// + /// Generates human-readable for a selector in a group. + /// + public virtual void OnSelector() + { + if (string.IsNullOrEmpty(Text)) + Text = "Take all"; + else + Text += " and select them. Combined with previous, take all"; + } + + /// + /// Concludes the text. + /// + public virtual void OnClose() + { + Text = Text.Trim(); + Text += " and select them."; + } + + /// + /// Adds to the generated human-readable text. + /// + protected void Add(string selector) + { + if (selector == null) throw new ArgumentNullException("selector"); + Text += selector; + } + + /// + /// Generates human-readable text of this type selector. + /// + public void Type(NamespacePrefix prefix, string type) + { + Add(string.Format(" <{0}> elements", type)); + } + + /// + /// Generates human-readable text of this universal selector. + /// + public void Universal(NamespacePrefix prefix) + { + Add(" elements"); + } + + /// + /// Generates human-readable text of this ID selector. + /// + public void Id(string id) + { + Add(string.Format(" with an ID of '{0}'", id)); + } + + /// + /// Generates human-readable text of this class selector. + /// + void ISelectorGenerator.Class(string clazz) + { + Add(string.Format(" with a class of '{0}'", clazz)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributeExists(NamespacePrefix prefix, string name) + { + Add(string.Format(" which have attribute {0} defined", name)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributeExact(NamespacePrefix prefix, string name, string value) + { + Add(string.Format(" which have attribute {0} with a value of '{1}'", name, value)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributeIncludes(NamespacePrefix prefix, string name, string value) + { + Add(string.Format(" which have attribute {0} that includes the word '{1}'", name, value)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributeDashMatch(NamespacePrefix prefix, string name, string value) + { + Add(string.Format(" which have attribute {0} with a hyphen separated value matching '{1}'", name, value)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributePrefixMatch(NamespacePrefix prefix, string name, string value) + { + Add(string.Format(" which have attribute {0} whose value begins with '{1}'", name, value)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributeSuffixMatch(NamespacePrefix prefix, string name, string value) + { + Add(string.Format(" which have attribute {0} whose value ends with '{1}'", name, value)); + } + + /// + /// Generates human-readable text of this attribute selector. + /// + public void AttributeSubstring(NamespacePrefix prefix, string name, string value) + { + Add(string.Format(" which have attribute {0} whose value contains '{1}'", name, value)); + } + + /// + /// Generates human-readable text of this pseudo-class selector. + /// + public void FirstChild() + { + Add(" which are the first child of their parent"); + } + + /// + /// Generates human-readable text of this pseudo-class selector. + /// + public void LastChild() + { + Add(" which are the last child of their parent"); + } + + /// + /// Generates human-readable text of this pseudo-class selector. + /// + public void NthChild(int a, int b) + { + Add(string.Format(" where the element has {0}n+{1}-1 sibling before it", a, b)); + } + + /// + /// Generates human-readable text of this pseudo-class selector. + /// + public void OnlyChild() + { + Add(" where the element is the only child"); + } + + /// + /// Generates human-readable text of this pseudo-class selector. + /// + public void Empty() + { + Add(" where the element is empty"); + } + + /// + /// Generates human-readable text of this combinator. + /// + public void Child() + { + Add(", then take their immediate children which are"); + } + + /// + /// Generates human-readable text of this combinator. + /// + public void Descendant() + { + if (_chainCount > 0) + { + Add(". With those, take only their descendants which are"); + } + else + { + Add(", then take their descendants which are"); + _chainCount++; + } + } + + /// + /// Generates human-readable text of this combinator. + /// + public void Adjacent() + { + Add(", then take their immediate siblings which are"); + } + + /// + /// Generates a combinator, + /// which separates two sequences of simple selectors. The elements represented + /// by the two sequences share the same parent in the document tree and the + /// element represented by the first sequence precedes (not necessarily + /// immediately) the element represented by the second one. + /// + public void GeneralSibling() + { + Add(", then take their siblings which are"); + } + + /// + /// Generates human-readable text of this combinator. + /// + public void NthLastChild(int a, int b) + { + Add(string.Format(" where the element has {0}n+{1}-1 sibling after it", a, b)); + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/IElementOps.cs b/Source/External/Fizzler/IElementOps.cs new file mode 100644 index 0000000..e33fb48 --- /dev/null +++ b/Source/External/Fizzler/IElementOps.cs @@ -0,0 +1,190 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + /// + /// Represents a selectors implementation for an arbitrary document/node system. + /// + public interface IElementOps + { + // + // Selectors + // + + /// + /// Generates a type selector, + /// which represents an instance of the element type in the document tree. + /// + Selector Type(NamespacePrefix prefix, string name); + + /// + /// Generates a universal selector, + /// any single element in the document tree in any namespace + /// (including those without a namespace) if no default namespace + /// has been specified for selectors. + /// + Selector Universal(NamespacePrefix prefix); + + /// + /// Generates a ID selector, + /// which represents an element instance that has an identifier that + /// matches the identifier in the ID selector. + /// + Selector Id(string id); + + /// + /// Generates a class selector, + /// which is an alternative when + /// representing the class attribute. + /// + Selector Class(string clazz); + + // + // Attribute selectors + // + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// whatever the values of the attribute. + /// + Selector AttributeExists(NamespacePrefix prefix, string name); + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// and whose value is exactly . + /// + Selector AttributeExact(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// and whose value is a whitespace-separated list of words, one of + /// which is exactly . + /// + Selector AttributeIncludes(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute , + /// its value either being exactly or beginning + /// with immediately followed by "-" (U+002D). + /// + Selector AttributeDashMatch(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value begins with the prefix . + /// + Selector AttributePrefixMatch(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value ends with the suffix . + /// + Selector AttributeSuffixMatch(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value contains at least one instance of the substring . + /// + Selector AttributeSubstring(NamespacePrefix prefix, string name, string value); + + // + // Pseudo-class selectors + // + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the first child of some other element. + /// + Selector FirstChild(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the last child of some other element. + /// + Selector LastChild(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the N-th child of some other element. + /// + Selector NthChild(int a, int b); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that has a parent element and whose parent + /// element has no other element children. + /// + Selector OnlyChild(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that has no children at all. + /// + Selector Empty(); + + // + // Combinators + // + + /// + /// Generates a combinator, + /// which represents a childhood relationship between two elements. + /// + Selector Child(); + + /// + /// Generates a combinator, + /// which represents a relationship between two elements where one element is an + /// arbitrary descendant of some ancestor element. + /// + Selector Descendant(); + + /// + /// Generates a combinator, + /// which represents elements that share the same parent in the document tree and + /// where the first element immediately precedes the second element. + /// + Selector Adjacent(); + + /// + /// Generates a combinator, + /// which separates two sequences of simple selectors. The elements represented + /// by the two sequences share the same parent in the document tree and the + /// element represented by the first sequence precedes (not necessarily + /// immediately) the element represented by the second one. + /// + Selector GeneralSibling(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the N-th child from bottom up of some other element. + /// + Selector NthLastChild(int a, int b); + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/ISelectorGenerator.cs b/Source/External/Fizzler/ISelectorGenerator.cs new file mode 100644 index 0000000..6d1b183 --- /dev/null +++ b/Source/External/Fizzler/ISelectorGenerator.cs @@ -0,0 +1,206 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + /// + /// Represent an implementation that is responsible for generating + /// an implementation for a selector. + /// + public interface ISelectorGenerator + { + /// + /// Delimits the initialization of a generation. + /// + void OnInit(); + + /// + /// Delimits the closing/conclusion of a generation. + /// + void OnClose(); + + /// + /// Delimits a selector generation in a group of selectors. + /// + void OnSelector(); + + // + // Selectors + // + + /// + /// Generates a type selector, + /// which represents an instance of the element type in the document tree. + /// + void Type(NamespacePrefix prefix, string name); + + /// + /// Generates a universal selector, + /// any single element in the document tree in any namespace + /// (including those without a namespace) if no default namespace + /// has been specified for selectors. + /// + void Universal(NamespacePrefix prefix); + + /// + /// Generates a ID selector, + /// which represents an element instance that has an identifier that + /// matches the identifier in the ID selector. + /// + void Id(string id); + + /// + /// Generates a class selector, + /// which is an alternative when + /// representing the class attribute. + /// + void Class(string clazz); + + // + // Attribute selectors + // + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// whatever the values of the attribute. + /// + void AttributeExists(NamespacePrefix prefix, string name); + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// and whose value is exactly . + /// + void AttributeExact(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// and whose value is a whitespace-separated list of words, one of + /// which is exactly . + /// + void AttributeIncludes(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute , + /// its value either being exactly or beginning + /// with immediately followed by "-" (U+002D). + /// + void AttributeDashMatch(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value begins with the prefix . + /// + void AttributePrefixMatch(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value ends with the suffix . + /// + void AttributeSuffixMatch(NamespacePrefix prefix, string name, string value); + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value contains at least one instance of the substring . + /// + void AttributeSubstring(NamespacePrefix prefix, string name, string value); + + // + // Pseudo-class selectors + // + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the first child of some other element. + /// + void FirstChild(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the last child of some other element. + /// + void LastChild(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the N-th child of some other element. + /// + void NthChild(int a, int b); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that has a parent element and whose parent + /// element has no other element children. + /// + void OnlyChild(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that has no children at all. + /// + void Empty(); + + // + // Combinators + // + + /// + /// Generates a combinator, + /// which represents a childhood relationship between two elements. + /// + void Child(); + + /// + /// Generates a combinator, + /// which represents a relationship between two elements where one element is an + /// arbitrary descendant of some ancestor element. + /// + void Descendant(); + + /// + /// Generates a combinator, + /// which represents elements that share the same parent in the document tree and + /// where the first element immediately precedes the second element. + /// + void Adjacent(); + + /// + /// Generates a combinator, + /// which separates two sequences of simple selectors. The elements represented + /// by the two sequences share the same parent in the document tree and the + /// element represented by the first sequence precedes (not necessarily + /// immediately) the element represented by the second one. + /// + void GeneralSibling(); + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the N-th child from bottom up of some other element. + /// + void NthLastChild(int a, int b); + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/NamespacePrefix.cs b/Source/External/Fizzler/NamespacePrefix.cs new file mode 100644 index 0000000..7843d30 --- /dev/null +++ b/Source/External/Fizzler/NamespacePrefix.cs @@ -0,0 +1,135 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + using System; + + /// + /// Represent a type or attribute name. + /// + [Serializable] + public struct NamespacePrefix + { + /// + /// Represents a name from either the default or any namespace + /// in a target document, depending on whether a default namespace is + /// in effect or not. + /// + public static readonly NamespacePrefix None = new NamespacePrefix(null); + + /// + /// Represents an empty namespace. + /// + public static readonly NamespacePrefix Empty = new NamespacePrefix(string.Empty); + + /// + /// Represents any namespace. + /// + public static readonly NamespacePrefix Any = new NamespacePrefix("*"); + + /// + /// Initializes an instance with a namespace prefix specification. + /// + public NamespacePrefix(string text) : this() + { + Text = text; + } + + /// + /// Gets the raw text value of this instance. + /// + public string Text { get; private set; } + + /// + /// Indicates whether this instance represents a name + /// from either the default or any namespace in a target + /// document, depending on whether a default namespace is + /// in effect or not. + /// + public bool IsNone { get { return Text == null; } } + + /// + /// Indicates whether this instance represents a name + /// from any namespace (including one without one) + /// in a target document. + /// + public bool IsAny + { + get { return !IsNone && Text.Length == 1 && Text[0] == '*'; } + } + + /// + /// Indicates whether this instance represents a name + /// without a namespace in a target document. + /// + public bool IsEmpty { get { return !IsNone && Text.Length == 0; } } + + /// + /// Indicates whether this instance represents a name from a + /// specific namespace or not. + /// + public bool IsSpecific { get {return !IsNone && !IsAny; } } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + public override bool Equals(object obj) + { + return obj is NamespacePrefix && Equals((NamespacePrefix) obj); + } + + /// + /// Indicates whether this instance and another are equal. + /// + public bool Equals(NamespacePrefix other) + { + return Text == other.Text; + } + + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode() + { + return IsNone ? 0 : Text.GetHashCode(); + } + + /// + /// Returns a string representation of this instance. + /// + public override string ToString() + { + return IsNone ? "(none)" : Text; + } + + /// + /// Formats this namespace together with a name. + /// + public string Format(string name) + { + if (name == null) throw new ArgumentNullException("name"); + if (name.Length == 0) throw new ArgumentException(null, "name"); + + return Text + (IsNone ? null : "|") + name; + } + } +} diff --git a/Source/External/Fizzler/Parser.cs b/Source/External/Fizzler/Parser.cs new file mode 100644 index 0000000..3af3ed5 --- /dev/null +++ b/Source/External/Fizzler/Parser.cs @@ -0,0 +1,483 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + #region Imports + + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Globalization; + using System.Linq; + + using TokenSpec = Either; + + #endregion + + /// + /// Semantic parser for CSS selector grammar. + /// + public sealed class Parser + { + private readonly Reader _reader; + private readonly ISelectorGenerator _generator; + + private Parser(Reader reader, ISelectorGenerator generator) + { + Debug.Assert(reader != null); + Debug.Assert(generator != null); + _reader = reader; + _generator = generator; + } + + /// + /// Parses a CSS selector group and generates its implementation. + /// + public static TGenerator Parse(string selectors, TGenerator generator) + where TGenerator : ISelectorGenerator + { + return Parse(selectors, generator, g => g); + } + + /// + /// Parses a CSS selector group and generates its implementation. + /// + public static T Parse(string selectors, TGenerator generator, Func resultor) + where TGenerator : ISelectorGenerator + { + if (selectors == null) throw new ArgumentNullException("selectors"); + if (selectors.Length == 0) throw new ArgumentException(null, "selectors"); + + return Parse(Tokener.Tokenize(selectors), generator, resultor); + } + + /// + /// Parses a tokenized stream representing a CSS selector group and + /// generates its implementation. + /// + public static TGenerator Parse(IEnumerable tokens, TGenerator generator) + where TGenerator : ISelectorGenerator + { + return Parse(tokens, generator, g => g); + } + + /// + /// Parses a tokenized stream representing a CSS selector group and + /// generates its implementation. + /// + public static T Parse(IEnumerable tokens, TGenerator generator, Func resultor) + where TGenerator : ISelectorGenerator + { + if (tokens == null) throw new ArgumentNullException("tokens"); + if (resultor == null) throw new ArgumentNullException("resultor"); + + new Parser(new Reader(tokens.GetEnumerator()), generator).Parse(); + return resultor(generator); + } + + private void Parse() + { + _generator.OnInit(); + SelectorGroup(); + _generator.OnClose(); + } + + private void SelectorGroup() + { + //selectors_group + // : selector [ COMMA S* selector ]* + // ; + + Selector(); + while (TryRead(ToTokenSpec(Token.Comma())) != null) + { + TryRead(ToTokenSpec(TokenKind.WhiteSpace)); + Selector(); + } + + Read(ToTokenSpec(TokenKind.Eoi)); + } + + private void Selector() + { + _generator.OnSelector(); + + //selector + // : simple_selector_sequence [ combinator simple_selector_sequence ]* + // ; + + SimpleSelectorSequence(); + while (TryCombinator()) + SimpleSelectorSequence(); + } + + private bool TryCombinator() + { + //combinator + // /* combinators can be surrounded by whitespace */ + // : PLUS S* | GREATER S* | TILDE S* | S+ + // ; + + var token = TryRead(ToTokenSpec(TokenKind.Plus), ToTokenSpec(TokenKind.Greater), ToTokenSpec(TokenKind.Tilde), ToTokenSpec(TokenKind.WhiteSpace)); + + if (token == null) + return false; + + if (token.Value.Kind == TokenKind.WhiteSpace) + { + _generator.Descendant(); + } + else + { + switch (token.Value.Kind) + { + case TokenKind.Tilde: _generator.GeneralSibling(); break; + case TokenKind.Greater: _generator.Child(); break; + case TokenKind.Plus: _generator.Adjacent(); break; + } + + TryRead(ToTokenSpec(TokenKind.WhiteSpace)); + } + + return true; + } + + private void SimpleSelectorSequence() + { + //simple_selector_sequence + // : [ type_selector | universal ] + // [ HASH | class | attrib | pseudo | negation ]* + // | [ HASH | class | attrib | pseudo | negation ]+ + // ; + + var named = false; + for (var modifiers = 0; ; modifiers++) + { + var token = TryRead(ToTokenSpec(TokenKind.Hash), ToTokenSpec(Token.Dot()), ToTokenSpec(Token.LeftBracket()), ToTokenSpec(Token.Colon())); + + if (token == null) + { + if (named || modifiers > 0) + break; + TypeSelectorOrUniversal(); + named = true; + } + else + { + if (modifiers == 0 && !named) + _generator.Universal(NamespacePrefix.None); // implied + + if (token.Value.Kind == TokenKind.Hash) + { + _generator.Id(token.Value.Text); + } + else + { + Unread(token.Value); + switch (token.Value.Text[0]) + { + case '.': Class(); break; + case '[': Attrib(); break; + case ':': Pseudo(); break; + default: throw new Exception("Internal error."); + } + } + } + } + } + + private void Pseudo() + { + //pseudo + // /* '::' starts a pseudo-element, ':' a pseudo-class */ + // /* Exceptions: :first-line, :first-letter, :before and :after. */ + // /* Note that pseudo-elements are restricted to one per selector and */ + // /* occur only in the last simple_selector_sequence. */ + // : ':' ':'? [ IDENT | functional_pseudo ] + // ; + + PseudoClass(); // We do pseudo-class only for now + } + + private void PseudoClass() + { + //pseudo + // : ':' [ IDENT | functional_pseudo ] + // ; + + Read(ToTokenSpec(Token.Colon())); + if (!TryFunctionalPseudo()) + { + var clazz = Read(ToTokenSpec(TokenKind.Ident)).Text; + switch (clazz) + { + case "first-child": _generator.FirstChild(); break; + case "last-child": _generator.LastChild(); break; + case "only-child": _generator.OnlyChild(); break; + case "empty": _generator.Empty(); break; + default: + { + throw new FormatException(string.Format( + "Unknown pseudo-class '{0}'. Use either first-child, last-child, only-child or empty.", clazz)); + } + } + } + } + + private bool TryFunctionalPseudo() + { + //functional_pseudo + // : FUNCTION S* expression ')' + // ; + + var token = TryRead(ToTokenSpec(TokenKind.Function)); + if (token == null) + return false; + + TryRead(ToTokenSpec(TokenKind.WhiteSpace)); + + var func = token.Value.Text; + switch (func) + { + case "nth-child": Nth(); break; + case "nth-last-child": NthLast(); break; + default: + { + throw new FormatException(string.Format( + "Unknown functional pseudo '{0}'. Only nth-child and nth-last-child are supported.", func)); + } + } + + Read(ToTokenSpec(Token.RightParenthesis())); + return true; + } + + private void Nth() + { + //nth + // : S* [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? | + // ['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S* + // ; + + // TODO Add support for the full syntax + // At present, only INTEGER is allowed + + _generator.NthChild(1, NthB()); + } + + private void NthLast() + { + //nth + // : S* [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]? | + // ['-'|'+']? INTEGER | {O}{D}{D} | {E}{V}{E}{N} ] S* + // ; + + // TODO Add support for the full syntax + // At present, only INTEGER is allowed + + _generator.NthLastChild(1, NthB()); + } + + private int NthB() + { + return int.Parse(Read(ToTokenSpec(TokenKind.Integer)).Text, CultureInfo.InvariantCulture); + } + + private void Attrib() + { + //attrib + // : '[' S* [ namespace_prefix ]? IDENT S* + // [ [ PREFIXMATCH | + // SUFFIXMATCH | + // SUBSTRINGMATCH | + // '=' | + // INCLUDES | + // DASHMATCH ] S* [ IDENT | STRING ] S* + // ]? ']' + // ; + + Read(ToTokenSpec(Token.LeftBracket())); + var prefix = TryNamespacePrefix() ?? NamespacePrefix.None; + var name = Read(ToTokenSpec(TokenKind.Ident)).Text; + + var hasValue = false; + while (true) + { + var op = TryRead( + ToTokenSpec(Token.Equals()), + ToTokenSpec(TokenKind.Includes), + ToTokenSpec(TokenKind.DashMatch), + ToTokenSpec(TokenKind.PrefixMatch), + ToTokenSpec(TokenKind.SuffixMatch), + ToTokenSpec(TokenKind.SubstringMatch)); + + if (op == null) + break; + + hasValue = true; + var value = Read(ToTokenSpec(TokenKind.String), ToTokenSpec(TokenKind.Ident)).Text; + + if (op.Value == Token.Equals()) + { + _generator.AttributeExact(prefix, name, value); + } + else + { + switch (op.Value.Kind) + { + case TokenKind.Includes: _generator.AttributeIncludes(prefix, name, value); break; + case TokenKind.DashMatch: _generator.AttributeDashMatch(prefix, name, value); break; + case TokenKind.PrefixMatch: _generator.AttributePrefixMatch(prefix, name, value); break; + case TokenKind.SuffixMatch: _generator.AttributeSuffixMatch(prefix, name, value); break; + case TokenKind.SubstringMatch: _generator.AttributeSubstring(prefix, name, value); break; + } + } + } + + if (!hasValue) + _generator.AttributeExists(prefix, name); + + Read(ToTokenSpec(Token.RightBracket())); + } + + private void Class() + { + //class + // : '.' IDENT + // ; + + Read(ToTokenSpec(Token.Dot())); + _generator.Class(Read(ToTokenSpec(TokenKind.Ident)).Text); + } + + private NamespacePrefix? TryNamespacePrefix() + { + //namespace_prefix + // : [ IDENT | '*' ]? '|' + // ; + + var pipe = Token.Pipe(); + var token = TryRead(ToTokenSpec(TokenKind.Ident), ToTokenSpec(Token.Star()), ToTokenSpec(pipe)); + + if (token == null) + return null; + + if (token.Value == pipe) + return NamespacePrefix.Empty; + + var prefix = token.Value; + if (TryRead(ToTokenSpec(pipe)) == null) + { + Unread(prefix); + return null; + } + + return prefix.Kind == TokenKind.Ident + ? new NamespacePrefix(prefix.Text) + : NamespacePrefix.Any; + } + + private void TypeSelectorOrUniversal() + { + //type_selector + // : [ namespace_prefix ]? element_name + // ; + //element_name + // : IDENT + // ; + //universal + // : [ namespace_prefix ]? '*' + // ; + + var prefix = TryNamespacePrefix() ?? NamespacePrefix.None; + var token = Read(ToTokenSpec(TokenKind.Ident), ToTokenSpec(Token.Star())); + if (token.Kind == TokenKind.Ident) + _generator.Type(prefix, token.Text); + else + _generator.Universal(prefix); + } + + private Token Peek() + { + return _reader.Peek(); + } + + private Token Read(TokenSpec spec) + { + var token = TryRead(spec); + if (token == null) + { + throw new FormatException( + string.Format(@"Unexpected token {{{0}}} where {{{1}}} was expected.", + Peek().Kind, spec)); + } + return token.Value; + } + + private Token Read(params TokenSpec[] specs) + { + var token = TryRead(specs); + if (token == null) + { + throw new FormatException(string.Format( + @"Unexpected token {{{0}}} where one of [{1}] was expected.", + Peek().Kind, string.Join(", ", specs.Select(k => k.ToString()).ToArray()))); + } + return token.Value; + } + + private Token? TryRead(params TokenSpec[] specs) + { + foreach (var kind in specs) + { + var token = TryRead(kind); + if (token != null) + return token; + } + return null; + } + + private Token? TryRead(TokenSpec spec) + { + var token = Peek(); + if (!spec.Fold(a => a == token.Kind, b => b == token)) + return null; + _reader.Read(); + return token; + } + + private void Unread(Token token) + { + _reader.Unread(token); + } + + private static TokenSpec ToTokenSpec(TokenKind kind) + { + return TokenSpec.A(kind); + } + + private static TokenSpec ToTokenSpec(Token token) + { + return TokenSpec.B(token); + } + } +} diff --git a/Source/External/Fizzler/Reader.cs b/Source/External/Fizzler/Reader.cs new file mode 100644 index 0000000..ace8b6c --- /dev/null +++ b/Source/External/Fizzler/Reader.cs @@ -0,0 +1,175 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + #region Imports + + using System; + using System.Collections; + using System.Collections.Generic; + + #endregion + + /// + /// Adds reading semantics to a base with the + /// option to un-read and insert new elements while consuming the source. + /// + public sealed class Reader : IDisposable, IEnumerable + { + private IEnumerator _enumerator; + private Stack _buffer; + + /// + /// Initialize a new with a base + /// object. + /// + public Reader(IEnumerable e) : + this(CheckNonNull(e).GetEnumerator()) { } + + private static IEnumerable CheckNonNull(IEnumerable e) + { + if (e == null) throw new ArgumentNullException("e"); + return e; + } + + /// + /// Initialize a new with a base + /// object. + /// + public Reader(IEnumerator e) + { + if(e == null) throw new ArgumentNullException("e"); + _enumerator = e; + _buffer = new Stack(); + RealRead(); + } + + /// + /// Indicates whether there is, at least, one value waiting to be read or not. + /// + public bool HasMore + { + get + { + EnsureAlive(); + return _buffer.Count > 0; + } + } + + /// + /// Pushes back a new value that will be returned on the next read. + /// + public void Unread(T value) + { + EnsureAlive(); + _buffer.Push(value); + } + + /// + /// Reads and returns the next value. + /// + public T Read() + { + if (!HasMore) + throw new InvalidOperationException(); + + var value = _buffer.Pop(); + + if (_buffer.Count == 0) + RealRead(); + + return value; + } + + /// + /// Peeks the next value waiting to be read. + /// + /// + /// Thrown if there is no value waiting to be read. + /// + public T Peek() + { + if (!HasMore) + throw new InvalidOperationException(); + + return _buffer.Peek(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return GetEnumerator(); + } + + /// + /// Returns an enumerator that iterates through the remaining + /// values to be read. + /// + public IEnumerator GetEnumerator() + { + EnsureAlive(); + return GetEnumeratorImpl(); + } + + private IEnumerator GetEnumeratorImpl() + { + while (HasMore) + yield return Read(); + } + + private void RealRead() + { + EnsureAlive(); + + if (_enumerator.MoveNext()) + Unread(_enumerator.Current); + } + + /// + /// Disposes the enumerator used to initialize this object + /// if that enumerator supports . + /// + public void Close() + { + Dispose(); + } + + void IDisposable.Dispose() + { + Dispose(); + } + + void Dispose() + { + if(_enumerator == null) + return; + _enumerator.Dispose(); + _enumerator = null; + _buffer = null; + } + + private void EnsureAlive() + { + if (_enumerator == null) + throw new ObjectDisposedException(GetType().Name); + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/Selector.cs b/Source/External/Fizzler/Selector.cs new file mode 100644 index 0000000..ac7d85c --- /dev/null +++ b/Source/External/Fizzler/Selector.cs @@ -0,0 +1,30 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + using System.Collections.Generic; + + /// + /// Represents a selector implementation over an arbitrary type of elements. + /// + public delegate IEnumerable Selector(IEnumerable elements); +} \ No newline at end of file diff --git a/Source/External/Fizzler/SelectorGenerator.cs b/Source/External/Fizzler/SelectorGenerator.cs new file mode 100644 index 0000000..1f3d177 --- /dev/null +++ b/Source/External/Fizzler/SelectorGenerator.cs @@ -0,0 +1,341 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + #region Imports + + using System; + using System.Collections.Generic; + using System.Linq; + + #endregion + + /// + /// A selector generator implementation for an arbitrary document/element system. + /// + public class SelectorGenerator : ISelectorGenerator + { + private readonly IEqualityComparer _equalityComparer; + private readonly Stack> _selectors; + + /// + /// Initializes a new instance of this object with an instance + /// of and the default equality + /// comparer that is used for determining if two elements are equal. + /// + public SelectorGenerator(IElementOps ops) : this(ops, null) {} + + /// + /// Initializes a new instance of this object with an instance + /// of and an equality comparer + /// used for determining if two elements are equal. + /// + public SelectorGenerator(IElementOps ops, IEqualityComparer equalityComparer) + { + if(ops == null) throw new ArgumentNullException("ops"); + Ops = ops; + _equalityComparer = equalityComparer ?? EqualityComparer.Default; + _selectors = new Stack>(); + } + + /// + /// Gets the selector implementation. + /// + /// + /// If the generation is not complete, this property returns the + /// last generated selector. + /// + public Selector Selector { get; private set; } + + /// + /// Gets the instance that this object + /// was initialized with. + /// + public IElementOps Ops { get; private set; } + + /// + /// Returns the collection of selector implementations representing + /// a group. + /// + /// + /// If the generation is not complete, this method return the + /// selectors generated so far in a group. + /// + public IEnumerable> GetSelectors() + { + var selectors = _selectors; + var top = Selector; + return top == null + ? selectors.Select(s => s) + : selectors.Concat(Enumerable.Repeat(top, 1)); + } + + /// + /// Adds a generated selector. + /// + protected void Add(Selector selector) + { + if(selector == null) throw new ArgumentNullException("selector"); + + var top = Selector; + Selector = top == null ? selector : (elements => selector(top(elements))); + } + + /// + /// Delimits the initialization of a generation. + /// + public virtual void OnInit() + { + _selectors.Clear(); + Selector = null; + } + + /// + /// Delimits a selector generation in a group of selectors. + /// + public virtual void OnSelector() + { + if (Selector != null) + _selectors.Push(Selector); + Selector = null; + } + + /// + /// Delimits the closing/conclusion of a generation. + /// + public virtual void OnClose() + { + var sum = GetSelectors().Aggregate((a, b) => (elements => a(elements).Concat(b(elements)))); + var normalize = Ops.Descendant(); + Selector = elements => sum(normalize(elements)).Distinct(_equalityComparer); + _selectors.Clear(); + } + + /// + /// Generates a ID selector, + /// which represents an element instance that has an identifier that + /// matches the identifier in the ID selector. + /// + public virtual void Id(string id) + { + Add(Ops.Id(id)); + } + + /// + /// Generates a class selector, + /// which is an alternative when + /// representing the class attribute. + /// + public virtual void Class(string clazz) + { + Add(Ops.Class(clazz)); + } + + /// + /// Generates a type selector, + /// which represents an instance of the element type in the document tree. + /// + public virtual void Type(NamespacePrefix prefix, string type) + { + Add(Ops.Type(prefix, type)); + } + + /// + /// Generates a universal selector, + /// any single element in the document tree in any namespace + /// (including those without a namespace) if no default namespace + /// has been specified for selectors. + /// + public virtual void Universal(NamespacePrefix prefix) + { + Add(Ops.Universal(prefix)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// whatever the values of the attribute. + /// + public virtual void AttributeExists(NamespacePrefix prefix, string name) + { + Add(Ops.AttributeExists(prefix, name)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// and whose value is exactly . + /// + public virtual void AttributeExact(NamespacePrefix prefix, string name, string value) + { + Add(Ops.AttributeExact(prefix, name, value)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute + /// and whose value is a whitespace-separated list of words, one of + /// which is exactly . + /// + public virtual void AttributeIncludes(NamespacePrefix prefix, string name, string value) + { + Add(Ops.AttributeIncludes(prefix, name, value)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the given attribute , + /// its value either being exactly or beginning + /// with immediately followed by "-" (U+002D). + /// + public virtual void AttributeDashMatch(NamespacePrefix prefix, string name, string value) + { + Add(Ops.AttributeDashMatch(prefix, name, value)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value begins with the prefix . + /// + public void AttributePrefixMatch(NamespacePrefix prefix, string name, string value) + { + Add(Ops.AttributePrefixMatch(prefix, name, value)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value ends with the suffix . + /// + public void AttributeSuffixMatch(NamespacePrefix prefix, string name, string value) + { + Add(Ops.AttributeSuffixMatch(prefix, name, value)); + } + + /// + /// Generates an attribute selector + /// that represents an element with the attribute + /// whose value contains at least one instance of the substring . + /// + public void AttributeSubstring(NamespacePrefix prefix, string name, string value) + { + Add(Ops.AttributeSubstring(prefix, name, value)); + } + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the first child of some other element. + /// + public virtual void FirstChild() + { + Add(Ops.FirstChild()); + } + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the last child of some other element. + /// + public virtual void LastChild() + { + Add(Ops.LastChild()); + } + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the N-th child of some other element. + /// + public virtual void NthChild(int a, int b) + { + Add(Ops.NthChild(a, b)); + } + + /// + /// Generates a pseudo-class selector, + /// which represents an element that has a parent element and whose parent + /// element has no other element children. + /// + public virtual void OnlyChild() + { + Add(Ops.OnlyChild()); + } + + /// + /// Generates a pseudo-class selector, + /// which represents an element that has no children at all. + /// + public virtual void Empty() + { + Add(Ops.Empty()); + } + + /// + /// Generates a combinator, + /// which represents a childhood relationship between two elements. + /// + public virtual void Child() + { + Add(Ops.Child()); + } + + /// + /// Generates a combinator, + /// which represents a relationship between two elements where one element is an + /// arbitrary descendant of some ancestor element. + /// + public virtual void Descendant() + { + Add(Ops.Descendant()); + } + + /// + /// Generates a combinator, + /// which represents elements that share the same parent in the document tree and + /// where the first element immediately precedes the second element. + /// + public virtual void Adjacent() + { + Add(Ops.Adjacent()); + } + + /// + /// Generates a combinator, + /// which separates two sequences of simple selectors. The elements represented + /// by the two sequences share the same parent in the document tree and the + /// element represented by the first sequence precedes (not necessarily + /// immediately) the element represented by the second one. + /// + public virtual void GeneralSibling() + { + Add(Ops.GeneralSibling()); + } + + /// + /// Generates a pseudo-class selector, + /// which represents an element that is the N-th child from bottom up of some other element. + /// + public void NthLastChild(int a, int b) + { + Add(Ops.NthLastChild(a, b)); + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/SelectorGeneratorTee.cs b/Source/External/Fizzler/SelectorGeneratorTee.cs new file mode 100644 index 0000000..c1485e7 --- /dev/null +++ b/Source/External/Fizzler/SelectorGeneratorTee.cs @@ -0,0 +1,273 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + using System; + + /// + /// An implementation that delegates + /// to two other objects, which + /// can be useful for doing work in a single pass. + /// + public sealed class SelectorGeneratorTee : ISelectorGenerator + { + /// + /// Gets the first generator used to initialize this generator. + /// + public ISelectorGenerator Primary { get; private set; } + + /// + /// Gets the second generator used to initialize this generator. + /// + public ISelectorGenerator Secondary { get; private set; } + + /// + /// Initializes a new instance of + /// with the two other objects + /// it delegates to. + /// + public SelectorGeneratorTee(ISelectorGenerator primary, ISelectorGenerator secondary) + { + if (primary == null) throw new ArgumentNullException("primary"); + if (secondary == null) throw new ArgumentNullException("secondary"); + + Primary = primary; + Secondary = secondary; + } + + /// + /// Delegates to then generator. + /// + public void OnInit() + { + Primary.OnInit(); + Secondary.OnInit(); + } + + /// + /// Delegates to then generator. + /// + public void OnClose() + { + Primary.OnClose(); + Secondary.OnClose(); + } + + /// + /// Delegates to then generator. + /// + public void OnSelector() + { + Primary.OnSelector(); + Secondary.OnSelector(); + } + + /// + /// Delegates to then generator. + /// + public void Type(NamespacePrefix prefix, string type) + { + Primary.Type(prefix, type); + Secondary.Type(prefix, type); + } + + /// + /// Delegates to then generator. + /// + public void Universal(NamespacePrefix prefix) + { + Primary.Universal(prefix); + Secondary.Universal(prefix); + } + + /// + /// Delegates to then generator. + /// + public void Id(string id) + { + Primary.Id(id); + Secondary.Id(id); + } + + /// + /// Delegates to then generator. + /// + public void Class(string clazz) + { + Primary.Class(clazz); + Secondary.Class(clazz); + } + + /// + /// Delegates to then generator. + /// + public void AttributeExists(NamespacePrefix prefix, string name) + { + Primary.AttributeExists(prefix, name); + Secondary.AttributeExists(prefix, name); + } + + /// + /// Delegates to then generator. + /// + public void AttributeExact(NamespacePrefix prefix, string name, string value) + { + Primary.AttributeExact(prefix, name, value); + Secondary.AttributeExact(prefix, name, value); + } + + /// + /// Delegates to then generator. + /// + public void AttributeIncludes(NamespacePrefix prefix, string name, string value) + { + Primary.AttributeIncludes(prefix, name, value); + Secondary.AttributeIncludes(prefix, name, value); + } + + /// + /// Delegates to then generator. + /// + public void AttributeDashMatch(NamespacePrefix prefix, string name, string value) + { + Primary.AttributeDashMatch(prefix, name, value); + Secondary.AttributeDashMatch(prefix, name, value); + } + + /// + /// Delegates to then generator. + /// + public void AttributePrefixMatch(NamespacePrefix prefix, string name, string value) + { + Primary.AttributePrefixMatch(prefix, name, value); + Secondary.AttributePrefixMatch(prefix, name, value); + } + + /// + /// Delegates to then generator. + /// + public void AttributeSuffixMatch(NamespacePrefix prefix, string name, string value) + { + Primary.AttributeSuffixMatch(prefix, name, value); + Secondary.AttributeSuffixMatch(prefix, name, value); + } + + /// + /// Delegates to then generator. + /// + public void AttributeSubstring(NamespacePrefix prefix, string name, string value) + { + Primary.AttributeSubstring(prefix, name, value); + Secondary.AttributeSubstring(prefix, name, value); + } + + /// + /// Delegates to then generator. + /// + public void FirstChild() + { + Primary.FirstChild(); + Secondary.FirstChild(); + } + + /// + /// Delegates to then generator. + /// + public void LastChild() + { + Primary.LastChild(); + Secondary.LastChild(); + } + + /// + /// Delegates to then generator. + /// + public void NthChild(int a, int b) + { + Primary.NthChild(a, b); + Secondary.NthChild(a, b); + } + + /// + /// Delegates to then generator. + /// + public void OnlyChild() + { + Primary.OnlyChild(); + Secondary.OnlyChild(); + } + + /// + /// Delegates to then generator. + /// + public void Empty() + { + Primary.Empty(); + Secondary.Empty(); + } + + /// + /// Delegates to then generator. + /// + public void Child() + { + Primary.Child(); + Secondary.Child(); + } + + /// + /// Delegates to then generator. + /// + public void Descendant() + { + Primary.Descendant(); + Secondary.Descendant(); + } + + /// + /// Delegates to then generator. + /// + public void Adjacent() + { + Primary.Adjacent(); + Secondary.Adjacent(); + } + + /// + /// Delegates to then generator. + /// + public void GeneralSibling() + { + Primary.GeneralSibling(); + Secondary.GeneralSibling(); + } + + /// + /// Delegates to then generator. + /// + public void NthLastChild(int a, int b) + { + Primary.NthLastChild(a, b); + Secondary.NthLastChild(a, b); + } + } +} diff --git a/Source/External/Fizzler/SelectorsCachingCompiler.cs b/Source/External/Fizzler/SelectorsCachingCompiler.cs new file mode 100644 index 0000000..f910dac --- /dev/null +++ b/Source/External/Fizzler/SelectorsCachingCompiler.cs @@ -0,0 +1,78 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + #region Imports + + using System; + using System.Collections.Generic; + using System.Diagnostics; + + #endregion + + /// + /// Implementation for a selectors compiler that supports caching. + /// + /// + /// This class is primarily targeted for developers of selection + /// over an arbitrary document model. + /// + public static class SelectorsCachingCompiler + { + /// + /// Creates a caching selectors compiler on top on an existing compiler. + /// + public static Func Create(Func compiler) + { + return Create(compiler, null); + } + + /// + /// Creates a caching selectors compiler on top on an existing compiler. + /// An addition parameter specified a dictionary to use as the cache. + /// + /// + /// If is null then this method uses a + /// the implementation with an + /// ordinally case-insensitive selectors text comparer. + /// + public static Func Create(Func compiler, IDictionary cache) + { + if(compiler == null) throw new ArgumentNullException("compiler"); + return CreateImpl(compiler, cache ?? new Dictionary(StringComparer.OrdinalIgnoreCase)); + } + + private static Func CreateImpl(Func compiler, IDictionary cache) + { + Debug.Assert(compiler != null); + Debug.Assert(cache != null); + + return selector => + { + T compiled; + return cache.TryGetValue(selector, out compiled) + ? compiled + : cache[selector] = compiler(selector); + }; + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/Token.cs b/Source/External/Fizzler/Token.cs new file mode 100644 index 0000000..cc92dbc --- /dev/null +++ b/Source/External/Fizzler/Token.cs @@ -0,0 +1,319 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + using System; + + /// + /// Represent a token and optionally any text associated with it. + /// + public struct Token : IEquatable + { + /// + /// Gets the kind/type/class of the token. + /// + public TokenKind Kind { get; private set; } + + /// + /// Gets text, if any, associated with the token. + /// + public string Text { get; private set; } + + private Token(TokenKind kind) : this(kind, null) {} + + private Token(TokenKind kind, string text) : this() + { + Kind = kind; + Text = text; + } + + /// + /// Creates an end-of-input token. + /// + public static Token Eoi() + { + return new Token(TokenKind.Eoi); + } + + private static readonly Token _star = Char('*'); + private static readonly Token _dot = Char('.'); + private static readonly Token _colon = Char(':'); + private static readonly Token _comma = Char(','); + private static readonly Token _rightParenthesis = Char(')'); + private static readonly Token _equals = Char('='); + private static readonly Token _pipe = Char('|'); + private static readonly Token _leftBracket = Char('['); + private static readonly Token _rightBracket = Char(']'); + + /// + /// Creates a star token. + /// + public static Token Star() + { + return _star; + } + + /// + /// Creates a dot token. + /// + public static Token Dot() + { + return _dot; + } + + /// + /// Creates a colon token. + /// + public static Token Colon() + { + return _colon; + } + + /// + /// Creates a comma token. + /// + public static Token Comma() + { + return _comma; + } + + /// + /// Creates a right parenthesis token. + /// + public static Token RightParenthesis() + { + return _rightParenthesis; + } + + /// + /// Creates an equals token. + /// + public static Token Equals() + { + return _equals; + } + + /// + /// Creates a left bracket token. + /// + public static Token LeftBracket() + { + return _leftBracket; + } + + /// + /// Creates a right bracket token. + /// + public static Token RightBracket() + { + return _rightBracket; + } + + /// + /// Creates a pipe (vertical line) token. + /// + public static Token Pipe() + { + return _pipe; + } + + /// + /// Creates a plus token. + /// + public static Token Plus() + { + return new Token(TokenKind.Plus); + } + + /// + /// Creates a greater token. + /// + public static Token Greater() + { + return new Token(TokenKind.Greater); + } + + /// + /// Creates an includes token. + /// + public static Token Includes() + { + return new Token(TokenKind.Includes); + } + + /// + /// Creates a dash-match token. + /// + public static Token DashMatch() + { + return new Token(TokenKind.DashMatch); + } + + /// + /// Creates a prefix-match token. + /// + public static Token PrefixMatch() + { + return new Token(TokenKind.PrefixMatch); + } + + /// + /// Creates a suffix-match token. + /// + public static Token SuffixMatch() + { + return new Token(TokenKind.SuffixMatch); + } + + /// + /// Creates a substring-match token. + /// + public static Token SubstringMatch() + { + return new Token(TokenKind.SubstringMatch); + } + + /// + /// Creates a general sibling token. + /// + public static Token Tilde() + { + return new Token(TokenKind.Tilde); + } + + /// + /// Creates an identifier token. + /// + public static Token Ident(string text) + { + ValidateTextArgument(text); + return new Token(TokenKind.Ident, text); + } + + /// + /// Creates an integer token. + /// + public static Token Integer(string text) + { + ValidateTextArgument(text); + return new Token(TokenKind.Integer, text); + } + + /// + /// Creates a hash-name token. + /// + public static Token Hash(string text) + { + ValidateTextArgument(text); + return new Token(TokenKind.Hash, text); + } + + /// + /// Creates a white-space token. + /// + public static Token WhiteSpace(string space) + { + ValidateTextArgument(space); + return new Token(TokenKind.WhiteSpace, space); + } + + /// + /// Creates a string token. + /// + public static Token String(string text) + { + return new Token(TokenKind.String, text ?? string.Empty); + } + + /// + /// Creates a function token. + /// + public static Token Function(string text) + { + ValidateTextArgument(text); + return new Token(TokenKind.Function, text); + } + + /// + /// Creates an arbitrary character token. + /// + public static Token Char(char ch) + { + return new Token(TokenKind.Char, ch.ToString()); + } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + public override bool Equals(object obj) + { + return obj != null && obj is Token && Equals((Token) obj); + } + + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode() + { + return Text == null ? Kind.GetHashCode() : Kind.GetHashCode() ^ Text.GetHashCode(); + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + public bool Equals(Token other) + { + return Kind == other.Kind && Text == other.Text; + } + + /// + /// Gets a string representation of the token. + /// + public override string ToString() + { + return Text == null ? Kind.ToString() : Kind + ": " + Text; + } + /// + /// Performs a logical comparison of the two tokens to determine + /// whether they are equal. + /// + public static bool operator==(Token a, Token b) + { + return a.Equals(b); + } + + /// + /// Performs a logical comparison of the two tokens to determine + /// whether they are inequal. + /// + public static bool operator !=(Token a, Token b) + { + return !a.Equals(b); + } + + private static void ValidateTextArgument(string text) + { + if (text == null) throw new ArgumentNullException("text"); + if (text.Length == 0) throw new ArgumentException(null, "text"); + } + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/TokenKind.cs b/Source/External/Fizzler/TokenKind.cs new file mode 100644 index 0000000..ef0d8b9 --- /dev/null +++ b/Source/External/Fizzler/TokenKind.cs @@ -0,0 +1,109 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + /// + /// Represents the classification of a token. + /// + public enum TokenKind + { + /// + /// Represents end of input/file/stream + /// + Eoi, + + /// + /// Represents {ident} + /// + Ident, + + /// + /// Represents "#" {name} + /// + Hash, + + /// + /// Represents "~=" + /// + Includes, + + /// + /// Represents "|=" + /// + DashMatch, + + /// + /// Represents "^=" + /// + PrefixMatch, + + /// + /// Represents "$=" + /// + SuffixMatch, + + /// + /// Represents "*=" + /// + SubstringMatch, + + /// + /// Represents {string} + /// + String, + + /// + /// Represents S* "+" + /// + Plus, + + /// + /// Represents S* ">" + /// + Greater, + + /// + /// Represents [ \t\r\n\f]+ + /// + WhiteSpace, + + /// + /// Represents {ident} ")" + /// + Function, + + /// + /// Represents [0-9]+ + /// + Integer, + + /// + /// Represents S* "~" + /// + Tilde, + + /// + /// Represents an arbitrary character + /// + Char, + } +} \ No newline at end of file diff --git a/Source/External/Fizzler/Tokener.cs b/Source/External/Fizzler/Tokener.cs new file mode 100644 index 0000000..c2edc00 --- /dev/null +++ b/Source/External/Fizzler/Tokener.cs @@ -0,0 +1,325 @@ +#region Copyright and License +// +// Fizzler - CSS Selector Engine for Microsoft .NET Framework +// Copyright (c) 2009 Atif Aziz, Colin Ramsay. All rights reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +#endregion + +namespace Fizzler +{ + #region Imports + + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Text; + + #endregion + + /// + /// Lexer for tokens in CSS selector grammar. + /// + public static class Tokener + { + /// + /// Parses tokens from a given text source. + /// + public static IEnumerable Tokenize(TextReader reader) + { + if (reader == null) throw new ArgumentNullException("reader"); + return Tokenize(reader.ReadToEnd()); + } + + /// + /// Parses tokens from a given string. + /// + public static IEnumerable Tokenize(string input) + { + var reader = new Reader(input ?? string.Empty); + + while (reader.Read() != null) + { + var ch = reader.Value; + + // + // Identifier or function + // + if (ch == '-' || IsNmStart(ch)) + { + reader.Mark(); + if (reader.Value == '-') + { + if (!IsNmStart(reader.Read())) + throw new FormatException(string.Format("Invalid identifier at position {0}.", reader.Position)); + } + while (IsNmChar(reader.Read())) { /* NOP */ } + if (reader.Value == '(') + yield return Token.Function(reader.Marked()); + else + yield return Token.Ident(reader.MarkedWithUnread()); + } + // + // Integer + // + else if (IsDigit(ch)) + { + reader.Mark(); + do { /* NOP */ } while (IsDigit(reader.Read())); + yield return Token.Integer(reader.MarkedWithUnread()); + } + // + // Whitespace, including that which is coupled with some punctuation + // + else if (IsS(ch)) + { + var space = ParseWhiteSpace(reader); + ch = reader.Read(); + switch (ch) + { + case ',': yield return Token.Comma(); break; + case '+': yield return Token.Plus(); break; + case '>': yield return Token.Greater(); break; + case '~': yield return Token.Tilde(); break; + + default: + reader.Unread(); + yield return Token.WhiteSpace(space); + break; + } + } + else switch(ch) + { + case '*': // * or *= + case '~': // ~ or ~= + case '|': // | or |= + { + if (reader.Read() == '=') + { + yield return ch == '*' + ? Token.SubstringMatch() + : ch == '|' ? Token.DashMatch() + : Token.Includes(); + } + else + { + reader.Unread(); + yield return ch == '*' || ch == '|' + ? Token.Char(ch.Value) + : Token.Tilde(); + } + break; + } + case '^': // ^= + case '$': // $= + { + if (reader.Read() != '=') + throw new FormatException(string.Format("Invalid character at position {0}.", reader.Position)); + + switch (ch) + { + case '^': yield return Token.PrefixMatch(); break; + case '$': yield return Token.SuffixMatch(); break; + } + break; + } + // + // Single-character punctuation + // + case '.': yield return Token.Dot(); break; + case ':': yield return Token.Colon(); break; + case ',': yield return Token.Comma(); break; + case '=': yield return Token.Equals(); break; + case '[': yield return Token.LeftBracket(); break; + case ']': yield return Token.RightBracket(); break; + case ')': yield return Token.RightParenthesis(); break; + case '+': yield return Token.Plus(); break; + case '>': yield return Token.Greater(); break; + case '#': yield return Token.Hash(ParseHash(reader)); break; + // + // Single- or double-quoted strings + // + case '\"': + case '\'': yield return ParseString(reader, /* quote */ ch.Value); break; + + default: + throw new FormatException(string.Format("Invalid character at position {0}.", reader.Position)); + } + } + yield return Token.Eoi(); + } + + private static string ParseWhiteSpace(Reader reader) + { + Debug.Assert(reader != null); + + reader.Mark(); + while (IsS(reader.Read())) { /* NOP */ } + return reader.MarkedWithUnread(); + } + + private static string ParseHash(Reader reader) + { + Debug.Assert(reader != null); + + reader.MarkFromNext(); // skipping # + while (IsNmChar(reader.Read())) { /* NOP */ } + var text = reader.MarkedWithUnread(); + if (text.Length == 0) + throw new FormatException(string.Format("Invalid hash at position {0}.", reader.Position)); + return text; + } + + private static Token ParseString(Reader reader, char quote) + { + Debug.Assert(reader != null); + + // + // TODO Support full string syntax! + // + // string {string1}|{string2} + // string1 \"([^\n\r\f\\"]|\\{nl}|{nonascii}|{escape})*\" + // string2 \'([^\n\r\f\\']|\\{nl}|{nonascii}|{escape})*\' + // nonascii [^\0-\177] + // escape {unicode}|\\[^\n\r\f0-9a-f] + // unicode \\[0-9a-f]{1,6}(\r\n|[ \n\r\t\f])? + // + + var strpos = reader.Position; + reader.MarkFromNext(); // skipping quote + + char? ch; + StringBuilder sb = null; + + while ((ch = reader.Read()) != quote) + { + if (ch == null) + throw new FormatException(string.Format("Unterminated string at position {0}.", strpos)); + + if (ch == '\\') + { + ch = reader.Read(); + + // + // NOTE: Only escaping of quote and backslash supported! + // + + if (ch != quote && ch != '\\') + throw new FormatException(string.Format("Invalid escape sequence at position {0} in a string at position {1}.", reader.Position, strpos)); + + if (sb == null) + sb = new StringBuilder(); + + sb.Append(reader.MarkedExceptLast()); + reader.Mark(); + } + } + + var text = reader.Marked(); + + if (sb != null) + text = sb.Append(text).ToString(); + + return Token.String(text); + } + + private static bool IsDigit(char? ch) // [0-9] + { + return ch >= '0' && ch <= '9'; + } + + private static bool IsS(char? ch) // [ \t\r\n\f] + { + return ch == ' ' || ch == '\t' || ch == '\r' || ch == '\n' || ch == '\f'; + } + + private static bool IsNmStart(char? ch) // [_a-z]|{nonascii}|{escape} + { + return ch == '_' + || (ch >= 'a' && ch <= 'z') + || (ch >= 'A' && ch <= 'Z'); + } + + private static bool IsNmChar(char? ch) // [_a-z0-9-]|{nonascii}|{escape} + { + return IsNmStart(ch) || ch == '-' || (ch >= '0' && ch <= '9'); + } + + private sealed class Reader + { + private readonly string _input; + private int _index = -1; + private int _start = -1; + + public Reader(string input) + { + _input = input; + } + + private bool Ready { get { return _index >= 0 && _index < _input.Length; } } + public char? Value { get { return Ready ? _input[_index] : (char?)null; } } + public int Position { get { return _index + 1; } } + + public void Mark() + { + _start = _index; + } + + public void MarkFromNext() + { + _start = _index + 1; + } + + public string Marked() + { + return Marked(0); + } + + public string MarkedExceptLast() + { + return Marked(-1); + } + + private string Marked(int trim) + { + var start = _start; + var count = Math.Min(_input.Length, _index + trim) - start; + return count > 0 + ? _input.Substring(start, count) + : string.Empty; + } + + public char? Read() + { + _index = Position >= _input.Length ? _input.Length : _index + 1; + return Value; + } + + public void Unread() + { + _index = Math.Max(-1, _index - 1); + } + + public string MarkedWithUnread() + { + var text = Marked(); + Unread(); + return text; + } + } + } +} diff --git a/Source/Painting/EnumConverters.cs b/Source/Painting/EnumConverters.cs index 553e39a..75fe257 100644 --- a/Source/Painting/EnumConverters.cs +++ b/Source/Painting/EnumConverters.cs @@ -124,7 +124,7 @@ namespace Svg { public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { - if (value == "small-caps") return SvgFontVariant.smallcaps; + if (value.ToString() == "small-caps") return SvgFontVariant.smallcaps; return base.ConvertFrom(context, culture, value); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) diff --git a/Source/Paths/SvgPathBuilder.cs b/Source/Paths/SvgPathBuilder.cs index 7595c91..740e4f5 100644 --- a/Source/Paths/SvgPathBuilder.cs +++ b/Source/Paths/SvgPathBuilder.cs @@ -223,8 +223,7 @@ namespace Svg var lastSegment = segments.Last; // if the last element is a SvgClosePathSegment the position of the previous element should be used because the position of SvgClosePathSegment is 0,0 - if (lastSegment is SvgClosePathSegment) - lastSegment = segments[segments.Count - 2]; + if (lastSegment is SvgClosePathSegment) lastSegment = segments.Reverse().OfType().First(); if (isRelativeX) { diff --git a/Source/Svg.csproj b/Source/Svg.csproj index 50f91ad..1b00cbb 100644 --- a/Source/Svg.csproj +++ b/Source/Svg.csproj @@ -60,7 +60,7 @@ true - true + false PdbOnly @@ -76,7 +76,7 @@ bin\Release\Svg.XML - True + false svgkey.snk @@ -99,6 +99,8 @@ + + @@ -117,8 +119,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/SvgDocument.cs b/Source/SvgDocument.cs index 025db53..fca6698 100644 --- a/Source/SvgDocument.cs +++ b/Source/SvgDocument.cs @@ -9,6 +9,8 @@ using System.IO; using System.Text; using System.Xml; using System.Linq; +using ExCSS; +using Svg.Css; namespace Svg { @@ -43,7 +45,7 @@ namespace Svg return _idManager; } } - + /// /// Overwrites the current IdManager with a custom implementation. /// Be careful with this: If elements have been inserted into the document before, @@ -113,8 +115,8 @@ namespace Svg { return (this.GetElementById(id) as TSvgElement); } - - /// + + /// /// Opens the document at the specified path and loads the SVG contents. /// /// A containing the path of the file to open. @@ -167,6 +169,27 @@ namespace Svg return Open(stream, null); } + + /// + /// Attempts to create an SVG document from the specified string data. + /// + /// The SVG data. + public static T FromSvg(string svg) where T : SvgDocument, new() + { + if (string.IsNullOrEmpty(svg)) + { + throw new ArgumentNullException("svg"); + } + + using (var strReader = new System.IO.StringReader(svg)) + { + var reader = new SvgTextReader(strReader, null); + reader.XmlResolver = new SvgDtdResolver(); + reader.WhitespaceHandling = WhitespaceHandling.None; + return Open(reader); + } + } + /// /// Opens an SVG document from the specified and adds the specified entities. /// @@ -180,94 +203,133 @@ namespace Svg throw new ArgumentNullException("stream"); } - //Trace.TraceInformation("Begin Read"); + // Don't close the stream via a dispose: that is the client's job. + var reader = new SvgTextReader(stream, entities); + reader.XmlResolver = new SvgDtdResolver(); + reader.WhitespaceHandling = WhitespaceHandling.None; + return Open(reader); + } - using (var reader = new SvgTextReader(stream, entities)) + private static T Open(XmlReader reader) where T : SvgDocument, new() + { + var elementStack = new Stack(); + bool elementEmpty; + SvgElement element = null; + SvgElement parent; + T svgDocument = null; + + var styles = new List(); + + while (reader.Read()) { - var elementStack = new Stack(); - bool elementEmpty; - SvgElement element = null; - SvgElement parent; - T svgDocument = null; - reader.XmlResolver = new SvgDtdResolver(); - reader.WhitespaceHandling = WhitespaceHandling.None; - - while (reader.Read()) + try { - try + switch (reader.NodeType) { - switch (reader.NodeType) - { - case XmlNodeType.Element: - // Does this element have a value or children - // (Must do this check here before we progress to another node) - elementEmpty = reader.IsEmptyElement; - // Create element - if (elementStack.Count > 0) - { - element = SvgElementFactory.CreateElement(reader, svgDocument); - } - else - { - svgDocument = SvgElementFactory.CreateDocument(reader); - element = svgDocument; - } - - // Add to the parents children - if (elementStack.Count > 0) + case XmlNodeType.Element: + // Does this element have a value or children + // (Must do this check here before we progress to another node) + elementEmpty = reader.IsEmptyElement; + // Create element + if (elementStack.Count > 0) + { + element = SvgElementFactory.CreateElement(reader, svgDocument); + } + else + { + svgDocument = SvgElementFactory.CreateDocument(reader); + element = svgDocument; + } + + // Add to the parents children + if (elementStack.Count > 0) + { + parent = elementStack.Peek(); + if (parent != null && element != null) { - parent = elementStack.Peek(); - if (parent != null && element != null) - { - parent.Children.Add(element); - parent.Nodes.Add(element); - } + parent.Children.Add(element); + parent.Nodes.Add(element); } + } + + // Push element into stack + elementStack.Push(element); + + // Need to process if the element is empty + if (elementEmpty) + { + goto case XmlNodeType.EndElement; + } + + break; + case XmlNodeType.EndElement: + + // Pop the element out of the stack + element = elementStack.Pop(); + + if (element.Nodes.OfType().Any()) + { + element.Content = (from e in element.Nodes select e.Content).Aggregate((p, c) => p + c); + } + else + { + element.Nodes.Clear(); // No sense wasting the space where it isn't needed + } + + var unknown = element as SvgUnknownElement; + if (unknown != null && unknown.ElementName == "style") + { + styles.Add(unknown); + } + break; + case XmlNodeType.CDATA: + case XmlNodeType.Text: + element = elementStack.Peek(); + element.Nodes.Add(new SvgContentNode() { Content = reader.Value }); + break; + case XmlNodeType.EntityReference: + reader.ResolveEntity(); + element = elementStack.Peek(); + element.Nodes.Add(new SvgContentNode() { Content = reader.Value }); + break; + } + } + catch (Exception exc) + { + Trace.TraceError(exc.Message); + } + } - // Push element into stack - elementStack.Push(element); - - // Need to process if the element is empty - if (elementEmpty) - { - goto case XmlNodeType.EndElement; - } - - break; - case XmlNodeType.EndElement: - - // Pop the element out of the stack - element = elementStack.Pop(); + if (styles.Any()) + { + var cssTotal = styles.Select((s) => s.Content).Aggregate((p, c) => p + Environment.NewLine + c); + var cssParser = new Parser(); + var sheet = cssParser.Parse(cssTotal); + IEnumerable elemsToStyle; - if (element.Nodes.OfType().Any()) - { - element.Content = (from e in element.Nodes select e.Content).Aggregate((p, c) => p + c); - } - else - { - element.Nodes.Clear(); // No sense wasting the space where it isn't needed - } - break; - case XmlNodeType.CDATA: - case XmlNodeType.Text: - element = elementStack.Peek(); - element.Nodes.Add(new SvgContentNode() { Content = reader.Value }); - break; - case XmlNodeType.EntityReference: - reader.ResolveEntity(); - element = elementStack.Peek(); - element.Nodes.Add(new SvgContentNode() { Content = reader.Value }); - break; - } - } - catch (Exception exc) + foreach (var rule in sheet.StyleRules) + { + elemsToStyle = svgDocument.QuerySelectorAll(rule.Selector.ToString()); + foreach (var elem in elemsToStyle) { - Trace.TraceError(exc.Message); + foreach (var decl in rule.Declarations) + { + elem.AddStyle(decl.Name, decl.Term.ToString(), rule.Selector.GetSpecificity()); + } } } + } + + FlushStyles(svgDocument); + return svgDocument; + } - //Trace.TraceInformation("End Read"); - return svgDocument; + private static void FlushStyles(SvgElement elem) + { + elem.FlushStyles(); + foreach (var child in elem.Children) + { + FlushStyles(child); } } @@ -339,7 +401,7 @@ namespace Svg var size = GetDimensions(); var bitmap = new Bitmap((int)Math.Ceiling(size.Width), (int)Math.Ceiling(size.Height)); - // bitmap.SetResolution(300, 300); + // bitmap.SetResolution(300, 300); try { Draw(bitmap); @@ -395,7 +457,7 @@ namespace Svg public void Write(string path) { - using(var fs = new FileStream(path, FileMode.Create, FileAccess.Write)) + using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write)) { this.Write(fs); } diff --git a/Source/SvgElement.cs b/Source/SvgElement.cs index f56cf65..594559b 100644 --- a/Source/SvgElement.cs +++ b/Source/SvgElement.cs @@ -44,6 +44,29 @@ namespace Svg private SvgCustomAttributeCollection _customAttributes; private List _nodes = new List(); + + private Dictionary> _styles = new Dictionary>(); + + public void AddStyle(string name, string value, int specificity) + { + SortedDictionary rules; + if (!_styles.TryGetValue(name, out rules)) + { + rules = new SortedDictionary(); + _styles[name] = rules; + } + while (rules.ContainsKey(specificity)) specificity++; + rules[specificity] = value; + } + public void FlushStyles() + { + foreach (var s in _styles) + { + SvgElementFactory.SetPropertyValue(this, s.Key, s.Value.Last().Value, this.OwnerDocument); + } + _styles = null; + } + /// /// Gets the name of the element. /// diff --git a/Source/SvgElementFactory.cs b/Source/SvgElementFactory.cs index cd4d55d..22fe862 100644 --- a/Source/SvgElementFactory.cs +++ b/Source/SvgElementFactory.cs @@ -5,6 +5,7 @@ using System.Xml; using System.ComponentModel; using System.Diagnostics; using System.Linq; +using ExCSS; namespace Svg { @@ -15,11 +16,12 @@ namespace Svg { private static List availableElements; private const string svgNS = "http://www.w3.org/2000/svg"; + private static Parser cssParser = new Parser(); /// /// Gets a list of available types that can be used when creating an . /// - private static List AvailableElements + public static List AvailableElements { get { @@ -43,7 +45,7 @@ namespace Svg /// The containing the node to parse into an . /// The parameter cannot be null. /// The CreateDocument method can only be used to parse root <svg> elements. - public static T CreateDocument(XmlTextReader reader) where T : SvgDocument, new() + public static T CreateDocument(XmlReader reader) where T : SvgDocument, new() { if (reader == null) { @@ -64,7 +66,7 @@ namespace Svg /// The containing the node to parse into a subclass of . /// The that the created element belongs to. /// The and parameters cannot be null. - public static SvgElement CreateElement(XmlTextReader reader, SvgDocument document) + public static SvgElement CreateElement(XmlReader reader, SvgDocument document) { if (reader == null) { @@ -74,7 +76,7 @@ namespace Svg return CreateElement(reader, false, document); } - private static SvgElement CreateElement(XmlTextReader reader, bool fragmentIsDocument, SvgDocument document) where T : SvgDocument, new() + private static SvgElement CreateElement(XmlReader reader, bool fragmentIsDocument, SvgDocument document) where T : SvgDocument, new() { SvgElement createdElement = null; string elementName = reader.LocalName; @@ -118,49 +120,65 @@ namespace Svg return createdElement; } - private static void SetAttributes(SvgElement element, XmlTextReader reader, SvgDocument document) + private static void SetAttributes(SvgElement element, XmlReader reader, SvgDocument document) { //Trace.TraceInformation("Begin SetAttributes"); - string[] styles = null; - string[] style = null; - int i = 0; + //string[] styles = null; + //string[] style = null; + //int i = 0; while (reader.MoveToNextAttribute()) { - // Special treatment for "style" - if (reader.LocalName.Equals("style") && !(element is NonSvgElement)) - { - styles = reader.Value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + //// Special treatment for "style" + //if (reader.LocalName.Equals("style") && !(element is NonSvgElement)) + //{ + // styles = reader.Value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + + // for (i = 0; i < styles.Length; i++) + // { + // if (!styles[i].Contains(":")) + // { + // continue; + // } + + // style = styles[i].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); + // SetPropertyValue(element, style[0].Trim(), style[1].Trim(), document); + // } + + // //defaults for text can come from the document + // if (element.ElementName == "text") + // { + // if (!styles.Contains("font-size") && document.CustomAttributes.ContainsKey("font-size") && document.CustomAttributes["font-size"] != null) + // { + // SetPropertyValue(element, "font-size", document.CustomAttributes["font-size"], document); + // } + // if (!styles.Contains("font-family") && document.CustomAttributes.ContainsKey("font-family") && document.CustomAttributes["font-family"] != null) + // { + // SetPropertyValue(element, "font-family", document.CustomAttributes["font-family"], document); + // } + + // } + // continue; + //} + + //SetPropertyValue(element, reader.LocalName, reader.Value, document); - for (i = 0; i < styles.Length; i++) + if (reader.LocalName.Equals("style") && !(element is NonSvgElement)) + { + var inlineSheet = cssParser.Parse("#a{" + reader.Value + "}"); + foreach (var rule in inlineSheet.StyleRules) { - if (!styles[i].Contains(":")) + foreach (var decl in rule.Declarations) { - continue; + element.AddStyle(decl.Name, decl.Term.ToString(), 1 << 16); } - - style = styles[i].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); - SetPropertyValue(element, style[0].Trim(), style[1].Trim(), document); } - - //defaults for text can come from the document - if (element.ElementName == "text") - { - if (!styles.Contains("font-size") && document.CustomAttributes.ContainsKey("font-size") && document.CustomAttributes["font-size"] != null) - { - SetPropertyValue(element, "font-size", document.CustomAttributes["font-size"], document); - } - if (!styles.Contains("font-family") && document.CustomAttributes.ContainsKey("font-family") && document.CustomAttributes["font-family"] != null) - { - SetPropertyValue(element, "font-family", document.CustomAttributes["font-family"], document); - } - - } - continue; } - - SetPropertyValue(element, reader.LocalName, reader.Value, document); + else + { + element.AddStyle(reader.LocalName, reader.Value, 2 << 16); + } } //Trace.TraceInformation("End SetAttributes"); @@ -169,7 +187,7 @@ namespace Svg private static Dictionary> _propertyDescriptors = new Dictionary>(); private static object syncLock = new object(); - private static void SetPropertyValue(SvgElement element, string attributeName, string attributeValue, SvgDocument document) + internal static void SetPropertyValue(SvgElement element, string attributeName, string attributeValue, SvgDocument document) { var elementType = element.GetType(); diff --git a/Source/SvgTextReader.cs b/Source/SvgTextReader.cs index 114cfd4..41ce58f 100644 --- a/Source/SvgTextReader.cs +++ b/Source/SvgTextReader.cs @@ -22,6 +22,13 @@ namespace Svg this._entities = entities; } + public SvgTextReader(TextReader reader, Dictionary entities) + : base(reader) + { + this.EntityHandling = EntityHandling.ExpandCharEntities; + this._entities = entities; + } + /// /// Gets the text value of the current node. /// -- GitLab From d5c659a5475b66bf754bf3d7162775ad3be0ddaf Mon Sep 17 00:00:00 2001 From: Eric Domke Date: Sun, 3 Aug 2014 21:33:49 -0400 Subject: [PATCH 3/3] Refactoring while working through W3C tests - Adding W3C test cases and a test fixture - Fixed support for CSS stylesheets (particularly when class names are referenced) - Refactoring unit calculations so that percentages and fractions calculate more accurately - SvgImage: - Support PreserveAspectRatio attribute - Support for referencing svg images - Refactored text rendering to use the AttributeCollection inheritance scheme - Initial attempt at 'ex' unit support - Added support for system color names - Changed parsing of entities to support XML entities - Supporting loading of a svg document directly from a XmlDocument with requiring serializing the document as a string first. - ... --- .gitignore | 18 +- Samples/SvgExamples/Workflow.svg | 181 -- Source/Basic Shapes/SvgCircle.cs | 27 +- Source/Basic Shapes/SvgEllipse.cs | 29 +- Source/Basic Shapes/SvgImage.cs | 110 +- Source/Basic Shapes/SvgLine.cs | 27 +- Source/Basic Shapes/SvgPolygon.cs | 57 +- Source/Basic Shapes/SvgPolyline.cs | 46 +- Source/Basic Shapes/SvgRectangle.cs | 141 +- Source/Basic Shapes/SvgVisualElement.cs | 18 +- Source/Basic Shapes/SvgVisualElementStyle.cs | 81 +- Source/Clipping and Masking/SvgClipPath.cs | 4 +- Source/Css/CssQuery.cs | 46 +- .../DataTypes/ISvgSupportsCoordinateUnits.cs | 12 + Source/DataTypes/SvgCoordinateUnits.cs | 8 +- Source/DataTypes/SvgPoint.cs | 4 +- Source/DataTypes/SvgUnit.cs | 162 +- Source/DataTypes/SvgUnitConverter.cs | 2 + Source/Document Structure/SvgFragment.cs | 107 +- Source/Document Structure/SvgGroup.cs | 24 +- Source/Document Structure/SvgSwitch.cs | 12 +- Source/Document Structure/SvgUse.cs | 19 +- Source/Extensibility/SvgForeignObject.cs | 12 +- Source/Filter Effects/SvgFilter.cs | 2 +- Source/Local.testsettings | 10 + Source/Painting/GenericBoundable.cs | 37 + Source/Painting/ISvgStylable.cs | 2 +- Source/Painting/SvgColourConverter.cs | 31 + Source/Painting/SvgColourServer.cs | 17 +- Source/Painting/SvgDeferredPaintServer.cs | 25 +- Source/Painting/SvgGradientServer.cs | 27 +- Source/Painting/SvgGradientStop.cs | 16 +- Source/Painting/SvgLinearGradientServer.cs | 53 +- Source/Painting/SvgMarker.cs | 44 +- Source/Painting/SvgPaintServer.cs | 2 +- Source/Painting/SvgPaintServerFactory.cs | 8 + Source/Painting/SvgPatternServer.cs | 85 +- Source/Painting/SvgRadialGradientServer.cs | 62 +- Source/Paths/SvgPath.cs | 42 +- Source/Properties/AssemblyInfo.cs | 2 + Source/Svg.csproj | 5 + Source/Svg.sln | 53 +- Source/Svg.vsmdi | 6 + Source/SvgAttributeCollection.cs | 17 +- Source/SvgDocument.cs | 43 +- Source/SvgElement.cs | 33 +- Source/SvgElementFactory.cs | 110 +- Source/SvgNodeReader.cs | 157 ++ Source/SvgRenderer.cs | 40 +- Source/SvgTextReader.cs | 18 +- Source/Text/SvgTextBase.cs | 287 ++- Source/TraceAndTestImpact.testsettings | 9 + Source/Transforms/SvgTransformConverter.cs | 3 +- Tests/Svg.UnitTests/CssQueryTest.cs | 104 + .../Svg.UnitTests/Properties/AssemblyInfo.cs | 35 + Tests/Svg.UnitTests/Svg.UnitTests.csproj | 68 + Tests/SvgW3CTestRunner/Program.cs | 21 + .../Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 71 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 30 + .../Properties/Settings.settings | 7 + .../SvgW3CTestRunner/SvgW3CTestRunner.csproj | 91 + Tests/SvgW3CTestRunner/View.Designer.cs | 197 ++ Tests/SvgW3CTestRunner/View.cs | 38 + Tests/SvgW3CTestRunner/View.resx | 120 + Tests/W3CTestSuite/images/20x20.png | Bin 0 -> 1038 bytes .../images/50x50-viewbox-greencircle.svg | 5 + .../W3CTestSuite/images/50x50greencircle.svg | 5 + Tests/W3CTestSuite/images/DisplaceChecker.png | Bin 0 -> 2470 bytes .../W3CTestSuite/images/PngSuite/basi0g01.png | Bin 0 -> 217 bytes .../W3CTestSuite/images/PngSuite/basi0g02.png | Bin 0 -> 154 bytes .../W3CTestSuite/images/PngSuite/basi0g04.png | Bin 0 -> 247 bytes .../W3CTestSuite/images/PngSuite/basi0g08.png | Bin 0 -> 254 bytes .../W3CTestSuite/images/PngSuite/basi0g16.png | Bin 0 -> 299 bytes .../W3CTestSuite/images/PngSuite/basi2c08.png | Bin 0 -> 315 bytes .../W3CTestSuite/images/PngSuite/basi2c16.png | Bin 0 -> 595 bytes .../W3CTestSuite/images/PngSuite/basi3p01.png | Bin 0 -> 132 bytes .../W3CTestSuite/images/PngSuite/basi3p02.png | Bin 0 -> 193 bytes .../W3CTestSuite/images/PngSuite/basi3p04.png | Bin 0 -> 327 bytes .../W3CTestSuite/images/PngSuite/basi3p08.png | Bin 0 -> 1527 bytes .../W3CTestSuite/images/PngSuite/basi4a08.png | Bin 0 -> 214 bytes .../W3CTestSuite/images/PngSuite/basi4a16.png | Bin 0 -> 2855 bytes .../W3CTestSuite/images/PngSuite/basi6a08.png | Bin 0 -> 361 bytes .../W3CTestSuite/images/PngSuite/basi6a16.png | Bin 0 -> 4180 bytes .../W3CTestSuite/images/PngSuite/basn0g01.png | Bin 0 -> 164 bytes .../W3CTestSuite/images/PngSuite/basn0g02.png | Bin 0 -> 104 bytes .../W3CTestSuite/images/PngSuite/basn0g04.png | Bin 0 -> 145 bytes .../W3CTestSuite/images/PngSuite/basn0g08.png | Bin 0 -> 138 bytes .../W3CTestSuite/images/PngSuite/basn0g16.png | Bin 0 -> 167 bytes .../W3CTestSuite/images/PngSuite/basn2c08.png | Bin 0 -> 145 bytes .../W3CTestSuite/images/PngSuite/basn2c16.png | Bin 0 -> 302 bytes .../W3CTestSuite/images/PngSuite/basn3p01.png | Bin 0 -> 112 bytes .../W3CTestSuite/images/PngSuite/basn3p02.png | Bin 0 -> 146 bytes .../W3CTestSuite/images/PngSuite/basn3p04.png | Bin 0 -> 216 bytes .../W3CTestSuite/images/PngSuite/basn3p08.png | Bin 0 -> 1286 bytes .../W3CTestSuite/images/PngSuite/basn4a08.png | Bin 0 -> 126 bytes .../W3CTestSuite/images/PngSuite/basn4a16.png | Bin 0 -> 2206 bytes .../W3CTestSuite/images/PngSuite/basn6a08.png | Bin 0 -> 184 bytes .../W3CTestSuite/images/PngSuite/basn6a16.png | Bin 0 -> 3435 bytes .../W3CTestSuite/images/PngSuite/bgai4a08.png | Bin 0 -> 214 bytes .../W3CTestSuite/images/PngSuite/bgai4a16.png | Bin 0 -> 2855 bytes .../W3CTestSuite/images/PngSuite/bgan6a08.png | Bin 0 -> 184 bytes .../W3CTestSuite/images/PngSuite/bgan6a16.png | Bin 0 -> 3435 bytes .../W3CTestSuite/images/PngSuite/bgbn4a08.png | Bin 0 -> 140 bytes .../W3CTestSuite/images/PngSuite/bggn4a16.png | Bin 0 -> 2220 bytes .../W3CTestSuite/images/PngSuite/bgwn6a08.png | Bin 0 -> 202 bytes .../W3CTestSuite/images/PngSuite/bgyn6a16.png | Bin 0 -> 3453 bytes .../W3CTestSuite/images/PngSuite/ccwn2c08.png | Bin 0 -> 1514 bytes .../W3CTestSuite/images/PngSuite/ccwn3p08.png | Bin 0 -> 1554 bytes .../W3CTestSuite/images/PngSuite/cdfn2c08.png | Bin 0 -> 404 bytes .../W3CTestSuite/images/PngSuite/cdhn2c08.png | Bin 0 -> 344 bytes .../W3CTestSuite/images/PngSuite/cdsn2c08.png | Bin 0 -> 232 bytes .../W3CTestSuite/images/PngSuite/cdun2c08.png | Bin 0 -> 724 bytes .../W3CTestSuite/images/PngSuite/ch1n3p04.png | Bin 0 -> 258 bytes .../W3CTestSuite/images/PngSuite/ch2n3p08.png | Bin 0 -> 1810 bytes .../W3CTestSuite/images/PngSuite/cm0n0g04.png | Bin 0 -> 292 bytes .../W3CTestSuite/images/PngSuite/cm7n0g04.png | Bin 0 -> 292 bytes .../W3CTestSuite/images/PngSuite/cm9n0g04.png | Bin 0 -> 292 bytes .../W3CTestSuite/images/PngSuite/cs3n2c16.png | Bin 0 -> 214 bytes .../W3CTestSuite/images/PngSuite/cs3n3p08.png | Bin 0 -> 259 bytes .../W3CTestSuite/images/PngSuite/cs5n2c08.png | Bin 0 -> 186 bytes .../W3CTestSuite/images/PngSuite/cs5n3p08.png | Bin 0 -> 271 bytes .../W3CTestSuite/images/PngSuite/cs8n2c08.png | Bin 0 -> 149 bytes .../W3CTestSuite/images/PngSuite/cs8n3p08.png | Bin 0 -> 256 bytes .../W3CTestSuite/images/PngSuite/ct0n0g04.png | Bin 0 -> 273 bytes .../W3CTestSuite/images/PngSuite/ct1n0g04.png | Bin 0 -> 792 bytes .../W3CTestSuite/images/PngSuite/ctzn0g04.png | Bin 0 -> 753 bytes .../W3CTestSuite/images/PngSuite/f00n0g08.png | Bin 0 -> 319 bytes .../W3CTestSuite/images/PngSuite/f00n2c08.png | Bin 0 -> 2475 bytes .../W3CTestSuite/images/PngSuite/f01n0g08.png | Bin 0 -> 321 bytes .../W3CTestSuite/images/PngSuite/f01n2c08.png | Bin 0 -> 1180 bytes .../W3CTestSuite/images/PngSuite/f02n0g08.png | Bin 0 -> 355 bytes .../W3CTestSuite/images/PngSuite/f02n2c08.png | Bin 0 -> 1729 bytes .../W3CTestSuite/images/PngSuite/f03n0g08.png | Bin 0 -> 389 bytes .../W3CTestSuite/images/PngSuite/f03n2c08.png | Bin 0 -> 1291 bytes .../W3CTestSuite/images/PngSuite/f04n0g08.png | Bin 0 -> 269 bytes .../W3CTestSuite/images/PngSuite/f04n2c08.png | Bin 0 -> 985 bytes .../W3CTestSuite/images/PngSuite/g03n0g16.png | Bin 0 -> 345 bytes .../W3CTestSuite/images/PngSuite/g03n2c08.png | Bin 0 -> 370 bytes .../W3CTestSuite/images/PngSuite/g03n3p04.png | Bin 0 -> 214 bytes .../W3CTestSuite/images/PngSuite/g04n0g16.png | Bin 0 -> 363 bytes .../W3CTestSuite/images/PngSuite/g04n2c08.png | Bin 0 -> 377 bytes .../W3CTestSuite/images/PngSuite/g04n3p04.png | Bin 0 -> 219 bytes .../W3CTestSuite/images/PngSuite/g05n0g16.png | Bin 0 -> 339 bytes .../W3CTestSuite/images/PngSuite/g05n2c08.png | Bin 0 -> 350 bytes .../W3CTestSuite/images/PngSuite/g05n3p04.png | Bin 0 -> 206 bytes .../W3CTestSuite/images/PngSuite/g07n0g16.png | Bin 0 -> 321 bytes .../W3CTestSuite/images/PngSuite/g07n2c08.png | Bin 0 -> 340 bytes .../W3CTestSuite/images/PngSuite/g07n3p04.png | Bin 0 -> 207 bytes .../W3CTestSuite/images/PngSuite/g10n0g16.png | Bin 0 -> 262 bytes .../W3CTestSuite/images/PngSuite/g10n2c08.png | Bin 0 -> 285 bytes .../W3CTestSuite/images/PngSuite/g10n3p04.png | Bin 0 -> 214 bytes .../W3CTestSuite/images/PngSuite/g25n0g16.png | Bin 0 -> 383 bytes .../W3CTestSuite/images/PngSuite/g25n2c08.png | Bin 0 -> 405 bytes .../W3CTestSuite/images/PngSuite/g25n3p04.png | Bin 0 -> 215 bytes .../W3CTestSuite/images/PngSuite/oi1n0g16.png | Bin 0 -> 167 bytes .../W3CTestSuite/images/PngSuite/oi1n2c16.png | Bin 0 -> 302 bytes .../W3CTestSuite/images/PngSuite/oi2n0g16.png | Bin 0 -> 179 bytes .../W3CTestSuite/images/PngSuite/oi2n2c16.png | Bin 0 -> 314 bytes .../W3CTestSuite/images/PngSuite/oi4n0g16.png | Bin 0 -> 203 bytes .../W3CTestSuite/images/PngSuite/oi4n2c16.png | Bin 0 -> 338 bytes .../W3CTestSuite/images/PngSuite/oi9n0g16.png | Bin 0 -> 1283 bytes .../W3CTestSuite/images/PngSuite/oi9n2c16.png | Bin 0 -> 3038 bytes .../W3CTestSuite/images/PngSuite/pngsuite.doc | 520 ++++ .../images/PngSuite/pngsuite_logo.png | Bin 0 -> 2262 bytes .../W3CTestSuite/images/PngSuite/pp0n2c16.png | Bin 0 -> 962 bytes .../W3CTestSuite/images/PngSuite/pp0n6a08.png | Bin 0 -> 818 bytes .../W3CTestSuite/images/PngSuite/ps1n0g08.png | Bin 0 -> 1477 bytes .../W3CTestSuite/images/PngSuite/ps1n2c16.png | Bin 0 -> 1641 bytes .../W3CTestSuite/images/PngSuite/ps2n0g08.png | Bin 0 -> 2341 bytes .../W3CTestSuite/images/PngSuite/ps2n2c16.png | Bin 0 -> 2505 bytes .../W3CTestSuite/images/PngSuite/s01i3p01.png | Bin 0 -> 113 bytes .../W3CTestSuite/images/PngSuite/s01n3p01.png | Bin 0 -> 113 bytes .../W3CTestSuite/images/PngSuite/s02i3p01.png | Bin 0 -> 114 bytes .../W3CTestSuite/images/PngSuite/s02n3p01.png | Bin 0 -> 115 bytes .../W3CTestSuite/images/PngSuite/s03i3p01.png | Bin 0 -> 118 bytes .../W3CTestSuite/images/PngSuite/s03n3p01.png | Bin 0 -> 120 bytes .../W3CTestSuite/images/PngSuite/s04i3p01.png | Bin 0 -> 126 bytes .../W3CTestSuite/images/PngSuite/s04n3p01.png | Bin 0 -> 121 bytes .../W3CTestSuite/images/PngSuite/s05i3p02.png | Bin 0 -> 134 bytes .../W3CTestSuite/images/PngSuite/s05n3p02.png | Bin 0 -> 129 bytes .../W3CTestSuite/images/PngSuite/s06i3p02.png | Bin 0 -> 143 bytes .../W3CTestSuite/images/PngSuite/s06n3p02.png | Bin 0 -> 131 bytes .../W3CTestSuite/images/PngSuite/s07i3p02.png | Bin 0 -> 149 bytes .../W3CTestSuite/images/PngSuite/s07n3p02.png | Bin 0 -> 138 bytes .../W3CTestSuite/images/PngSuite/s08i3p02.png | Bin 0 -> 149 bytes .../W3CTestSuite/images/PngSuite/s08n3p02.png | Bin 0 -> 139 bytes .../W3CTestSuite/images/PngSuite/s09i3p02.png | Bin 0 -> 147 bytes .../W3CTestSuite/images/PngSuite/s09n3p02.png | Bin 0 -> 143 bytes .../W3CTestSuite/images/PngSuite/s32i3p04.png | Bin 0 -> 355 bytes .../W3CTestSuite/images/PngSuite/s32n3p04.png | Bin 0 -> 263 bytes .../W3CTestSuite/images/PngSuite/s33i3p04.png | Bin 0 -> 385 bytes .../W3CTestSuite/images/PngSuite/s33n3p04.png | Bin 0 -> 329 bytes .../W3CTestSuite/images/PngSuite/s34i3p04.png | Bin 0 -> 349 bytes .../W3CTestSuite/images/PngSuite/s34n3p04.png | Bin 0 -> 248 bytes .../W3CTestSuite/images/PngSuite/s35i3p04.png | Bin 0 -> 399 bytes .../W3CTestSuite/images/PngSuite/s35n3p04.png | Bin 0 -> 338 bytes .../W3CTestSuite/images/PngSuite/s36i3p04.png | Bin 0 -> 356 bytes .../W3CTestSuite/images/PngSuite/s36n3p04.png | Bin 0 -> 258 bytes .../W3CTestSuite/images/PngSuite/s37i3p04.png | Bin 0 -> 393 bytes .../W3CTestSuite/images/PngSuite/s37n3p04.png | Bin 0 -> 336 bytes .../W3CTestSuite/images/PngSuite/s38i3p04.png | Bin 0 -> 357 bytes .../W3CTestSuite/images/PngSuite/s38n3p04.png | Bin 0 -> 245 bytes .../W3CTestSuite/images/PngSuite/s39i3p04.png | Bin 0 -> 420 bytes .../W3CTestSuite/images/PngSuite/s39n3p04.png | Bin 0 -> 352 bytes .../W3CTestSuite/images/PngSuite/s40i3p04.png | Bin 0 -> 357 bytes .../W3CTestSuite/images/PngSuite/s40n3p04.png | Bin 0 -> 256 bytes .../W3CTestSuite/images/PngSuite/tbbn1g04.png | Bin 0 -> 419 bytes .../W3CTestSuite/images/PngSuite/tbbn2c16.png | Bin 0 -> 1994 bytes .../W3CTestSuite/images/PngSuite/tbbn3p08.png | Bin 0 -> 1128 bytes .../W3CTestSuite/images/PngSuite/tbgn2c16.png | Bin 0 -> 1994 bytes .../W3CTestSuite/images/PngSuite/tbgn3p08.png | Bin 0 -> 1128 bytes .../W3CTestSuite/images/PngSuite/tbrn2c08.png | Bin 0 -> 1347 bytes .../W3CTestSuite/images/PngSuite/tbwn1g16.png | Bin 0 -> 1146 bytes .../W3CTestSuite/images/PngSuite/tbwn3p08.png | Bin 0 -> 1131 bytes .../W3CTestSuite/images/PngSuite/tbyn3p08.png | Bin 0 -> 1131 bytes .../W3CTestSuite/images/PngSuite/tp0n1g08.png | Bin 0 -> 689 bytes .../W3CTestSuite/images/PngSuite/tp0n2c08.png | Bin 0 -> 1311 bytes .../W3CTestSuite/images/PngSuite/tp0n3p08.png | Bin 0 -> 1120 bytes .../W3CTestSuite/images/PngSuite/tp1n3p08.png | Bin 0 -> 1115 bytes .../W3CTestSuite/images/PngSuite/x00n0g01.png | Bin 0 -> 49 bytes .../W3CTestSuite/images/PngSuite/xcrn0g04.png | Bin 0 -> 261 bytes .../W3CTestSuite/images/PngSuite/xlfn0g04.png | 13 + .../W3CTestSuite/images/PngSuite/z00n2c08.png | Bin 0 -> 3172 bytes .../W3CTestSuite/images/PngSuite/z03n2c08.png | Bin 0 -> 232 bytes .../W3CTestSuite/images/PngSuite/z06n2c08.png | Bin 0 -> 224 bytes .../W3CTestSuite/images/PngSuite/z09n2c08.png | Bin 0 -> 224 bytes .../images/SVG-1.1-monolithic-fixed.dtd | 1622 +++++++++++++ Tests/W3CTestSuite/images/SVGImageTest.svg | 36 + .../images/animation-add-BE-09.svg | 201 ++ .../images/animation-extRef-image1.svg | 18 + .../images/animation-extRef-image2.svg | 16 + .../images/animation-extRef-image3.svg | 14 + Tests/W3CTestSuite/images/black10x10.png | Bin 0 -> 216 bytes Tests/W3CTestSuite/images/blue1x1.png | Bin 0 -> 159 bytes Tests/W3CTestSuite/images/blue_10x10.png | Bin 0 -> 83 bytes Tests/W3CTestSuite/images/blue_10x10.ppm | 23 + Tests/W3CTestSuite/images/bluesquidj.png | Bin 0 -> 37497 bytes Tests/W3CTestSuite/images/bullet-small.png | Bin 0 -> 973 bytes Tests/W3CTestSuite/images/bullet-white.png | Bin 0 -> 971 bytes Tests/W3CTestSuite/images/bullet.png | Bin 0 -> 972 bytes Tests/W3CTestSuite/images/bumpMap.png | Bin 0 -> 1998 bytes Tests/W3CTestSuite/images/bumpMap2.png | Bin 0 -> 657 bytes Tests/W3CTestSuite/images/bumpMap3.png | Bin 0 -> 433 bytes .../images/case-insensitivity.css | 2 + Tests/W3CTestSuite/images/changeColor.ICM | Bin 0 -> 740 bytes Tests/W3CTestSuite/images/colorprof.png | Bin 0 -> 705 bytes Tests/W3CTestSuite/images/convolveImage.png | Bin 0 -> 9281 bytes .../W3CTestSuite/images/coords-units-01-f.png | Bin 0 -> 29842 bytes .../W3CTestSuite/images/coords-units-01-f.svg | 193 ++ .../images/copyright-documents-19990405.html | 89 + Tests/W3CTestSuite/images/diagarrow.png | Bin 0 -> 997 bytes Tests/W3CTestSuite/images/empty.js | 0 Tests/W3CTestSuite/images/ext-TestComic.svg | 21 + Tests/W3CTestSuite/images/f.js | 1 + Tests/W3CTestSuite/images/fillChangeColor.ICM | Bin 0 -> 740 bytes .../images/filters-blend-01-f.svg | 128 + .../images/filters-color-01-f.svg | 121 + .../images/filters-composite-01-f.svg | 188 ++ .../images/filters-comptran-01-f.svg | 132 ++ .../images/filters-conv-01-f.includeimage.png | Bin 0 -> 9281 bytes .../W3CTestSuite/images/filters-conv-01-f.svg | 121 + .../images/filters-diffuse-01-f.svg | 172 ++ .../images/filters-example-01-f.svg | 120 + Tests/W3CTestSuite/images/footprints.jpg | Bin 0 -> 48928 bytes Tests/W3CTestSuite/images/footprints2.jpg | Bin 0 -> 313676 bytes Tests/W3CTestSuite/images/galpha.png | Bin 0 -> 12435 bytes Tests/W3CTestSuite/images/gam030.png | Bin 0 -> 213 bytes Tests/W3CTestSuite/images/gam030b.png | Bin 0 -> 1029 bytes Tests/W3CTestSuite/images/gam045.png | Bin 0 -> 216 bytes Tests/W3CTestSuite/images/gam045b.png | Bin 0 -> 1059 bytes Tests/W3CTestSuite/images/gam056.png | Bin 0 -> 216 bytes Tests/W3CTestSuite/images/gam056b.png | Bin 0 -> 1059 bytes Tests/W3CTestSuite/images/gam100.png | Bin 0 -> 205 bytes Tests/W3CTestSuite/images/gam100b.png | Bin 0 -> 1044 bytes Tests/W3CTestSuite/images/gam200.png | Bin 0 -> 187 bytes Tests/W3CTestSuite/images/gam200b.png | Bin 0 -> 1019 bytes Tests/W3CTestSuite/images/green1x1.png | Bin 0 -> 159 bytes Tests/W3CTestSuite/images/greentopbutton.jpg | Bin 0 -> 1111 bytes Tests/W3CTestSuite/images/happysmiley.svg | 10 + Tests/W3CTestSuite/images/image.png | Bin 0 -> 1884 bytes Tests/W3CTestSuite/images/image1.jpg | Bin 0 -> 34183 bytes Tests/W3CTestSuite/images/image1.png | Bin 0 -> 394416 bytes Tests/W3CTestSuite/images/image1_b.png | Bin 0 -> 12586 bytes Tests/W3CTestSuite/images/image2_b.jpg | Bin 0 -> 6643 bytes Tests/W3CTestSuite/images/image2_b.png | Bin 0 -> 7412 bytes Tests/W3CTestSuite/images/inline2.png | Bin 0 -> 1541 bytes .../W3CTestSuite/images/interact-dom-01-f.svg | 148 ++ .../images/interact-order-02-b-targ.svg | 62 + .../images/interact-order-03-b-targ.svg | 62 + Tests/W3CTestSuite/images/leftarrow.png | Bin 0 -> 124 bytes Tests/W3CTestSuite/images/level1.svg | 3 + Tests/W3CTestSuite/images/level2.svg | 3 + .../W3CTestSuite/images/linking-uri-01-b.svg | 149 ++ .../images/linking-uri-01-f-1st.png | Bin 0 -> 8183 bytes .../images/linking-uri-01-f-2nd.png | Bin 0 -> 34164 bytes .../images/linking-uri-01-f-3rd.png | Bin 0 -> 34164 bytes .../images/linking-uri-01-f-4th.png | Bin 0 -> 13626 bytes .../images/linking-uri-01-f-start.png | Bin 0 -> 34164 bytes .../images/linking-uri-03-f-1st.png | Bin 0 -> 28465 bytes .../images/linking-uri-03-f-start.png | Bin 0 -> 26549 bytes Tests/W3CTestSuite/images/linkingCircle-f.svg | 34 + Tests/W3CTestSuite/images/linkingToc-t.svg | 63 + Tests/W3CTestSuite/images/magnify.png | Bin 0 -> 268 bytes Tests/W3CTestSuite/images/makealpha.svg | 34 + Tests/W3CTestSuite/images/myimage.jpg | Bin 0 -> 4402 bytes Tests/W3CTestSuite/images/nav_bullet.png | Bin 0 -> 264 bytes Tests/W3CTestSuite/images/nav_down.png | Bin 0 -> 252 bytes Tests/W3CTestSuite/images/nav_downleft.png | Bin 0 -> 170 bytes Tests/W3CTestSuite/images/nav_downright.png | Bin 0 -> 169 bytes Tests/W3CTestSuite/images/nav_frame.png | Bin 0 -> 155 bytes Tests/W3CTestSuite/images/nav_left.png | Bin 0 -> 166 bytes Tests/W3CTestSuite/images/nav_noframe.png | Bin 0 -> 270 bytes Tests/W3CTestSuite/images/nav_right.png | Bin 0 -> 168 bytes Tests/W3CTestSuite/images/nav_svg.png | Bin 0 -> 155 bytes Tests/W3CTestSuite/images/nav_up.png | Bin 0 -> 173 bytes Tests/W3CTestSuite/images/nav_upleft.png | Bin 0 -> 172 bytes Tests/W3CTestSuite/images/nav_upright.png | Bin 0 -> 173 bytes .../images/old-name-2-new-name1.html | 1178 +++++++++ Tests/W3CTestSuite/images/paths-data-01-f.png | Bin 0 -> 36446 bytes Tests/W3CTestSuite/images/paths-data-01-f.svg | 169 ++ Tests/W3CTestSuite/images/paths-data-02-f.png | Bin 0 -> 42041 bytes Tests/W3CTestSuite/images/paths-data-02-f.svg | 143 ++ Tests/W3CTestSuite/images/paths-data-03-f.png | Bin 0 -> 38026 bytes Tests/W3CTestSuite/images/paths-data-03-f.svg | 137 ++ Tests/W3CTestSuite/images/paths-data-04-f.png | Bin 0 -> 30546 bytes Tests/W3CTestSuite/images/paths-data-04-f.svg | 171 ++ Tests/W3CTestSuite/images/pinksquidj.png | Bin 0 -> 31090 bytes Tests/W3CTestSuite/images/plant.jpg | Bin 0 -> 145806 bytes Tests/W3CTestSuite/images/purplesquidj.png | Bin 0 -> 48672 bytes Tests/W3CTestSuite/images/rects.svg | 11 + Tests/W3CTestSuite/images/rects_b.svg | 7 + Tests/W3CTestSuite/images/red1x1.png | Bin 0 -> 159 bytes Tests/W3CTestSuite/images/rgbalpha.png | Bin 0 -> 13717 bytes Tests/W3CTestSuite/images/rightarrow.png | Bin 0 -> 963 bytes Tests/W3CTestSuite/images/rotate20.png | Bin 0 -> 1434 bytes .../images/selector-types-fill-green.css | 28 + .../selector-types-visibility-hidden.css | 32 + .../images/shapes-ellipse-01-b.svg | 59 + .../images/shapes-ellipse-01-f.png | Bin 0 -> 31126 bytes .../images/shapes-ellipse-01-f.svg | 111 + .../W3CTestSuite/images/shapes-rect-01-b.svg | 60 + .../W3CTestSuite/images/shapes-rect-01-f.png | Bin 0 -> 26453 bytes .../W3CTestSuite/images/shapes-rect-01-f.svg | 113 + Tests/W3CTestSuite/images/sign.png | Bin 0 -> 10647 bytes Tests/W3CTestSuite/images/smiley.png | Bin 0 -> 2856 bytes Tests/W3CTestSuite/images/sphere.png | Bin 0 -> 5923 bytes Tests/W3CTestSuite/images/star.svg | 20 + .../images/stefan_252_tRNS_opti.png | Bin 0 -> 12777 bytes .../W3CTestSuite/images/struct-frag-01-B.svg | 55 + Tests/W3CTestSuite/images/struct-image-01.jpg | Bin 0 -> 4751 bytes Tests/W3CTestSuite/images/struct-image-01.png | Bin 0 -> 63238 bytes Tests/W3CTestSuite/images/struct-image-02.jpg | Bin 0 -> 3779 bytes Tests/W3CTestSuite/images/struct-image-02.png | Bin 0 -> 35887 bytes .../images/struct-image-11-b-1.svg | 7 + .../images/struct-image-11-b-2.svg | 7 + .../images/struct-image-12-b-cycle.svg | 9 + .../images/struct-image-12-b-nocycle.svg | 9 + .../images/struct-image-17-b-1.svg | 6 + .../W3CTestSuite/images/struct-symbol-01.png | Bin 0 -> 71497 bytes .../W3CTestSuite/images/struct-use-06-b-1.svg | 10 + .../images/struct-use-08-b-cycles.svg | 8 + Tests/W3CTestSuite/images/svgRef1.svg | 49 + Tests/W3CTestSuite/images/svgRef4.css | 4 + Tests/W3CTestSuite/images/svgRef4.svg | 41 + Tests/W3CTestSuite/images/text-align-01-f.svg | 95 + Tests/W3CTestSuite/images/text-align-02-f.svg | 146 ++ Tests/W3CTestSuite/images/text-align-03-f.svg | 96 + .../images/text-altglyph-01-f.svg | 202 ++ .../images/text-extTref-BE-18-targ.svg | 58 + Tests/W3CTestSuite/images/text-intro-01-f.svg | 106 + Tests/W3CTestSuite/images/text-tref-01-f.svg | 160 ++ Tests/W3CTestSuite/images/text-ws-01-f.svg | 130 + Tests/W3CTestSuite/images/toc-sv.svg | 114 + Tests/W3CTestSuite/images/toc-svcmp.svg | 114 + Tests/W3CTestSuite/images/townsville.jpg | Bin 0 -> 52480 bytes Tests/W3CTestSuite/images/tree.jpg | Bin 0 -> 66460 bytes Tests/W3CTestSuite/images/uparrow.png | Bin 0 -> 1232 bytes .../W3CTestSuite/png/__AJ_Digital_Camera.png | Bin 0 -> 51190 bytes Tests/W3CTestSuite/png/__issue-34-02.png | Bin 0 -> 10300 bytes Tests/W3CTestSuite/png/__issue-83-01.png | Bin 0 -> 5850 bytes Tests/W3CTestSuite/png/__tiger.png | Bin 0 -> 156758 bytes Tests/W3CTestSuite/png/animate-dom-01-f.png | Bin 0 -> 25548 bytes Tests/W3CTestSuite/png/animate-dom-02-f.png | Bin 0 -> 7806 bytes Tests/W3CTestSuite/png/animate-elem-02-t.png | Bin 0 -> 8577 bytes Tests/W3CTestSuite/png/animate-elem-03-t.png | Bin 0 -> 21535 bytes Tests/W3CTestSuite/png/animate-elem-04-t.png | Bin 0 -> 24499 bytes Tests/W3CTestSuite/png/animate-elem-05-t.png | Bin 0 -> 22806 bytes Tests/W3CTestSuite/png/animate-elem-06-t.png | Bin 0 -> 24082 bytes Tests/W3CTestSuite/png/animate-elem-07-t.png | Bin 0 -> 23933 bytes Tests/W3CTestSuite/png/animate-elem-08-t.png | Bin 0 -> 18593 bytes Tests/W3CTestSuite/png/animate-elem-09-t.png | Bin 0 -> 12462 bytes Tests/W3CTestSuite/png/animate-elem-10-t.png | Bin 0 -> 13129 bytes Tests/W3CTestSuite/png/animate-elem-11-t.png | Bin 0 -> 13097 bytes Tests/W3CTestSuite/png/animate-elem-12-t.png | Bin 0 -> 13129 bytes Tests/W3CTestSuite/png/animate-elem-13-t.png | Bin 0 -> 21499 bytes Tests/W3CTestSuite/png/animate-elem-14-t.png | Bin 0 -> 25216 bytes Tests/W3CTestSuite/png/animate-elem-15-t.png | Bin 0 -> 25244 bytes Tests/W3CTestSuite/png/animate-elem-17-t.png | Bin 0 -> 24592 bytes Tests/W3CTestSuite/png/animate-elem-19-t.png | Bin 0 -> 24160 bytes Tests/W3CTestSuite/png/animate-elem-20-t.png | Bin 0 -> 11242 bytes Tests/W3CTestSuite/png/animate-elem-21-t.png | Bin 0 -> 20639 bytes Tests/W3CTestSuite/png/animate-elem-22-b.png | Bin 0 -> 10117 bytes Tests/W3CTestSuite/png/animate-elem-23-t.png | Bin 0 -> 10826 bytes Tests/W3CTestSuite/png/animate-elem-24-t.png | Bin 0 -> 18552 bytes Tests/W3CTestSuite/png/animate-elem-25-t.png | Bin 0 -> 9446 bytes Tests/W3CTestSuite/png/animate-elem-26-t.png | Bin 0 -> 30940 bytes Tests/W3CTestSuite/png/animate-elem-27-t.png | Bin 0 -> 9432 bytes Tests/W3CTestSuite/png/animate-elem-28-t.png | Bin 0 -> 18159 bytes Tests/W3CTestSuite/png/animate-elem-29-b.png | Bin 0 -> 17135 bytes Tests/W3CTestSuite/png/animate-elem-30-t.png | Bin 0 -> 19446 bytes Tests/W3CTestSuite/png/animate-elem-31-t.png | Bin 0 -> 25641 bytes Tests/W3CTestSuite/png/animate-elem-32-t.png | Bin 0 -> 7342 bytes Tests/W3CTestSuite/png/animate-elem-33-t.png | Bin 0 -> 31180 bytes Tests/W3CTestSuite/png/animate-elem-34-t.png | Bin 0 -> 28498 bytes Tests/W3CTestSuite/png/animate-elem-35-t.png | Bin 0 -> 33113 bytes Tests/W3CTestSuite/png/animate-elem-36-t.png | Bin 0 -> 29058 bytes Tests/W3CTestSuite/png/animate-elem-37-t.png | Bin 0 -> 23814 bytes Tests/W3CTestSuite/png/animate-elem-38-t.png | Bin 0 -> 30316 bytes Tests/W3CTestSuite/png/animate-elem-39-t.png | Bin 0 -> 33860 bytes Tests/W3CTestSuite/png/animate-elem-40-t.png | Bin 0 -> 32710 bytes Tests/W3CTestSuite/png/animate-elem-41-t.png | Bin 0 -> 17437 bytes Tests/W3CTestSuite/png/animate-elem-42-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-43-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-44-t.png | Bin 0 -> 31958 bytes Tests/W3CTestSuite/png/animate-elem-45-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-46-t.png | Bin 0 -> 17446 bytes Tests/W3CTestSuite/png/animate-elem-47-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-48-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-49-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-50-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-51-t.png | Bin 0 -> 5963 bytes Tests/W3CTestSuite/png/animate-elem-52-t.png | Bin 0 -> 24229 bytes Tests/W3CTestSuite/png/animate-elem-53-t.png | Bin 0 -> 22293 bytes Tests/W3CTestSuite/png/animate-elem-60-t.png | Bin 0 -> 12902 bytes Tests/W3CTestSuite/png/animate-elem-61-t.png | Bin 0 -> 13181 bytes Tests/W3CTestSuite/png/animate-elem-62-t.png | Bin 0 -> 12622 bytes Tests/W3CTestSuite/png/animate-elem-63-t.png | Bin 0 -> 12947 bytes Tests/W3CTestSuite/png/animate-elem-64-t.png | Bin 0 -> 9787 bytes Tests/W3CTestSuite/png/animate-elem-65-t.png | Bin 0 -> 14497 bytes Tests/W3CTestSuite/png/animate-elem-66-t.png | Bin 0 -> 14700 bytes Tests/W3CTestSuite/png/animate-elem-67-t.png | Bin 0 -> 13466 bytes Tests/W3CTestSuite/png/animate-elem-68-t.png | Bin 0 -> 14799 bytes Tests/W3CTestSuite/png/animate-elem-69-t.png | Bin 0 -> 15396 bytes Tests/W3CTestSuite/png/animate-elem-70-t.png | Bin 0 -> 11774 bytes Tests/W3CTestSuite/png/animate-elem-77-t.png | Bin 0 -> 25262 bytes Tests/W3CTestSuite/png/animate-elem-78-t.png | Bin 0 -> 17992 bytes Tests/W3CTestSuite/png/animate-elem-80-t.png | Bin 0 -> 36424 bytes Tests/W3CTestSuite/png/animate-elem-81-t.png | Bin 0 -> 15234 bytes Tests/W3CTestSuite/png/animate-elem-82-t.png | Bin 0 -> 26693 bytes Tests/W3CTestSuite/png/animate-elem-83-t.png | Bin 0 -> 30301 bytes Tests/W3CTestSuite/png/animate-elem-84-t.png | Bin 0 -> 6684 bytes Tests/W3CTestSuite/png/animate-elem-85-t.png | Bin 0 -> 8949 bytes Tests/W3CTestSuite/png/animate-elem-86-t.png | Bin 0 -> 9696 bytes Tests/W3CTestSuite/png/animate-elem-87-t.png | Bin 0 -> 19173 bytes Tests/W3CTestSuite/png/animate-elem-88-t.png | Bin 0 -> 6832 bytes Tests/W3CTestSuite/png/animate-elem-89-t.png | Bin 0 -> 8809 bytes Tests/W3CTestSuite/png/animate-elem-90-b.png | Bin 0 -> 10267 bytes Tests/W3CTestSuite/png/animate-elem-91-t.png | Bin 0 -> 18212 bytes Tests/W3CTestSuite/png/animate-elem-92-t.png | Bin 0 -> 12824 bytes .../png/animate-interact-events-01-t.png | Bin 0 -> 23518 bytes .../png/animate-interact-pevents-01-t.png | Bin 0 -> 13322 bytes .../png/animate-interact-pevents-02-t.png | Bin 0 -> 27854 bytes .../png/animate-interact-pevents-03-t.png | Bin 0 -> 32196 bytes .../png/animate-interact-pevents-04-t.png | Bin 0 -> 28162 bytes .../png/animate-pservers-grad-01-b.png | Bin 0 -> 5497 bytes .../png/animate-script-elem-01-b.png | Bin 0 -> 13547 bytes .../png/animate-struct-dom-01-b.png | Bin 0 -> 10620 bytes Tests/W3CTestSuite/png/color-prof-01-f.png | Bin 0 -> 6677 bytes Tests/W3CTestSuite/png/color-prop-01-b.png | Bin 0 -> 18934 bytes Tests/W3CTestSuite/png/color-prop-02-f.png | Bin 0 -> 17166 bytes Tests/W3CTestSuite/png/color-prop-03-t.png | Bin 0 -> 11334 bytes Tests/W3CTestSuite/png/color-prop-04-t.png | Bin 0 -> 21875 bytes Tests/W3CTestSuite/png/color-prop-05-t.png | Bin 0 -> 4688 bytes .../W3CTestSuite/png/conform-viewers-01-t.png | Bin 0 -> 28407 bytes .../W3CTestSuite/png/conform-viewers-02-f.png | Bin 0 -> 26054 bytes .../W3CTestSuite/png/conform-viewers-03-f.png | Bin 0 -> 16479 bytes Tests/W3CTestSuite/png/coords-coord-01-t.png | Bin 0 -> 4774 bytes Tests/W3CTestSuite/png/coords-coord-02-t.png | Bin 0 -> 4545 bytes Tests/W3CTestSuite/png/coords-dom-01-f.png | Bin 0 -> 5961 bytes Tests/W3CTestSuite/png/coords-dom-02-f.png | Bin 0 -> 6683 bytes Tests/W3CTestSuite/png/coords-dom-03-f.png | Bin 0 -> 13845 bytes Tests/W3CTestSuite/png/coords-dom-04-f.png | Bin 0 -> 26786 bytes Tests/W3CTestSuite/png/coords-trans-01-b.png | Bin 0 -> 13644 bytes Tests/W3CTestSuite/png/coords-trans-02-t.png | Bin 0 -> 9734 bytes Tests/W3CTestSuite/png/coords-trans-03-t.png | Bin 0 -> 7804 bytes Tests/W3CTestSuite/png/coords-trans-04-t.png | Bin 0 -> 6704 bytes Tests/W3CTestSuite/png/coords-trans-05-t.png | Bin 0 -> 9966 bytes Tests/W3CTestSuite/png/coords-trans-06-t.png | Bin 0 -> 10504 bytes Tests/W3CTestSuite/png/coords-trans-07-t.png | Bin 0 -> 13896 bytes Tests/W3CTestSuite/png/coords-trans-08-t.png | Bin 0 -> 13432 bytes Tests/W3CTestSuite/png/coords-trans-09-t.png | Bin 0 -> 22037 bytes Tests/W3CTestSuite/png/coords-trans-10-f.png | Bin 0 -> 11274 bytes Tests/W3CTestSuite/png/coords-trans-11-f.png | Bin 0 -> 16668 bytes Tests/W3CTestSuite/png/coords-trans-12-f.png | Bin 0 -> 8332 bytes Tests/W3CTestSuite/png/coords-trans-13-f.png | Bin 0 -> 15078 bytes Tests/W3CTestSuite/png/coords-trans-14-f.png | Bin 0 -> 18329 bytes .../png/coords-transformattr-01-f.png | Bin 0 -> 13169 bytes .../png/coords-transformattr-02-f.png | Bin 0 -> 7070 bytes .../png/coords-transformattr-03-f.png | Bin 0 -> 14518 bytes .../png/coords-transformattr-04-f.png | Bin 0 -> 14452 bytes .../png/coords-transformattr-05-f.png | Bin 0 -> 20763 bytes Tests/W3CTestSuite/png/coords-units-01-b.png | Bin 0 -> 22910 bytes Tests/W3CTestSuite/png/coords-units-02-b.png | Bin 0 -> 25784 bytes Tests/W3CTestSuite/png/coords-units-03-b.png | Bin 0 -> 27727 bytes .../W3CTestSuite/png/coords-viewattr-01-b.png | Bin 0 -> 17581 bytes .../W3CTestSuite/png/coords-viewattr-02-b.png | Bin 0 -> 40751 bytes .../W3CTestSuite/png/coords-viewattr-03-b.png | Bin 0 -> 28126 bytes .../W3CTestSuite/png/coords-viewattr-04-f.png | Bin 0 -> 24500 bytes .../png/extend-namespace-01-f.png | Bin 0 -> 23309 bytes .../png/filters-background-01-f.png | Bin 0 -> 18824 bytes Tests/W3CTestSuite/png/filters-blend-01-b.png | Bin 0 -> 16420 bytes Tests/W3CTestSuite/png/filters-color-01-b.png | Bin 0 -> 24542 bytes Tests/W3CTestSuite/png/filters-color-02-b.png | Bin 0 -> 7439 bytes .../png/filters-composite-02-b.png | Bin 0 -> 16884 bytes .../png/filters-composite-03-f.png | Bin 0 -> 6192 bytes .../png/filters-composite-04-f.png | Bin 0 -> 127777 bytes .../png/filters-composite-05-f.png | Bin 0 -> 35393 bytes .../png/filters-comptran-01-b.png | Bin 0 -> 16794 bytes Tests/W3CTestSuite/png/filters-conv-01-f.png | Bin 0 -> 53536 bytes Tests/W3CTestSuite/png/filters-conv-02-f.png | Bin 0 -> 38250 bytes Tests/W3CTestSuite/png/filters-conv-03-f.png | Bin 0 -> 34066 bytes Tests/W3CTestSuite/png/filters-conv-04-f.png | Bin 0 -> 87653 bytes Tests/W3CTestSuite/png/filters-conv-05-f.png | Bin 0 -> 13705 bytes .../W3CTestSuite/png/filters-diffuse-01-f.png | Bin 0 -> 21863 bytes .../png/filters-displace-01-f.png | Bin 0 -> 45323 bytes .../png/filters-displace-02-f.png | Bin 0 -> 8965 bytes .../W3CTestSuite/png/filters-example-01-b.png | Bin 0 -> 22359 bytes Tests/W3CTestSuite/png/filters-felem-01-b.png | Bin 0 -> 12696 bytes Tests/W3CTestSuite/png/filters-felem-02-f.png | Bin 0 -> 16264 bytes Tests/W3CTestSuite/png/filters-gauss-01-b.png | Bin 0 -> 19453 bytes Tests/W3CTestSuite/png/filters-gauss-02-f.png | Bin 0 -> 8057 bytes Tests/W3CTestSuite/png/filters-gauss-03-f.png | Bin 0 -> 6482 bytes Tests/W3CTestSuite/png/filters-image-01-b.png | Bin 0 -> 97345 bytes Tests/W3CTestSuite/png/filters-image-02-b.png | Bin 0 -> 27365 bytes Tests/W3CTestSuite/png/filters-image-03-f.png | Bin 0 -> 12119 bytes Tests/W3CTestSuite/png/filters-image-04-f.png | Bin 0 -> 12942 bytes Tests/W3CTestSuite/png/filters-image-05-f.png | Bin 0 -> 19087 bytes Tests/W3CTestSuite/png/filters-light-01-f.png | Bin 0 -> 33436 bytes Tests/W3CTestSuite/png/filters-light-02-f.png | Bin 0 -> 15541 bytes Tests/W3CTestSuite/png/filters-light-03-f.png | Bin 0 -> 17717 bytes Tests/W3CTestSuite/png/filters-light-04-f.png | Bin 0 -> 13372 bytes Tests/W3CTestSuite/png/filters-light-05-f.png | Bin 0 -> 32032 bytes Tests/W3CTestSuite/png/filters-morph-01-f.png | Bin 0 -> 35887 bytes .../W3CTestSuite/png/filters-offset-01-b.png | Bin 0 -> 10643 bytes .../W3CTestSuite/png/filters-offset-02-b.png | Bin 0 -> 6091 bytes .../png/filters-overview-01-b.png | Bin 0 -> 34417 bytes .../png/filters-overview-02-b.png | Bin 0 -> 37965 bytes .../png/filters-overview-03-b.png | Bin 0 -> 37965 bytes .../png/filters-specular-01-f.png | Bin 0 -> 29857 bytes Tests/W3CTestSuite/png/filters-tile-01-b.png | Bin 0 -> 10145 bytes Tests/W3CTestSuite/png/filters-turb-01-f.png | Bin 0 -> 145859 bytes Tests/W3CTestSuite/png/filters-turb-02-f.png | Bin 0 -> 39568 bytes Tests/W3CTestSuite/png/fonts-desc-01-t.png | Bin 0 -> 6480 bytes Tests/W3CTestSuite/png/fonts-desc-02-t.png | Bin 0 -> 6635 bytes Tests/W3CTestSuite/png/fonts-desc-03-t.png | Bin 0 -> 5695 bytes Tests/W3CTestSuite/png/fonts-desc-04-t.png | Bin 0 -> 6090 bytes Tests/W3CTestSuite/png/fonts-desc-05-t.png | Bin 0 -> 7969 bytes Tests/W3CTestSuite/png/fonts-elem-01-t.png | Bin 0 -> 21468 bytes Tests/W3CTestSuite/png/fonts-elem-02-t.png | Bin 0 -> 24186 bytes Tests/W3CTestSuite/png/fonts-elem-03-b.png | Bin 0 -> 21350 bytes Tests/W3CTestSuite/png/fonts-elem-04-b.png | Bin 0 -> 21554 bytes Tests/W3CTestSuite/png/fonts-elem-05-t.png | Bin 0 -> 19758 bytes Tests/W3CTestSuite/png/fonts-elem-06-t.png | Bin 0 -> 18088 bytes Tests/W3CTestSuite/png/fonts-elem-07-b.png | Bin 0 -> 21567 bytes Tests/W3CTestSuite/png/fonts-glyph-02-t.png | Bin 0 -> 8872 bytes Tests/W3CTestSuite/png/fonts-glyph-03-t.png | Bin 0 -> 6444 bytes Tests/W3CTestSuite/png/fonts-glyph-04-t.png | Bin 0 -> 4959 bytes Tests/W3CTestSuite/png/fonts-kern-01-t.png | Bin 0 -> 19451 bytes .../W3CTestSuite/png/fonts-overview-201-t.png | Bin 0 -> 15190 bytes Tests/W3CTestSuite/png/imp-path-01-f.png | Bin 0 -> 6493 bytes .../W3CTestSuite/png/interact-cursor-01-f.png | Bin 0 -> 18644 bytes Tests/W3CTestSuite/png/interact-dom-01-b.png | Bin 0 -> 14244 bytes .../W3CTestSuite/png/interact-events-01-b.png | Bin 0 -> 15501 bytes .../W3CTestSuite/png/interact-events-02-b.png | Bin 0 -> 9858 bytes .../png/interact-events-202-f.png | Bin 0 -> 6479 bytes .../png/interact-events-203-t.png | Bin 0 -> 37532 bytes .../W3CTestSuite/png/interact-order-01-b.png | Bin 0 -> 23273 bytes .../W3CTestSuite/png/interact-order-02-b.png | Bin 0 -> 23225 bytes .../W3CTestSuite/png/interact-order-03-b.png | Bin 0 -> 28455 bytes .../png/interact-pevents-01-b.png | Bin 0 -> 18753 bytes .../png/interact-pevents-02-t.png | Bin 0 -> 17662 bytes .../png/interact-pevents-03-b.png | Bin 0 -> 27871 bytes .../png/interact-pevents-04-t.png | Bin 0 -> 18878 bytes .../png/interact-pevents-05-b.png | Bin 0 -> 19059 bytes .../png/interact-pevents-07-t.png | Bin 0 -> 27854 bytes .../png/interact-pevents-08-f.png | Bin 0 -> 42079 bytes .../png/interact-pevents-09-f.png | Bin 0 -> 36298 bytes .../png/interact-pevents-10-f.png | Bin 0 -> 8584 bytes .../png/interact-pevents-201-t.png | Bin 0 -> 32461 bytes .../png/interact-pevents-202-t.png | Bin 0 -> 28405 bytes .../png/interact-pointer-01-t.png | Bin 0 -> 11533 bytes .../png/interact-pointer-02-t.png | Bin 0 -> 11409 bytes .../png/interact-pointer-03-t.png | Bin 0 -> 7971 bytes .../png/interact-pointer-04-f.png | Bin 0 -> 6068 bytes Tests/W3CTestSuite/png/interact-zoom-01-t.png | Bin 0 -> 9702 bytes Tests/W3CTestSuite/png/interact-zoom-02-t.png | Bin 0 -> 10340 bytes Tests/W3CTestSuite/png/interact-zoom-03-t.png | Bin 0 -> 16212 bytes Tests/W3CTestSuite/png/linking-a-01-b.png | Bin 0 -> 10632 bytes Tests/W3CTestSuite/png/linking-a-03-b.png | Bin 0 -> 9175 bytes Tests/W3CTestSuite/png/linking-a-04-t.png | Bin 0 -> 12270 bytes Tests/W3CTestSuite/png/linking-a-05-t.png | Bin 0 -> 23844 bytes Tests/W3CTestSuite/png/linking-a-06-t.png | Bin 0 -> 5853 bytes Tests/W3CTestSuite/png/linking-a-07-t.png | Bin 0 -> 13872 bytes Tests/W3CTestSuite/png/linking-a-08-t.png | Bin 0 -> 7546 bytes Tests/W3CTestSuite/png/linking-a-09-b.png | Bin 0 -> 10053 bytes Tests/W3CTestSuite/png/linking-a-10-f.png | Bin 0 -> 13107 bytes Tests/W3CTestSuite/png/linking-frag-01-f.png | Bin 0 -> 9787 bytes Tests/W3CTestSuite/png/linking-uri-01-b.png | Bin 0 -> 26329 bytes Tests/W3CTestSuite/png/linking-uri-02-b.png | Bin 0 -> 27012 bytes Tests/W3CTestSuite/png/linking-uri-03-t.png | Bin 0 -> 18025 bytes .../W3CTestSuite/png/masking-filter-01-f.png | Bin 0 -> 7130 bytes Tests/W3CTestSuite/png/masking-intro-01-f.png | Bin 0 -> 16512 bytes Tests/W3CTestSuite/png/masking-mask-01-b.png | Bin 0 -> 15722 bytes Tests/W3CTestSuite/png/masking-mask-02-f.png | Bin 0 -> 6417 bytes .../W3CTestSuite/png/masking-opacity-01-b.png | Bin 0 -> 60948 bytes Tests/W3CTestSuite/png/masking-path-01-b.png | Bin 0 -> 22206 bytes Tests/W3CTestSuite/png/masking-path-02-b.png | Bin 0 -> 15283 bytes Tests/W3CTestSuite/png/masking-path-03-b.png | Bin 0 -> 29625 bytes Tests/W3CTestSuite/png/masking-path-04-b.png | Bin 0 -> 88260 bytes Tests/W3CTestSuite/png/masking-path-05-f.png | Bin 0 -> 12281 bytes Tests/W3CTestSuite/png/masking-path-06-b.png | Bin 0 -> 75639 bytes Tests/W3CTestSuite/png/masking-path-07-b.png | Bin 0 -> 13226 bytes Tests/W3CTestSuite/png/masking-path-08-b.png | Bin 0 -> 7133 bytes Tests/W3CTestSuite/png/masking-path-09-b.png | Bin 0 -> 6804 bytes Tests/W3CTestSuite/png/masking-path-10-b.png | Bin 0 -> 11365 bytes Tests/W3CTestSuite/png/masking-path-11-b.png | Bin 0 -> 10900 bytes Tests/W3CTestSuite/png/masking-path-12-f.png | Bin 0 -> 6255 bytes Tests/W3CTestSuite/png/masking-path-13-f.png | Bin 0 -> 6414 bytes Tests/W3CTestSuite/png/masking-path-14-f.png | Bin 0 -> 6414 bytes .../png/metadata-example-01-t.png | Bin 0 -> 36989 bytes .../png/painting-control-01-f.png | Bin 0 -> 4531 bytes .../png/painting-control-02-f.png | Bin 0 -> 4777 bytes .../png/painting-control-03-f.png | Bin 0 -> 7098 bytes .../png/painting-control-04-f.png | Bin 0 -> 5998 bytes .../png/painting-control-05-f.png | Bin 0 -> 4688 bytes .../png/painting-control-06-f.png | Bin 0 -> 4477 bytes Tests/W3CTestSuite/png/painting-fill-01-t.png | Bin 0 -> 18275 bytes Tests/W3CTestSuite/png/painting-fill-02-t.png | Bin 0 -> 12979 bytes Tests/W3CTestSuite/png/painting-fill-03-t.png | Bin 0 -> 22493 bytes Tests/W3CTestSuite/png/painting-fill-04-t.png | Bin 0 -> 6774 bytes Tests/W3CTestSuite/png/painting-fill-05-b.png | Bin 0 -> 4814 bytes .../W3CTestSuite/png/painting-marker-01-f.png | Bin 0 -> 13907 bytes .../W3CTestSuite/png/painting-marker-02-f.png | Bin 0 -> 14145 bytes .../W3CTestSuite/png/painting-marker-03-f.png | Bin 0 -> 34516 bytes .../W3CTestSuite/png/painting-marker-04-f.png | Bin 0 -> 33258 bytes .../W3CTestSuite/png/painting-marker-05-f.png | Bin 0 -> 10907 bytes .../W3CTestSuite/png/painting-marker-06-f.png | Bin 0 -> 14210 bytes .../W3CTestSuite/png/painting-marker-07-f.png | Bin 0 -> 6790 bytes .../png/painting-marker-properties-01-f.png | Bin 0 -> 6039 bytes .../W3CTestSuite/png/painting-render-01-b.png | Bin 0 -> 14587 bytes .../W3CTestSuite/png/painting-render-02-b.png | Bin 0 -> 9867 bytes .../W3CTestSuite/png/painting-stroke-01-t.png | Bin 0 -> 23012 bytes .../W3CTestSuite/png/painting-stroke-02-t.png | Bin 0 -> 27918 bytes .../W3CTestSuite/png/painting-stroke-03-t.png | Bin 0 -> 19469 bytes .../W3CTestSuite/png/painting-stroke-04-t.png | Bin 0 -> 18056 bytes .../W3CTestSuite/png/painting-stroke-05-t.png | Bin 0 -> 7464 bytes .../W3CTestSuite/png/painting-stroke-06-t.png | Bin 0 -> 5546 bytes .../W3CTestSuite/png/painting-stroke-07-t.png | Bin 0 -> 7975 bytes .../W3CTestSuite/png/painting-stroke-08-t.png | Bin 0 -> 7629 bytes .../W3CTestSuite/png/painting-stroke-09-t.png | Bin 0 -> 4590 bytes .../W3CTestSuite/png/painting-stroke-10-t.png | Bin 0 -> 11044 bytes Tests/W3CTestSuite/png/paths-data-01-t.png | Bin 0 -> 36436 bytes Tests/W3CTestSuite/png/paths-data-02-t.png | Bin 0 -> 47347 bytes Tests/W3CTestSuite/png/paths-data-03-f.png | Bin 0 -> 39735 bytes Tests/W3CTestSuite/png/paths-data-04-t.png | Bin 0 -> 26032 bytes Tests/W3CTestSuite/png/paths-data-05-t.png | Bin 0 -> 22995 bytes Tests/W3CTestSuite/png/paths-data-06-t.png | Bin 0 -> 10493 bytes Tests/W3CTestSuite/png/paths-data-07-t.png | Bin 0 -> 10098 bytes Tests/W3CTestSuite/png/paths-data-08-t.png | Bin 0 -> 29209 bytes Tests/W3CTestSuite/png/paths-data-09-t.png | Bin 0 -> 26121 bytes Tests/W3CTestSuite/png/paths-data-10-t.png | Bin 0 -> 31763 bytes Tests/W3CTestSuite/png/paths-data-11-t.png | Bin 0 -> 5853 bytes Tests/W3CTestSuite/png/paths-data-12-t.png | Bin 0 -> 9367 bytes Tests/W3CTestSuite/png/paths-data-13-t.png | Bin 0 -> 6457 bytes Tests/W3CTestSuite/png/paths-data-14-t.png | Bin 0 -> 19149 bytes Tests/W3CTestSuite/png/paths-data-15-t.png | Bin 0 -> 6281 bytes Tests/W3CTestSuite/png/paths-data-16-t.png | Bin 0 -> 10291 bytes Tests/W3CTestSuite/png/paths-data-17-f.png | Bin 0 -> 4614 bytes Tests/W3CTestSuite/png/paths-data-18-f.png | Bin 0 -> 4691 bytes Tests/W3CTestSuite/png/paths-data-19-f.png | Bin 0 -> 26263 bytes Tests/W3CTestSuite/png/paths-data-20-f.png | Bin 0 -> 6858 bytes Tests/W3CTestSuite/png/paths-dist-01-t.png | Bin 0 -> 5853 bytes Tests/W3CTestSuite/png/paths-dom-01-f.png | Bin 0 -> 20157 bytes Tests/W3CTestSuite/png/paths-dom-02-f.png | Bin 0 -> 14035 bytes Tests/W3CTestSuite/png/pservers-grad-01-b.png | Bin 0 -> 17384 bytes Tests/W3CTestSuite/png/pservers-grad-02-b.png | Bin 0 -> 31365 bytes Tests/W3CTestSuite/png/pservers-grad-03-b.png | Bin 0 -> 10864 bytes Tests/W3CTestSuite/png/pservers-grad-04-b.png | Bin 0 -> 32413 bytes Tests/W3CTestSuite/png/pservers-grad-05-b.png | Bin 0 -> 64037 bytes Tests/W3CTestSuite/png/pservers-grad-06-b.png | Bin 0 -> 32550 bytes Tests/W3CTestSuite/png/pservers-grad-07-b.png | Bin 0 -> 14444 bytes Tests/W3CTestSuite/png/pservers-grad-08-b.png | Bin 0 -> 32585 bytes Tests/W3CTestSuite/png/pservers-grad-09-b.png | Bin 0 -> 10084 bytes Tests/W3CTestSuite/png/pservers-grad-10-b.png | Bin 0 -> 15648 bytes Tests/W3CTestSuite/png/pservers-grad-11-b.png | Bin 0 -> 55570 bytes Tests/W3CTestSuite/png/pservers-grad-12-b.png | Bin 0 -> 41055 bytes Tests/W3CTestSuite/png/pservers-grad-13-b.png | Bin 0 -> 98222 bytes Tests/W3CTestSuite/png/pservers-grad-14-b.png | Bin 0 -> 34446 bytes Tests/W3CTestSuite/png/pservers-grad-15-b.png | Bin 0 -> 13791 bytes Tests/W3CTestSuite/png/pservers-grad-16-b.png | Bin 0 -> 6618 bytes Tests/W3CTestSuite/png/pservers-grad-17-b.png | Bin 0 -> 9478 bytes Tests/W3CTestSuite/png/pservers-grad-18-b.png | Bin 0 -> 5654 bytes Tests/W3CTestSuite/png/pservers-grad-19-b.png | Bin 0 -> 5497 bytes Tests/W3CTestSuite/png/pservers-grad-20-b.png | Bin 0 -> 9478 bytes Tests/W3CTestSuite/png/pservers-grad-21-b.png | Bin 0 -> 12246 bytes Tests/W3CTestSuite/png/pservers-grad-22-b.png | Bin 0 -> 9183 bytes Tests/W3CTestSuite/png/pservers-grad-23-f.png | Bin 0 -> 6050 bytes Tests/W3CTestSuite/png/pservers-grad-24-f.png | Bin 0 -> 7821 bytes .../png/pservers-grad-stops-01-f.png | Bin 0 -> 6115 bytes .../png/pservers-pattern-01-b.png | Bin 0 -> 22116 bytes .../png/pservers-pattern-02-f.png | Bin 0 -> 39651 bytes .../png/pservers-pattern-03-f.png | Bin 0 -> 5777 bytes .../png/pservers-pattern-04-f.png | Bin 0 -> 6211 bytes .../png/pservers-pattern-05-f.png | Bin 0 -> 7026 bytes .../png/pservers-pattern-06-f.png | Bin 0 -> 5983 bytes .../png/pservers-pattern-07-f.png | Bin 0 -> 7525 bytes .../png/pservers-pattern-08-f.png | Bin 0 -> 7525 bytes .../png/pservers-pattern-09-f.png | Bin 0 -> 5728 bytes Tests/W3CTestSuite/png/render-elems-01-t.png | Bin 0 -> 7539 bytes Tests/W3CTestSuite/png/render-elems-02-t.png | Bin 0 -> 10894 bytes Tests/W3CTestSuite/png/render-elems-03-t.png | Bin 0 -> 10822 bytes Tests/W3CTestSuite/png/render-elems-06-t.png | Bin 0 -> 8220 bytes Tests/W3CTestSuite/png/render-elems-07-t.png | Bin 0 -> 11451 bytes Tests/W3CTestSuite/png/render-elems-08-t.png | Bin 0 -> 11370 bytes Tests/W3CTestSuite/png/render-groups-01-b.png | Bin 0 -> 24277 bytes Tests/W3CTestSuite/png/render-groups-03-t.png | Bin 0 -> 28956 bytes Tests/W3CTestSuite/png/script-elem-01-b.png | Bin 0 -> 13547 bytes Tests/W3CTestSuite/png/script-handle-01-b.png | Bin 0 -> 11528 bytes Tests/W3CTestSuite/png/script-handle-02-b.png | Bin 0 -> 20894 bytes Tests/W3CTestSuite/png/script-handle-03-b.png | Bin 0 -> 21007 bytes Tests/W3CTestSuite/png/script-handle-04-b.png | Bin 0 -> 21948 bytes .../W3CTestSuite/png/script-specify-01-f.png | Bin 0 -> 7586 bytes .../W3CTestSuite/png/script-specify-02-f.png | Bin 0 -> 17730 bytes Tests/W3CTestSuite/png/shapes-circle-01-t.png | Bin 0 -> 19700 bytes Tests/W3CTestSuite/png/shapes-circle-02-t.png | Bin 0 -> 11293 bytes .../W3CTestSuite/png/shapes-ellipse-01-t.png | Bin 0 -> 16994 bytes .../W3CTestSuite/png/shapes-ellipse-02-t.png | Bin 0 -> 9660 bytes .../W3CTestSuite/png/shapes-ellipse-03-f.png | Bin 0 -> 12438 bytes .../W3CTestSuite/png/shapes-grammar-01-f.png | Bin 0 -> 16228 bytes Tests/W3CTestSuite/png/shapes-intro-01-t.png | Bin 0 -> 7182 bytes Tests/W3CTestSuite/png/shapes-intro-02-f.png | Bin 0 -> 11557 bytes Tests/W3CTestSuite/png/shapes-line-01-t.png | Bin 0 -> 15605 bytes Tests/W3CTestSuite/png/shapes-line-02-f.png | Bin 0 -> 8690 bytes .../W3CTestSuite/png/shapes-polygon-01-t.png | Bin 0 -> 18643 bytes .../W3CTestSuite/png/shapes-polygon-02-t.png | Bin 0 -> 33849 bytes .../W3CTestSuite/png/shapes-polygon-03-t.png | Bin 0 -> 6189 bytes .../W3CTestSuite/png/shapes-polyline-01-t.png | Bin 0 -> 21099 bytes .../W3CTestSuite/png/shapes-polyline-02-t.png | Bin 0 -> 30840 bytes Tests/W3CTestSuite/png/shapes-rect-01-t.png | Bin 0 -> 9609 bytes Tests/W3CTestSuite/png/shapes-rect-02-t.png | Bin 0 -> 5974 bytes Tests/W3CTestSuite/png/shapes-rect-03-t.png | Bin 0 -> 16545 bytes Tests/W3CTestSuite/png/shapes-rect-04-f.png | Bin 0 -> 9010 bytes Tests/W3CTestSuite/png/shapes-rect-05-f.png | Bin 0 -> 12120 bytes Tests/W3CTestSuite/png/shapes-rect-06-f.png | Bin 0 -> 11161 bytes Tests/W3CTestSuite/png/shapes-rect-07-f.png | Bin 0 -> 10342 bytes Tests/W3CTestSuite/png/struct-cond-01-t.png | Bin 0 -> 4460 bytes Tests/W3CTestSuite/png/struct-cond-02-t.png | Bin 0 -> 10069 bytes Tests/W3CTestSuite/png/struct-cond-03-t.png | Bin 0 -> 10051 bytes .../png/struct-cond-overview-02-f.png | Bin 0 -> 6010 bytes .../png/struct-cond-overview-03-f.png | Bin 0 -> 6207 bytes .../png/struct-cond-overview-04-f.png | Bin 0 -> 6069 bytes .../png/struct-cond-overview-05-f.png | Bin 0 -> 6098 bytes Tests/W3CTestSuite/png/struct-defs-01-t.png | Bin 0 -> 6249 bytes Tests/W3CTestSuite/png/struct-dom-01-b.png | Bin 0 -> 11914 bytes Tests/W3CTestSuite/png/struct-dom-02-b.png | Bin 0 -> 13586 bytes Tests/W3CTestSuite/png/struct-dom-03-b.png | Bin 0 -> 17061 bytes Tests/W3CTestSuite/png/struct-dom-04-b.png | Bin 0 -> 23161 bytes Tests/W3CTestSuite/png/struct-dom-05-b.png | Bin 0 -> 25222 bytes Tests/W3CTestSuite/png/struct-dom-06-b.png | Bin 0 -> 6362 bytes Tests/W3CTestSuite/png/struct-dom-07-f.png | Bin 0 -> 4927 bytes Tests/W3CTestSuite/png/struct-dom-08-f.png | Bin 0 -> 7916 bytes Tests/W3CTestSuite/png/struct-dom-09-b.png | Bin 0 -> 10620 bytes Tests/W3CTestSuite/png/struct-dom-11-f.png | Bin 0 -> 11003 bytes Tests/W3CTestSuite/png/struct-dom-12-b.png | Bin 0 -> 13374 bytes Tests/W3CTestSuite/png/struct-dom-13-f.png | Bin 0 -> 8464 bytes Tests/W3CTestSuite/png/struct-dom-14-f.png | Bin 0 -> 5814 bytes Tests/W3CTestSuite/png/struct-dom-15-f.png | Bin 0 -> 5605 bytes Tests/W3CTestSuite/png/struct-dom-16-f.png | Bin 0 -> 7018 bytes Tests/W3CTestSuite/png/struct-dom-17-f.png | Bin 0 -> 9094 bytes Tests/W3CTestSuite/png/struct-dom-18-f.png | Bin 0 -> 8317 bytes Tests/W3CTestSuite/png/struct-dom-19-f.png | Bin 0 -> 10833 bytes Tests/W3CTestSuite/png/struct-dom-20-f.png | Bin 0 -> 6621 bytes Tests/W3CTestSuite/png/struct-frag-01-t.png | Bin 0 -> 862 bytes Tests/W3CTestSuite/png/struct-frag-02-t.png | Bin 0 -> 8471 bytes Tests/W3CTestSuite/png/struct-frag-03-t.png | Bin 0 -> 7305 bytes Tests/W3CTestSuite/png/struct-frag-04-t.png | Bin 0 -> 6330 bytes Tests/W3CTestSuite/png/struct-frag-05-t.png | Bin 0 -> 11341 bytes Tests/W3CTestSuite/png/struct-frag-06-t.png | Bin 0 -> 18740 bytes Tests/W3CTestSuite/png/struct-group-01-t.png | Bin 0 -> 6172 bytes Tests/W3CTestSuite/png/struct-group-02-b.png | Bin 0 -> 4659 bytes Tests/W3CTestSuite/png/struct-group-03-t.png | Bin 0 -> 20197 bytes Tests/W3CTestSuite/png/struct-image-01-t.png | Bin 0 -> 116366 bytes Tests/W3CTestSuite/png/struct-image-02-b.png | Bin 0 -> 43746 bytes Tests/W3CTestSuite/png/struct-image-03-t.png | Bin 0 -> 8956 bytes Tests/W3CTestSuite/png/struct-image-04-t.png | Bin 0 -> 78429 bytes Tests/W3CTestSuite/png/struct-image-05-b.png | Bin 0 -> 4707 bytes Tests/W3CTestSuite/png/struct-image-06-t.png | Bin 0 -> 10366 bytes Tests/W3CTestSuite/png/struct-image-07-t.png | Bin 0 -> 13331 bytes Tests/W3CTestSuite/png/struct-image-08-t.png | Bin 0 -> 49927 bytes Tests/W3CTestSuite/png/struct-image-09-t.png | Bin 0 -> 55852 bytes Tests/W3CTestSuite/png/struct-image-10-t.png | Bin 0 -> 85658 bytes Tests/W3CTestSuite/png/struct-image-11-b.png | Bin 0 -> 5891 bytes Tests/W3CTestSuite/png/struct-image-12-b.png | Bin 0 -> 5910 bytes Tests/W3CTestSuite/png/struct-image-13-f.png | Bin 0 -> 37421 bytes Tests/W3CTestSuite/png/struct-image-14-f.png | Bin 0 -> 36806 bytes Tests/W3CTestSuite/png/struct-image-15-f.png | Bin 0 -> 29832 bytes Tests/W3CTestSuite/png/struct-image-16-f.png | Bin 0 -> 5137 bytes Tests/W3CTestSuite/png/struct-image-17-b.png | Bin 0 -> 7371 bytes Tests/W3CTestSuite/png/struct-image-18-f.png | Bin 0 -> 7297 bytes Tests/W3CTestSuite/png/struct-image-19-f.png | Bin 0 -> 11601 bytes Tests/W3CTestSuite/png/struct-svg-01-f.png | Bin 0 -> 18997 bytes Tests/W3CTestSuite/png/struct-svg-02-f.png | Bin 0 -> 7763 bytes Tests/W3CTestSuite/png/struct-svg-03-f.png | Bin 0 -> 5765 bytes Tests/W3CTestSuite/png/struct-symbol-01-b.png | Bin 0 -> 55123 bytes Tests/W3CTestSuite/png/struct-use-01-t.png | Bin 0 -> 24390 bytes Tests/W3CTestSuite/png/struct-use-03-t.png | Bin 0 -> 9507 bytes Tests/W3CTestSuite/png/struct-use-04-b.png | Bin 0 -> 23862 bytes Tests/W3CTestSuite/png/struct-use-05-b.png | Bin 0 -> 29471 bytes Tests/W3CTestSuite/png/struct-use-06-b.png | Bin 0 -> 5894 bytes Tests/W3CTestSuite/png/struct-use-07-b.png | Bin 0 -> 5749 bytes Tests/W3CTestSuite/png/struct-use-08-b.png | Bin 0 -> 11701 bytes Tests/W3CTestSuite/png/struct-use-09-b.png | Bin 0 -> 5952 bytes Tests/W3CTestSuite/png/struct-use-10-f.png | Bin 0 -> 7279 bytes Tests/W3CTestSuite/png/struct-use-11-f.png | Bin 0 -> 10754 bytes Tests/W3CTestSuite/png/struct-use-12-f.png | Bin 0 -> 6415 bytes Tests/W3CTestSuite/png/struct-use-13-f.png | Bin 0 -> 4632 bytes Tests/W3CTestSuite/png/struct-use-14-f.png | Bin 0 -> 6070 bytes Tests/W3CTestSuite/png/struct-use-15-f.png | Bin 0 -> 6056 bytes Tests/W3CTestSuite/png/styling-class-01-f.png | Bin 0 -> 4770 bytes Tests/W3CTestSuite/png/styling-css-01-b.png | Bin 0 -> 10141 bytes Tests/W3CTestSuite/png/styling-css-02-b.png | Bin 0 -> 10039 bytes Tests/W3CTestSuite/png/styling-css-03-b.png | Bin 0 -> 12348 bytes Tests/W3CTestSuite/png/styling-css-04-f.png | Bin 0 -> 7825 bytes Tests/W3CTestSuite/png/styling-css-05-b.png | Bin 0 -> 10718 bytes Tests/W3CTestSuite/png/styling-css-06-b.png | Bin 0 -> 25280 bytes Tests/W3CTestSuite/png/styling-css-07-f.png | Bin 0 -> 4632 bytes Tests/W3CTestSuite/png/styling-css-08-f.png | Bin 0 -> 10367 bytes Tests/W3CTestSuite/png/styling-css-09-f.png | Bin 0 -> 7993 bytes Tests/W3CTestSuite/png/styling-css-10-f.png | Bin 0 -> 12788 bytes Tests/W3CTestSuite/png/styling-elem-01-b.png | Bin 0 -> 11193 bytes Tests/W3CTestSuite/png/styling-elem-02-b.png | Bin 0 -> 23350 bytes .../W3CTestSuite/png/styling-inherit-01-b.png | Bin 0 -> 34388 bytes Tests/W3CTestSuite/png/styling-pres-01-t.png | Bin 0 -> 6493 bytes Tests/W3CTestSuite/png/styling-pres-02-f.png | Bin 0 -> 24861 bytes Tests/W3CTestSuite/png/styling-pres-03-f.png | Bin 0 -> 7993 bytes Tests/W3CTestSuite/png/styling-pres-04-f.png | Bin 0 -> 7993 bytes Tests/W3CTestSuite/png/styling-pres-05-f.png | Bin 0 -> 7993 bytes Tests/W3CTestSuite/png/svgdom-over-01-f.png | Bin 0 -> 40319 bytes Tests/W3CTestSuite/png/text-align-01-b.png | Bin 0 -> 32403 bytes Tests/W3CTestSuite/png/text-align-02-b.png | Bin 0 -> 22700 bytes Tests/W3CTestSuite/png/text-align-03-b.png | Bin 0 -> 18603 bytes Tests/W3CTestSuite/png/text-align-04-b.png | Bin 0 -> 16454 bytes Tests/W3CTestSuite/png/text-align-05-b.png | Bin 0 -> 20507 bytes Tests/W3CTestSuite/png/text-align-06-b.png | Bin 0 -> 14330 bytes Tests/W3CTestSuite/png/text-align-07-t.png | Bin 0 -> 11059 bytes Tests/W3CTestSuite/png/text-align-08-b.png | Bin 0 -> 9132 bytes Tests/W3CTestSuite/png/text-altglyph-01-b.png | Bin 0 -> 19582 bytes Tests/W3CTestSuite/png/text-altglyph-02-b.png | Bin 0 -> 15957 bytes Tests/W3CTestSuite/png/text-altglyph-03-b.png | Bin 0 -> 18828 bytes Tests/W3CTestSuite/png/text-bidi-01-t.png | Bin 0 -> 10028 bytes Tests/W3CTestSuite/png/text-deco-01-b.png | Bin 0 -> 36556 bytes Tests/W3CTestSuite/png/text-dom-01-f.png | Bin 0 -> 8542 bytes Tests/W3CTestSuite/png/text-dom-02-f.png | Bin 0 -> 20452 bytes Tests/W3CTestSuite/png/text-dom-03-f.png | Bin 0 -> 24608 bytes Tests/W3CTestSuite/png/text-dom-04-f.png | Bin 0 -> 7013 bytes Tests/W3CTestSuite/png/text-dom-05-f.png | Bin 0 -> 18793 bytes Tests/W3CTestSuite/png/text-fonts-01-t.png | Bin 0 -> 26203 bytes Tests/W3CTestSuite/png/text-fonts-02-t.png | Bin 0 -> 22378 bytes Tests/W3CTestSuite/png/text-fonts-03-t.png | Bin 0 -> 17952 bytes Tests/W3CTestSuite/png/text-fonts-04-t.png | Bin 0 -> 17952 bytes Tests/W3CTestSuite/png/text-fonts-05-f.png | Bin 0 -> 7046 bytes Tests/W3CTestSuite/png/text-fonts-202-t.png | Bin 0 -> 30341 bytes Tests/W3CTestSuite/png/text-fonts-203-t.png | Bin 0 -> 23273 bytes Tests/W3CTestSuite/png/text-fonts-204-t.png | Bin 0 -> 25143 bytes Tests/W3CTestSuite/png/text-intro-01-t.png | Bin 0 -> 26424 bytes Tests/W3CTestSuite/png/text-intro-02-b.png | Bin 0 -> 17870 bytes Tests/W3CTestSuite/png/text-intro-03-b.png | Bin 0 -> 16629 bytes Tests/W3CTestSuite/png/text-intro-04-t.png | Bin 0 -> 27205 bytes Tests/W3CTestSuite/png/text-intro-05-t.png | Bin 0 -> 16824 bytes Tests/W3CTestSuite/png/text-intro-06-t.png | Bin 0 -> 13298 bytes Tests/W3CTestSuite/png/text-intro-07-t.png | Bin 0 -> 20255 bytes Tests/W3CTestSuite/png/text-intro-09-b.png | Bin 0 -> 17910 bytes Tests/W3CTestSuite/png/text-intro-10-f.png | Bin 0 -> 16847 bytes Tests/W3CTestSuite/png/text-intro-11-t.png | Bin 0 -> 15955 bytes Tests/W3CTestSuite/png/text-intro-12-t.png | Bin 0 -> 12313 bytes Tests/W3CTestSuite/png/text-path-01-b.png | Bin 0 -> 27037 bytes Tests/W3CTestSuite/png/text-path-02-b.png | Bin 0 -> 33201 bytes Tests/W3CTestSuite/png/text-spacing-01-b.png | Bin 0 -> 31007 bytes Tests/W3CTestSuite/png/text-text-01-b.png | Bin 0 -> 73363 bytes Tests/W3CTestSuite/png/text-text-03-b.png | Bin 0 -> 26482 bytes Tests/W3CTestSuite/png/text-text-04-t.png | Bin 0 -> 12954 bytes Tests/W3CTestSuite/png/text-text-05-t.png | Bin 0 -> 12351 bytes Tests/W3CTestSuite/png/text-text-06-t.png | Bin 0 -> 7969 bytes Tests/W3CTestSuite/png/text-text-07-t.png | Bin 0 -> 19583 bytes Tests/W3CTestSuite/png/text-text-08-b.png | Bin 0 -> 56069 bytes Tests/W3CTestSuite/png/text-text-09-t.png | Bin 0 -> 12984 bytes Tests/W3CTestSuite/png/text-text-10-t.png | Bin 0 -> 82546 bytes Tests/W3CTestSuite/png/text-text-11-t.png | Bin 0 -> 55258 bytes Tests/W3CTestSuite/png/text-text-12-t.png | Bin 0 -> 13842 bytes Tests/W3CTestSuite/png/text-tref-01-b.png | Bin 0 -> 17807 bytes Tests/W3CTestSuite/png/text-tref-02-b.png | Bin 0 -> 15611 bytes Tests/W3CTestSuite/png/text-tref-03-b.png | Bin 0 -> 13593 bytes Tests/W3CTestSuite/png/text-tselect-01-b.png | Bin 0 -> 47910 bytes Tests/W3CTestSuite/png/text-tselect-02-f.png | Bin 0 -> 17418 bytes Tests/W3CTestSuite/png/text-tselect-03-f.png | Bin 0 -> 16487 bytes Tests/W3CTestSuite/png/text-tspan-01-b.png | Bin 0 -> 47912 bytes Tests/W3CTestSuite/png/text-tspan-02-b.png | Bin 0 -> 43826 bytes Tests/W3CTestSuite/png/text-ws-01-t.png | Bin 0 -> 60394 bytes Tests/W3CTestSuite/png/text-ws-02-t.png | Bin 0 -> 63067 bytes Tests/W3CTestSuite/png/text-ws-03-t.png | Bin 0 -> 22316 bytes Tests/W3CTestSuite/png/types-basic-01-f.png | Bin 0 -> 10640 bytes Tests/W3CTestSuite/png/types-basic-02-f.png | Bin 0 -> 23588 bytes Tests/W3CTestSuite/png/types-dom-01-b.png | Bin 0 -> 41270 bytes Tests/W3CTestSuite/png/types-dom-02-f.png | Bin 0 -> 20310 bytes Tests/W3CTestSuite/png/types-dom-03-b.png | Bin 0 -> 13096 bytes Tests/W3CTestSuite/png/types-dom-04-b.png | Bin 0 -> 26379 bytes Tests/W3CTestSuite/png/types-dom-05-b.png | Bin 0 -> 24883 bytes Tests/W3CTestSuite/png/types-dom-06-f.png | Bin 0 -> 9597 bytes Tests/W3CTestSuite/png/types-dom-07-f.png | Bin 0 -> 13434 bytes Tests/W3CTestSuite/png/types-dom-08-f.png | Bin 0 -> 27349 bytes .../png/types-dom-svgfittoviewbox-01-f.png | Bin 0 -> 7350 bytes .../png/types-dom-svglengthlist-01-f.png | Bin 0 -> 7397 bytes .../png/types-dom-svgnumberlist-01-f.png | Bin 0 -> 7506 bytes .../png/types-dom-svgstringlist-01-f.png | Bin 0 -> 7397 bytes .../png/types-dom-svgtransformable-01-f.png | Bin 0 -> 7316 bytes .../resources/Baselines/Tribase.sfd | 119 + .../resources/Baselines/Tribase.svg | 34 + Tests/W3CTestSuite/resources/Blocky.svg | 21 + Tests/W3CTestSuite/resources/Blocky.woff | Bin 0 -> 1480 bytes Tests/W3CTestSuite/resources/EzraSILSR.woff | Bin 0 -> 56212 bytes Tests/W3CTestSuite/resources/FreeSerif.svg | 541 +++++ .../W3CTestSuite/resources/FreeSerifBold.svg | 539 +++++ .../resources/FreeSerifBoldItalic.svg | 570 +++++ .../resources/FreeSerifItalic.svg | 645 +++++ Tests/W3CTestSuite/resources/Heb.svg | 1077 +++++++++ Tests/W3CTestSuite/resources/LinBTestFont.svg | 12 + .../W3CTestSuite/resources/Plane1/.directory | 3 + .../resources/Plane1/Plane1Test-forFF.svg | 11 + .../resources/Plane1/PlaneOne.sfd | 110 + .../resources/Plane1/PlaneOne.svg | 35 + .../Plane1/svgtestsuite-woffmeta.xml | 26 + .../resources/SVGFreeSans-ISO-8859-1.svg | 1306 ++++++++++ Tests/W3CTestSuite/resources/SVGFreeSans.svg | 569 +++++ .../resources/SVGFreeSansBold-Lat1.svg | 1787 ++++++++++++++ .../resources/SVGFreeSansBold.svg | 1787 ++++++++++++++ .../resources/SVGFreeSansBoldItalic.svg | 1807 ++++++++++++++ .../resources/SVGFreeSansBoldOblique-Lat1.svg | 1807 ++++++++++++++ .../resources/SVGFreeSansItalic.svg | 1306 ++++++++++ .../resources/SVGFreeSansOblique-Lat1.svg | 1807 ++++++++++++++ .../resources/ScheherazadeRegOT.ttf | Bin 0 -> 260392 bytes Tests/W3CTestSuite/resources/ZCB.svg | 602 +++++ Tests/W3CTestSuite/resources/ZCL.svg | 606 +++++ Tests/W3CTestSuite/resources/ZCR.svg | 605 +++++ Tests/W3CTestSuite/resources/ZCSB.svg | 2111 +++++++++++++++++ Tests/W3CTestSuite/resources/ZCXB.svg | 603 +++++ Tests/W3CTestSuite/resources/ZSSB.svg | 603 +++++ Tests/W3CTestSuite/resources/anglepoi.woff | Bin 0 -> 14020 bytes Tests/W3CTestSuite/resources/gnufreefonts.xml | 19 + Tests/W3CTestSuite/resources/sch.xml | 19 + Tests/W3CTestSuite/resources/testharness.js | 963 ++++++++ .../W3CTestSuite/svg/__AJ_Digital_Camera.svg | 340 +++ Tests/W3CTestSuite/svg/__issue-34-02.svg | 25 + Tests/W3CTestSuite/svg/__issue-83-01.svg | 38 + Tests/W3CTestSuite/svg/__tiger.svg | 1978 +++++++++++++++ Tests/W3CTestSuite/svg/animate-dom-01-f.svg | 190 ++ Tests/W3CTestSuite/svg/animate-dom-02-f.svg | 83 + Tests/W3CTestSuite/svg/animate-elem-02-t.svg | 122 + Tests/W3CTestSuite/svg/animate-elem-03-t.svg | 99 + Tests/W3CTestSuite/svg/animate-elem-04-t.svg | 71 + Tests/W3CTestSuite/svg/animate-elem-05-t.svg | 77 + Tests/W3CTestSuite/svg/animate-elem-06-t.svg | 71 + Tests/W3CTestSuite/svg/animate-elem-07-t.svg | 73 + Tests/W3CTestSuite/svg/animate-elem-08-t.svg | 83 + Tests/W3CTestSuite/svg/animate-elem-09-t.svg | 97 + Tests/W3CTestSuite/svg/animate-elem-10-t.svg | 96 + Tests/W3CTestSuite/svg/animate-elem-11-t.svg | 93 + Tests/W3CTestSuite/svg/animate-elem-12-t.svg | 93 + Tests/W3CTestSuite/svg/animate-elem-13-t.svg | 105 + Tests/W3CTestSuite/svg/animate-elem-14-t.svg | 78 + Tests/W3CTestSuite/svg/animate-elem-15-t.svg | 79 + Tests/W3CTestSuite/svg/animate-elem-17-t.svg | 79 + Tests/W3CTestSuite/svg/animate-elem-19-t.svg | 78 + Tests/W3CTestSuite/svg/animate-elem-20-t.svg | 76 + Tests/W3CTestSuite/svg/animate-elem-21-t.svg | 109 + Tests/W3CTestSuite/svg/animate-elem-22-b.svg | 88 + Tests/W3CTestSuite/svg/animate-elem-23-t.svg | 93 + Tests/W3CTestSuite/svg/animate-elem-24-t.svg | 129 + Tests/W3CTestSuite/svg/animate-elem-25-t.svg | 89 + Tests/W3CTestSuite/svg/animate-elem-26-t.svg | 85 + Tests/W3CTestSuite/svg/animate-elem-27-t.svg | 93 + Tests/W3CTestSuite/svg/animate-elem-28-t.svg | 63 + Tests/W3CTestSuite/svg/animate-elem-29-b.svg | 98 + Tests/W3CTestSuite/svg/animate-elem-30-t.svg | 169 ++ Tests/W3CTestSuite/svg/animate-elem-31-t.svg | 139 ++ Tests/W3CTestSuite/svg/animate-elem-32-t.svg | 146 ++ Tests/W3CTestSuite/svg/animate-elem-33-t.svg | 149 ++ Tests/W3CTestSuite/svg/animate-elem-34-t.svg | 123 + Tests/W3CTestSuite/svg/animate-elem-35-t.svg | 150 ++ Tests/W3CTestSuite/svg/animate-elem-36-t.svg | 149 ++ Tests/W3CTestSuite/svg/animate-elem-37-t.svg | 105 + Tests/W3CTestSuite/svg/animate-elem-38-t.svg | 90 + Tests/W3CTestSuite/svg/animate-elem-39-t.svg | 158 ++ Tests/W3CTestSuite/svg/animate-elem-40-t.svg | 239 ++ Tests/W3CTestSuite/svg/animate-elem-41-t.svg | 445 ++++ Tests/W3CTestSuite/svg/animate-elem-44-t.svg | 94 + Tests/W3CTestSuite/svg/animate-elem-46-t.svg | 279 +++ Tests/W3CTestSuite/svg/animate-elem-52-t.svg | 112 + Tests/W3CTestSuite/svg/animate-elem-53-t.svg | 134 ++ Tests/W3CTestSuite/svg/animate-elem-60-t.svg | 254 ++ Tests/W3CTestSuite/svg/animate-elem-61-t.svg | 191 ++ Tests/W3CTestSuite/svg/animate-elem-62-t.svg | 260 ++ Tests/W3CTestSuite/svg/animate-elem-63-t.svg | 200 ++ Tests/W3CTestSuite/svg/animate-elem-64-t.svg | 132 ++ Tests/W3CTestSuite/svg/animate-elem-65-t.svg | 223 ++ Tests/W3CTestSuite/svg/animate-elem-66-t.svg | 199 ++ Tests/W3CTestSuite/svg/animate-elem-67-t.svg | 176 ++ Tests/W3CTestSuite/svg/animate-elem-68-t.svg | 137 ++ Tests/W3CTestSuite/svg/animate-elem-69-t.svg | 155 ++ Tests/W3CTestSuite/svg/animate-elem-70-t.svg | 152 ++ Tests/W3CTestSuite/svg/animate-elem-77-t.svg | 357 +++ Tests/W3CTestSuite/svg/animate-elem-78-t.svg | 563 +++++ Tests/W3CTestSuite/svg/animate-elem-80-t.svg | 312 +++ Tests/W3CTestSuite/svg/animate-elem-81-t.svg | 162 ++ Tests/W3CTestSuite/svg/animate-elem-82-t.svg | 301 +++ Tests/W3CTestSuite/svg/animate-elem-83-t.svg | 229 ++ Tests/W3CTestSuite/svg/animate-elem-84-t.svg | 80 + Tests/W3CTestSuite/svg/animate-elem-85-t.svg | 100 + Tests/W3CTestSuite/svg/animate-elem-86-t.svg | 92 + Tests/W3CTestSuite/svg/animate-elem-87-t.svg | 89 + Tests/W3CTestSuite/svg/animate-elem-88-t.svg | 67 + Tests/W3CTestSuite/svg/animate-elem-89-t.svg | 110 + Tests/W3CTestSuite/svg/animate-elem-90-b.svg | 104 + Tests/W3CTestSuite/svg/animate-elem-91-t.svg | 198 ++ Tests/W3CTestSuite/svg/animate-elem-92-t.svg | 113 + .../svg/animate-interact-events-01-t.svg | 116 + .../svg/animate-interact-pevents-01-t.svg | 285 +++ .../svg/animate-interact-pevents-02-t.svg | 116 + .../svg/animate-interact-pevents-03-t.svg | 219 ++ .../svg/animate-interact-pevents-04-t.svg | 208 ++ .../svg/animate-pservers-grad-01-b.svg | 103 + .../svg/animate-script-elem-01-b.svg | 90 + .../svg/animate-struct-dom-01-b.svg | 93 + Tests/W3CTestSuite/svg/color-prof-01-f.svg | 76 + Tests/W3CTestSuite/svg/color-prop-01-b.svg | 81 + Tests/W3CTestSuite/svg/color-prop-02-f.svg | 113 + Tests/W3CTestSuite/svg/color-prop-03-t.svg | 109 + Tests/W3CTestSuite/svg/color-prop-04-t.svg | 96 + Tests/W3CTestSuite/svg/color-prop-05-t.svg | 60 + .../svg/conform-viewers-01-t.svgz | Bin 0 -> 2188 bytes .../W3CTestSuite/svg/conform-viewers-02-f.svg | 79 + .../W3CTestSuite/svg/conform-viewers-03-f.svg | 123 + Tests/W3CTestSuite/svg/coords-coord-01-t.svg | 83 + Tests/W3CTestSuite/svg/coords-coord-02-t.svg | 82 + Tests/W3CTestSuite/svg/coords-dom-01-f.svg | 115 + Tests/W3CTestSuite/svg/coords-dom-02-f.svg | 96 + Tests/W3CTestSuite/svg/coords-dom-03-f.svg | 116 + Tests/W3CTestSuite/svg/coords-dom-04-f.svg | 166 ++ Tests/W3CTestSuite/svg/coords-trans-01-b.svg | 239 ++ Tests/W3CTestSuite/svg/coords-trans-02-t.svg | 176 ++ Tests/W3CTestSuite/svg/coords-trans-03-t.svg | 99 + Tests/W3CTestSuite/svg/coords-trans-04-t.svg | 88 + Tests/W3CTestSuite/svg/coords-trans-05-t.svg | 88 + Tests/W3CTestSuite/svg/coords-trans-06-t.svg | 82 + Tests/W3CTestSuite/svg/coords-trans-07-t.svg | 70 + Tests/W3CTestSuite/svg/coords-trans-08-t.svg | 76 + Tests/W3CTestSuite/svg/coords-trans-09-t.svg | 102 + Tests/W3CTestSuite/svg/coords-trans-10-f.svg | 90 + Tests/W3CTestSuite/svg/coords-trans-11-f.svg | 86 + Tests/W3CTestSuite/svg/coords-trans-12-f.svg | 88 + Tests/W3CTestSuite/svg/coords-trans-13-f.svg | 87 + Tests/W3CTestSuite/svg/coords-trans-14-f.svg | 89 + .../svg/coords-transformattr-01-f.svg | 94 + .../svg/coords-transformattr-02-f.svg | 93 + .../svg/coords-transformattr-03-f.svg | 62 + .../svg/coords-transformattr-04-f.svg | 60 + .../svg/coords-transformattr-05-f.svg | 71 + Tests/W3CTestSuite/svg/coords-units-01-b.svg | 175 ++ Tests/W3CTestSuite/svg/coords-units-02-b.svg | 139 ++ Tests/W3CTestSuite/svg/coords-units-03-b.svg | 160 ++ .../W3CTestSuite/svg/coords-viewattr-01-b.svg | 140 ++ .../W3CTestSuite/svg/coords-viewattr-02-b.svg | 716 ++++++ .../W3CTestSuite/svg/coords-viewattr-03-b.svg | 94 + .../W3CTestSuite/svg/coords-viewattr-04-f.svg | 129 + .../svg/extend-namespace-01-f.svg | 180 ++ .../svg/filters-background-01-f.svg | 159 ++ Tests/W3CTestSuite/svg/filters-blend-01-b.svg | 108 + Tests/W3CTestSuite/svg/filters-color-01-b.svg | 112 + Tests/W3CTestSuite/svg/filters-color-02-b.svg | 112 + .../svg/filters-composite-02-b.svg | 203 ++ .../svg/filters-composite-03-f.svg | 87 + .../svg/filters-composite-04-f.svg | 78 + .../svg/filters-composite-05-f.svg | 68 + .../svg/filters-comptran-01-b.svg | 126 + Tests/W3CTestSuite/svg/filters-conv-01-f.svg | 112 + Tests/W3CTestSuite/svg/filters-conv-02-f.svg | 77 + Tests/W3CTestSuite/svg/filters-conv-03-f.svg | 102 + Tests/W3CTestSuite/svg/filters-conv-04-f.svg | 163 ++ Tests/W3CTestSuite/svg/filters-conv-05-f.svg | 83 + .../W3CTestSuite/svg/filters-diffuse-01-f.svg | 152 ++ .../svg/filters-displace-01-f.svg | 141 ++ .../svg/filters-displace-02-f.svg | 90 + .../W3CTestSuite/svg/filters-example-01-b.svg | 93 + Tests/W3CTestSuite/svg/filters-felem-01-b.svg | 90 + Tests/W3CTestSuite/svg/filters-felem-02-f.svg | 127 + Tests/W3CTestSuite/svg/filters-gauss-01-b.svg | 93 + Tests/W3CTestSuite/svg/filters-gauss-02-f.svg | 85 + Tests/W3CTestSuite/svg/filters-gauss-03-f.svg | 65 + Tests/W3CTestSuite/svg/filters-image-01-b.svg | 59 + Tests/W3CTestSuite/svg/filters-image-02-b.svg | 79 + Tests/W3CTestSuite/svg/filters-image-03-f.svg | 179 ++ Tests/W3CTestSuite/svg/filters-image-04-f.svg | 119 + Tests/W3CTestSuite/svg/filters-image-05-f.svg | 195 ++ Tests/W3CTestSuite/svg/filters-light-01-f.svg | 187 ++ Tests/W3CTestSuite/svg/filters-light-02-f.svg | 97 + Tests/W3CTestSuite/svg/filters-light-03-f.svg | 124 + Tests/W3CTestSuite/svg/filters-light-04-f.svg | 136 ++ Tests/W3CTestSuite/svg/filters-light-05-f.svg | 252 ++ Tests/W3CTestSuite/svg/filters-morph-01-f.svg | 103 + .../W3CTestSuite/svg/filters-offset-01-b.svg | 112 + .../W3CTestSuite/svg/filters-offset-02-b.svg | 83 + .../svg/filters-overview-01-b.svg | 165 ++ .../svg/filters-overview-02-b.svg | 178 ++ .../svg/filters-overview-03-b.svg | 166 ++ .../svg/filters-specular-01-f.svg | 195 ++ Tests/W3CTestSuite/svg/filters-tile-01-b.svg | 80 + Tests/W3CTestSuite/svg/filters-turb-01-f.svg | 102 + Tests/W3CTestSuite/svg/filters-turb-02-f.svg | 147 ++ Tests/W3CTestSuite/svg/fonts-desc-01-t.svg | 107 + Tests/W3CTestSuite/svg/fonts-desc-02-t.svg | 152 ++ Tests/W3CTestSuite/svg/fonts-desc-03-t.svg | 128 + Tests/W3CTestSuite/svg/fonts-desc-04-t.svg | 154 ++ Tests/W3CTestSuite/svg/fonts-desc-05-t.svg | 136 ++ Tests/W3CTestSuite/svg/fonts-elem-01-t.svg | 120 + Tests/W3CTestSuite/svg/fonts-elem-02-t.svg | 128 + Tests/W3CTestSuite/svg/fonts-elem-03-b.svg | 122 + Tests/W3CTestSuite/svg/fonts-elem-04-b.svg | 122 + Tests/W3CTestSuite/svg/fonts-elem-05-t.svg | 132 ++ Tests/W3CTestSuite/svg/fonts-elem-06-t.svg | 122 + Tests/W3CTestSuite/svg/fonts-elem-07-b.svg | 132 ++ Tests/W3CTestSuite/svg/fonts-glyph-02-t.svg | 88 + Tests/W3CTestSuite/svg/fonts-glyph-03-t.svg | 78 + Tests/W3CTestSuite/svg/fonts-glyph-04-t.svg | 69 + Tests/W3CTestSuite/svg/fonts-kern-01-t.svg | 293 +++ .../W3CTestSuite/svg/fonts-overview-201-t.svg | 122 + Tests/W3CTestSuite/svg/imp-path-01-f.svg | 54 + .../W3CTestSuite/svg/interact-cursor-01-f.svg | 158 ++ Tests/W3CTestSuite/svg/interact-dom-01-b.svg | 133 ++ .../W3CTestSuite/svg/interact-events-01-b.svg | 123 + .../W3CTestSuite/svg/interact-events-02-b.svg | 77 + .../svg/interact-events-202-f.svg | 83 + .../svg/interact-events-203-t.svg | 109 + .../W3CTestSuite/svg/interact-order-01-b.svg | 105 + .../W3CTestSuite/svg/interact-order-02-b.svg | 102 + .../W3CTestSuite/svg/interact-order-03-b.svg | 100 + .../svg/interact-pevents-01-b.svg | 197 ++ .../svg/interact-pevents-03-b.svg | 131 + .../svg/interact-pevents-04-t.svg | 132 ++ .../svg/interact-pevents-05-b.svg | 121 + .../svg/interact-pevents-07-t.svg | 114 + .../svg/interact-pevents-08-f.svg | 185 ++ .../svg/interact-pevents-09-f.svg | 174 ++ .../svg/interact-pevents-10-f.svg | 82 + .../svg/interact-pointer-01-t.svg | 78 + .../svg/interact-pointer-02-t.svg | 77 + .../svg/interact-pointer-03-t.svg | 77 + .../svg/interact-pointer-04-f.svg | 88 + Tests/W3CTestSuite/svg/interact-zoom-01-t.svg | 72 + Tests/W3CTestSuite/svg/interact-zoom-02-t.svg | 72 + Tests/W3CTestSuite/svg/interact-zoom-03-t.svg | 74 + Tests/W3CTestSuite/svg/linking-a-01-b.svg | 80 + Tests/W3CTestSuite/svg/linking-a-03-b.svg | 82 + Tests/W3CTestSuite/svg/linking-a-04-t.svg | 113 + Tests/W3CTestSuite/svg/linking-a-05-t.svg | 102 + Tests/W3CTestSuite/svg/linking-a-07-t.svg | 110 + Tests/W3CTestSuite/svg/linking-a-08-t.svg | 61 + Tests/W3CTestSuite/svg/linking-a-09-b.svg | 71 + Tests/W3CTestSuite/svg/linking-a-10-f.svg | 83 + Tests/W3CTestSuite/svg/linking-frag-01-f.svg | 66 + Tests/W3CTestSuite/svg/linking-uri-01-b.svg | 149 ++ Tests/W3CTestSuite/svg/linking-uri-02-b.svg | 156 ++ Tests/W3CTestSuite/svg/linking-uri-03-t.svg | 92 + .../W3CTestSuite/svg/masking-filter-01-f.svg | 81 + Tests/W3CTestSuite/svg/masking-intro-01-f.svg | 81 + Tests/W3CTestSuite/svg/masking-mask-01-b.svg | 131 + Tests/W3CTestSuite/svg/masking-mask-02-f.svg | 50 + .../W3CTestSuite/svg/masking-opacity-01-b.svg | 125 + Tests/W3CTestSuite/svg/masking-path-01-b.svg | 95 + Tests/W3CTestSuite/svg/masking-path-02-b.svg | 84 + Tests/W3CTestSuite/svg/masking-path-03-b.svg | 134 ++ Tests/W3CTestSuite/svg/masking-path-04-b.svg | 79 + Tests/W3CTestSuite/svg/masking-path-05-f.svg | 78 + Tests/W3CTestSuite/svg/masking-path-06-b.svg | 66 + Tests/W3CTestSuite/svg/masking-path-07-b.svg | 147 ++ Tests/W3CTestSuite/svg/masking-path-08-b.svg | 140 ++ Tests/W3CTestSuite/svg/masking-path-09-b.svg | 73 + Tests/W3CTestSuite/svg/masking-path-10-b.svg | 138 ++ Tests/W3CTestSuite/svg/masking-path-11-b.svg | 67 + Tests/W3CTestSuite/svg/masking-path-12-f.svg | 78 + Tests/W3CTestSuite/svg/masking-path-13-f.svg | 52 + Tests/W3CTestSuite/svg/masking-path-14-f.svg | 72 + .../svg/metadata-example-01-t.svg | 160 ++ .../svg/painting-control-01-f.svg | 107 + .../svg/painting-control-02-f.svg | 65 + .../svg/painting-control-03-f.svg | 65 + .../svg/painting-control-04-f.svg | 58 + .../svg/painting-control-05-f.svg | 114 + .../svg/painting-control-06-f.svg | 64 + Tests/W3CTestSuite/svg/painting-fill-01-t.svg | 65 + Tests/W3CTestSuite/svg/painting-fill-02-t.svg | 69 + Tests/W3CTestSuite/svg/painting-fill-03-t.svg | 62 + Tests/W3CTestSuite/svg/painting-fill-04-t.svg | 74 + Tests/W3CTestSuite/svg/painting-fill-05-b.svg | 75 + .../W3CTestSuite/svg/painting-marker-01-f.svg | 157 ++ .../W3CTestSuite/svg/painting-marker-02-f.svg | 245 ++ .../W3CTestSuite/svg/painting-marker-03-f.svg | 86 + .../W3CTestSuite/svg/painting-marker-04-f.svg | 84 + .../W3CTestSuite/svg/painting-marker-05-f.svg | 240 ++ .../W3CTestSuite/svg/painting-marker-06-f.svg | 159 ++ .../W3CTestSuite/svg/painting-marker-07-f.svg | 66 + .../svg/painting-marker-properties-01-f.svg | 95 + .../W3CTestSuite/svg/painting-render-01-b.svg | 146 ++ .../W3CTestSuite/svg/painting-render-02-b.svg | 100 + .../W3CTestSuite/svg/painting-stroke-01-t.svg | 68 + .../W3CTestSuite/svg/painting-stroke-02-t.svg | 63 + .../W3CTestSuite/svg/painting-stroke-03-t.svg | 64 + .../W3CTestSuite/svg/painting-stroke-04-t.svg | 60 + .../W3CTestSuite/svg/painting-stroke-05-t.svg | 88 + .../W3CTestSuite/svg/painting-stroke-06-t.svg | 74 + .../W3CTestSuite/svg/painting-stroke-07-t.svg | 63 + .../W3CTestSuite/svg/painting-stroke-08-t.svg | 78 + .../W3CTestSuite/svg/painting-stroke-09-t.svg | 59 + .../W3CTestSuite/svg/painting-stroke-10-t.svg | 78 + Tests/W3CTestSuite/svg/paths-data-01-t.svg | 151 ++ Tests/W3CTestSuite/svg/paths-data-02-t.svg | 124 + Tests/W3CTestSuite/svg/paths-data-03-f.svg | 113 + Tests/W3CTestSuite/svg/paths-data-04-t.svg | 82 + Tests/W3CTestSuite/svg/paths-data-05-t.svg | 79 + Tests/W3CTestSuite/svg/paths-data-06-t.svg | 83 + Tests/W3CTestSuite/svg/paths-data-07-t.svg | 82 + Tests/W3CTestSuite/svg/paths-data-08-t.svg | 82 + Tests/W3CTestSuite/svg/paths-data-09-t.svg | 79 + Tests/W3CTestSuite/svg/paths-data-10-t.svg | 111 + Tests/W3CTestSuite/svg/paths-data-12-t.svg | 66 + Tests/W3CTestSuite/svg/paths-data-13-t.svg | 56 + Tests/W3CTestSuite/svg/paths-data-14-t.svg | 56 + Tests/W3CTestSuite/svg/paths-data-15-t.svg | 60 + Tests/W3CTestSuite/svg/paths-data-16-t.svg | 69 + Tests/W3CTestSuite/svg/paths-data-17-f.svg | 65 + Tests/W3CTestSuite/svg/paths-data-18-f.svg | 100 + Tests/W3CTestSuite/svg/paths-data-19-f.svg | 107 + Tests/W3CTestSuite/svg/paths-data-20-f.svg | 87 + Tests/W3CTestSuite/svg/paths-dom-01-f.svg | 140 ++ Tests/W3CTestSuite/svg/paths-dom-02-f.svg | 274 +++ Tests/W3CTestSuite/svg/pservers-grad-01-b.svg | 69 + Tests/W3CTestSuite/svg/pservers-grad-02-b.svg | 79 + Tests/W3CTestSuite/svg/pservers-grad-03-b.svg | 77 + Tests/W3CTestSuite/svg/pservers-grad-04-b.svg | 88 + Tests/W3CTestSuite/svg/pservers-grad-05-b.svg | 94 + Tests/W3CTestSuite/svg/pservers-grad-06-b.svg | 109 + Tests/W3CTestSuite/svg/pservers-grad-07-b.svg | 88 + Tests/W3CTestSuite/svg/pservers-grad-08-b.svg | 100 + Tests/W3CTestSuite/svg/pservers-grad-09-b.svg | 107 + Tests/W3CTestSuite/svg/pservers-grad-10-b.svg | 93 + Tests/W3CTestSuite/svg/pservers-grad-11-b.svg | 124 + Tests/W3CTestSuite/svg/pservers-grad-12-b.svg | 110 + Tests/W3CTestSuite/svg/pservers-grad-13-b.svg | 171 ++ Tests/W3CTestSuite/svg/pservers-grad-14-b.svg | 120 + Tests/W3CTestSuite/svg/pservers-grad-15-b.svg | 70 + Tests/W3CTestSuite/svg/pservers-grad-16-b.svg | 81 + Tests/W3CTestSuite/svg/pservers-grad-17-b.svg | 92 + Tests/W3CTestSuite/svg/pservers-grad-18-b.svg | 114 + Tests/W3CTestSuite/svg/pservers-grad-20-b.svg | 92 + Tests/W3CTestSuite/svg/pservers-grad-21-b.svg | 146 ++ Tests/W3CTestSuite/svg/pservers-grad-22-b.svg | 97 + Tests/W3CTestSuite/svg/pservers-grad-23-f.svg | 80 + Tests/W3CTestSuite/svg/pservers-grad-24-f.svg | 68 + .../svg/pservers-grad-stops-01-f.svg | 70 + .../svg/pservers-pattern-01-b.svg | 108 + .../svg/pservers-pattern-02-f.svg | 61 + .../svg/pservers-pattern-03-f.svg | 91 + .../svg/pservers-pattern-04-f.svg | 70 + .../svg/pservers-pattern-05-f.svg | 64 + .../svg/pservers-pattern-06-f.svg | 65 + .../svg/pservers-pattern-07-f.svg | 65 + .../svg/pservers-pattern-08-f.svg | 66 + .../svg/pservers-pattern-09-f.svg | 70 + Tests/W3CTestSuite/svg/render-elems-01-t.svg | 64 + Tests/W3CTestSuite/svg/render-elems-02-t.svg | 64 + Tests/W3CTestSuite/svg/render-elems-03-t.svg | 63 + Tests/W3CTestSuite/svg/render-elems-06-t.svg | 74 + Tests/W3CTestSuite/svg/render-elems-07-t.svg | 71 + Tests/W3CTestSuite/svg/render-elems-08-t.svg | 73 + Tests/W3CTestSuite/svg/render-groups-01-b.svg | 109 + Tests/W3CTestSuite/svg/render-groups-03-t.svg | 100 + Tests/W3CTestSuite/svg/script-handle-01-b.svg | 95 + Tests/W3CTestSuite/svg/script-handle-02-b.svg | 124 + Tests/W3CTestSuite/svg/script-handle-03-b.svg | 120 + Tests/W3CTestSuite/svg/script-handle-04-b.svg | 120 + .../W3CTestSuite/svg/script-specify-01-f.svg | 67 + .../W3CTestSuite/svg/script-specify-02-f.svg | 69 + Tests/W3CTestSuite/svg/shapes-circle-01-t.svg | 58 + Tests/W3CTestSuite/svg/shapes-circle-02-t.svg | 68 + .../W3CTestSuite/svg/shapes-ellipse-01-t.svg | 71 + .../W3CTestSuite/svg/shapes-ellipse-02-t.svg | 62 + .../W3CTestSuite/svg/shapes-ellipse-03-f.svg | 72 + .../W3CTestSuite/svg/shapes-grammar-01-f.svg | 71 + Tests/W3CTestSuite/svg/shapes-intro-01-t.svg | 108 + Tests/W3CTestSuite/svg/shapes-intro-02-f.svg | 89 + Tests/W3CTestSuite/svg/shapes-line-01-t.svg | 80 + Tests/W3CTestSuite/svg/shapes-line-02-f.svg | 57 + .../W3CTestSuite/svg/shapes-polygon-01-t.svg | 76 + .../W3CTestSuite/svg/shapes-polygon-02-t.svg | 81 + .../W3CTestSuite/svg/shapes-polygon-03-t.svg | 58 + .../W3CTestSuite/svg/shapes-polyline-01-t.svg | 82 + .../W3CTestSuite/svg/shapes-polyline-02-t.svg | 81 + Tests/W3CTestSuite/svg/shapes-rect-01-t.svg | 73 + Tests/W3CTestSuite/svg/shapes-rect-02-t.svg | 71 + Tests/W3CTestSuite/svg/shapes-rect-03-t.svg | 139 ++ Tests/W3CTestSuite/svg/shapes-rect-04-f.svg | 66 + Tests/W3CTestSuite/svg/shapes-rect-05-f.svg | 74 + Tests/W3CTestSuite/svg/shapes-rect-06-f.svg | 70 + Tests/W3CTestSuite/svg/shapes-rect-07-f.svg | 61 + Tests/W3CTestSuite/svg/struct-cond-01-t.svg | 61 + Tests/W3CTestSuite/svg/struct-cond-02-t.svg | 585 +++++ Tests/W3CTestSuite/svg/struct-cond-03-t.svg | 83 + .../svg/struct-cond-overview-02-f.svg | 65 + .../svg/struct-cond-overview-03-f.svg | 61 + .../svg/struct-cond-overview-04-f.svg | 58 + .../svg/struct-cond-overview-05-f.svg | 70 + Tests/W3CTestSuite/svg/struct-defs-01-t.svg | 66 + Tests/W3CTestSuite/svg/struct-dom-01-b.svg | 188 ++ Tests/W3CTestSuite/svg/struct-dom-02-b.svg | 120 + Tests/W3CTestSuite/svg/struct-dom-03-b.svg | 120 + Tests/W3CTestSuite/svg/struct-dom-04-b.svg | 139 ++ Tests/W3CTestSuite/svg/struct-dom-05-b.svg | 137 ++ Tests/W3CTestSuite/svg/struct-dom-06-b.svg | 101 + Tests/W3CTestSuite/svg/struct-dom-07-f.svg | 90 + Tests/W3CTestSuite/svg/struct-dom-08-f.svg | 84 + Tests/W3CTestSuite/svg/struct-dom-11-f.svg | 168 ++ Tests/W3CTestSuite/svg/struct-dom-12-b.svg | 94 + Tests/W3CTestSuite/svg/struct-dom-13-f.svg | 167 ++ Tests/W3CTestSuite/svg/struct-dom-14-f.svg | 112 + Tests/W3CTestSuite/svg/struct-dom-15-f.svg | 139 ++ Tests/W3CTestSuite/svg/struct-dom-16-f.svg | 128 + Tests/W3CTestSuite/svg/struct-dom-17-f.svg | 104 + Tests/W3CTestSuite/svg/struct-dom-18-f.svg | 147 ++ Tests/W3CTestSuite/svg/struct-dom-19-f.svg | 92 + Tests/W3CTestSuite/svg/struct-dom-20-f.svg | 139 ++ Tests/W3CTestSuite/svg/struct-frag-01-t.svg | 49 + Tests/W3CTestSuite/svg/struct-frag-02-t.svg | 68 + Tests/W3CTestSuite/svg/struct-frag-03-t.svg | 66 + Tests/W3CTestSuite/svg/struct-frag-04-t.svg | 64 + Tests/W3CTestSuite/svg/struct-frag-05-t.svg | 86 + Tests/W3CTestSuite/svg/struct-frag-06-t.svg | 82 + Tests/W3CTestSuite/svg/struct-group-01-t.svg | 77 + Tests/W3CTestSuite/svg/struct-group-02-b.svg | 78 + Tests/W3CTestSuite/svg/struct-group-03-t.svg | 285 +++ Tests/W3CTestSuite/svg/struct-image-01-t.svg | 59 + Tests/W3CTestSuite/svg/struct-image-02-b.svg | 91 + Tests/W3CTestSuite/svg/struct-image-03-t.svg | 66 + Tests/W3CTestSuite/svg/struct-image-04-t.svg | 60 + Tests/W3CTestSuite/svg/struct-image-05-b.svg | 57 + Tests/W3CTestSuite/svg/struct-image-06-t.svg | 104 + Tests/W3CTestSuite/svg/struct-image-07-t.svg | 75 + Tests/W3CTestSuite/svg/struct-image-08-t.svg | 58 + Tests/W3CTestSuite/svg/struct-image-09-t.svg | 57 + Tests/W3CTestSuite/svg/struct-image-10-t.svg | 58 + Tests/W3CTestSuite/svg/struct-image-11-b.svg | 67 + Tests/W3CTestSuite/svg/struct-image-12-b.svg | 71 + Tests/W3CTestSuite/svg/struct-image-13-f.svg | 124 + Tests/W3CTestSuite/svg/struct-image-14-f.svg | 124 + Tests/W3CTestSuite/svg/struct-image-15-f.svg | 138 ++ Tests/W3CTestSuite/svg/struct-image-16-f.svg | 57 + Tests/W3CTestSuite/svg/struct-image-17-b.svg | 52 + Tests/W3CTestSuite/svg/struct-image-18-f.svg | 62 + Tests/W3CTestSuite/svg/struct-image-19-f.svg | 67 + Tests/W3CTestSuite/svg/struct-svg-01-f.svg | 123 + Tests/W3CTestSuite/svg/struct-svg-02-f.svg | 143 ++ Tests/W3CTestSuite/svg/struct-svg-03-f.svg | 68 + Tests/W3CTestSuite/svg/struct-symbol-01-b.svg | 89 + Tests/W3CTestSuite/svg/struct-use-01-t.svg | 112 + Tests/W3CTestSuite/svg/struct-use-03-t.svg | 76 + Tests/W3CTestSuite/svg/struct-use-04-b.svg | 65 + Tests/W3CTestSuite/svg/struct-use-05-b.svg | 88 + Tests/W3CTestSuite/svg/struct-use-06-b.svg | 64 + Tests/W3CTestSuite/svg/struct-use-07-b.svg | 77 + Tests/W3CTestSuite/svg/struct-use-08-b.svg | 71 + Tests/W3CTestSuite/svg/struct-use-09-b.svg | 74 + Tests/W3CTestSuite/svg/struct-use-10-f.svg | 130 + Tests/W3CTestSuite/svg/struct-use-11-f.svg | 151 ++ Tests/W3CTestSuite/svg/struct-use-12-f.svg | 104 + Tests/W3CTestSuite/svg/struct-use-13-f.svg | 77 + Tests/W3CTestSuite/svg/struct-use-14-f.svg | 74 + Tests/W3CTestSuite/svg/struct-use-15-f.svg | 78 + Tests/W3CTestSuite/svg/styling-class-01-f.svg | 75 + Tests/W3CTestSuite/svg/styling-css-01-b.svg | 90 + Tests/W3CTestSuite/svg/styling-css-02-b.svg | 85 + Tests/W3CTestSuite/svg/styling-css-03-b.svg | 106 + Tests/W3CTestSuite/svg/styling-css-04-f.svg | 157 ++ Tests/W3CTestSuite/svg/styling-css-05-b.svg | 74 + Tests/W3CTestSuite/svg/styling-css-06-b.svg | 198 ++ Tests/W3CTestSuite/svg/styling-css-07-f.svg | 62 + Tests/W3CTestSuite/svg/styling-css-08-f.svg | 116 + Tests/W3CTestSuite/svg/styling-css-09-f.svg | 82 + Tests/W3CTestSuite/svg/styling-css-10-f.svg | 76 + Tests/W3CTestSuite/svg/styling-elem-01-b.svg | 75 + .../W3CTestSuite/svg/styling-inherit-01-b.svg | 83 + Tests/W3CTestSuite/svg/styling-pres-01-t.svg | 61 + Tests/W3CTestSuite/svg/styling-pres-02-f.svg | 216 ++ Tests/W3CTestSuite/svg/styling-pres-03-f.svg | 57 + Tests/W3CTestSuite/svg/styling-pres-04-f.svg | 102 + Tests/W3CTestSuite/svg/styling-pres-05-f.svg | 75 + Tests/W3CTestSuite/svg/svgdom-over-01-f.svg | 202 ++ Tests/W3CTestSuite/svg/text-align-01-b.svg | 80 + Tests/W3CTestSuite/svg/text-align-02-b.svg | 71 + Tests/W3CTestSuite/svg/text-align-03-b.svg | 82 + Tests/W3CTestSuite/svg/text-align-04-b.svg | 106 + Tests/W3CTestSuite/svg/text-align-05-b.svg | 87 + Tests/W3CTestSuite/svg/text-align-06-b.svg | 99 + Tests/W3CTestSuite/svg/text-align-07-t.svg | 87 + Tests/W3CTestSuite/svg/text-align-08-b.svg | 91 + Tests/W3CTestSuite/svg/text-altglyph-01-b.svg | 128 + Tests/W3CTestSuite/svg/text-altglyph-02-b.svg | 344 +++ Tests/W3CTestSuite/svg/text-altglyph-03-b.svg | 373 +++ Tests/W3CTestSuite/svg/text-bidi-01-t.svg | 59 + Tests/W3CTestSuite/svg/text-deco-01-b.svg | 82 + Tests/W3CTestSuite/svg/text-dom-01-f.svg | 230 ++ Tests/W3CTestSuite/svg/text-dom-02-f.svg | 131 + Tests/W3CTestSuite/svg/text-dom-03-f.svg | 130 + Tests/W3CTestSuite/svg/text-dom-04-f.svg | 157 ++ Tests/W3CTestSuite/svg/text-dom-05-f.svg | 181 ++ Tests/W3CTestSuite/svg/text-fonts-01-t.svg | 87 + Tests/W3CTestSuite/svg/text-fonts-02-t.svg | 92 + Tests/W3CTestSuite/svg/text-fonts-03-t.svg | 85 + Tests/W3CTestSuite/svg/text-fonts-04-t.svg | 76 + Tests/W3CTestSuite/svg/text-fonts-05-f.svg | 57 + Tests/W3CTestSuite/svg/text-fonts-202-t.svg | 100 + Tests/W3CTestSuite/svg/text-fonts-203-t.svg | 147 ++ Tests/W3CTestSuite/svg/text-fonts-204-t.svg | 138 ++ Tests/W3CTestSuite/svg/text-intro-01-t.svg | 95 + Tests/W3CTestSuite/svg/text-intro-02-b.svg | 81 + Tests/W3CTestSuite/svg/text-intro-03-b.svg | 84 + Tests/W3CTestSuite/svg/text-intro-04-t.svg | 75 + Tests/W3CTestSuite/svg/text-intro-05-t.svg | 67 + Tests/W3CTestSuite/svg/text-intro-06-t.svg | 96 + Tests/W3CTestSuite/svg/text-intro-07-t.svg | 65 + Tests/W3CTestSuite/svg/text-intro-09-b.svg | 88 + Tests/W3CTestSuite/svg/text-intro-10-f.svg | 70 + Tests/W3CTestSuite/svg/text-intro-11-t.svg | 94 + Tests/W3CTestSuite/svg/text-intro-12-t.svg | 93 + Tests/W3CTestSuite/svg/text-path-01-b.svg | 87 + Tests/W3CTestSuite/svg/text-path-02-b.svg | 101 + Tests/W3CTestSuite/svg/text-spacing-01-b.svg | 79 + Tests/W3CTestSuite/svg/text-text-01-b.svg | 208 ++ Tests/W3CTestSuite/svg/text-text-03-b.svg | 94 + Tests/W3CTestSuite/svg/text-text-04-t.svg | 226 ++ Tests/W3CTestSuite/svg/text-text-05-t.svg | 174 ++ Tests/W3CTestSuite/svg/text-text-06-t.svg | 152 ++ Tests/W3CTestSuite/svg/text-text-07-t.svg | 79 + Tests/W3CTestSuite/svg/text-text-08-b.svg | 64 + Tests/W3CTestSuite/svg/text-text-09-t.svg | 83 + Tests/W3CTestSuite/svg/text-text-10-t.svg | 76 + Tests/W3CTestSuite/svg/text-text-11-t.svg | 81 + Tests/W3CTestSuite/svg/text-text-12-t.svg | 186 ++ Tests/W3CTestSuite/svg/text-tref-01-b.svg | 73 + Tests/W3CTestSuite/svg/text-tref-02-b.svg | 79 + Tests/W3CTestSuite/svg/text-tref-03-b.svg | 71 + Tests/W3CTestSuite/svg/text-tselect-01-b.svg | 74 + Tests/W3CTestSuite/svg/text-tselect-02-f.svg | 146 ++ Tests/W3CTestSuite/svg/text-tselect-03-f.svg | 157 ++ Tests/W3CTestSuite/svg/text-tspan-01-b.svg | 113 + Tests/W3CTestSuite/svg/text-tspan-02-b.svg | 177 ++ Tests/W3CTestSuite/svg/text-ws-01-t.svg | 96 + Tests/W3CTestSuite/svg/text-ws-02-t.svg | 101 + Tests/W3CTestSuite/svg/text-ws-03-t.svg | 84 + Tests/W3CTestSuite/svg/types-basic-01-f.svg | 75 + Tests/W3CTestSuite/svg/types-basic-02-f.svg | 84 + Tests/W3CTestSuite/svg/types-dom-01-b.svg | 107 + Tests/W3CTestSuite/svg/types-dom-02-f.svg | 156 ++ Tests/W3CTestSuite/svg/types-dom-03-b.svg | 84 + Tests/W3CTestSuite/svg/types-dom-04-b.svg | 250 ++ Tests/W3CTestSuite/svg/types-dom-05-b.svg | 127 + Tests/W3CTestSuite/svg/types-dom-06-f.svg | 130 + Tests/W3CTestSuite/svg/types-dom-07-f.svg | 156 ++ Tests/W3CTestSuite/svg/types-dom-08-f.svg | 189 ++ .../svg/types-dom-svgfittoviewbox-01-f.svg | 88 + .../svg/types-dom-svglengthlist-01-f.svg | 114 + .../svg/types-dom-svgnumberlist-01-f.svg | 114 + .../svg/types-dom-svgstringlist-01-f.svg | 112 + .../svg/types-dom-svgtransformable-01-f.svg | 82 + 1492 files changed, 93618 insertions(+), 913 deletions(-) delete mode 100644 Samples/SvgExamples/Workflow.svg create mode 100644 Source/DataTypes/ISvgSupportsCoordinateUnits.cs create mode 100644 Source/Local.testsettings create mode 100644 Source/Painting/GenericBoundable.cs create mode 100644 Source/Svg.vsmdi create mode 100644 Source/SvgNodeReader.cs create mode 100644 Source/TraceAndTestImpact.testsettings create mode 100644 Tests/Svg.UnitTests/CssQueryTest.cs create mode 100644 Tests/Svg.UnitTests/Properties/AssemblyInfo.cs create mode 100644 Tests/Svg.UnitTests/Svg.UnitTests.csproj create mode 100644 Tests/SvgW3CTestRunner/Program.cs create mode 100644 Tests/SvgW3CTestRunner/Properties/AssemblyInfo.cs create mode 100644 Tests/SvgW3CTestRunner/Properties/Resources.Designer.cs create mode 100644 Tests/SvgW3CTestRunner/Properties/Resources.resx create mode 100644 Tests/SvgW3CTestRunner/Properties/Settings.Designer.cs create mode 100644 Tests/SvgW3CTestRunner/Properties/Settings.settings create mode 100644 Tests/SvgW3CTestRunner/SvgW3CTestRunner.csproj create mode 100644 Tests/SvgW3CTestRunner/View.Designer.cs create mode 100644 Tests/SvgW3CTestRunner/View.cs create mode 100644 Tests/SvgW3CTestRunner/View.resx create mode 100644 Tests/W3CTestSuite/images/20x20.png create mode 100644 Tests/W3CTestSuite/images/50x50-viewbox-greencircle.svg create mode 100644 Tests/W3CTestSuite/images/50x50greencircle.svg create mode 100644 Tests/W3CTestSuite/images/DisplaceChecker.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi0g01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi0g02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi4a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi4a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi6a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basi6a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn0g01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn0g02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn4a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn4a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn6a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/basn6a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgai4a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgai4a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgan6a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgan6a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgbn4a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bggn4a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgwn6a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/bgyn6a16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ccwn2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ccwn3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cdfn2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cdhn2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cdsn2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cdun2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ch1n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ch2n3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cm0n0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cm7n0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cm9n0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cs3n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cs3n3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cs5n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cs5n3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cs8n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/cs8n3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ct0n0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ct1n0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ctzn0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f00n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f00n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f01n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f01n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f02n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f02n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f03n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f03n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f04n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/f04n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g03n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g03n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g03n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g04n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g04n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g04n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g05n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g05n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g05n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g07n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g07n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g07n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g10n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g10n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g10n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g25n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g25n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/g25n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi1n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi1n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi2n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi2n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi4n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi4n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi9n0g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/oi9n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/pngsuite.doc create mode 100644 Tests/W3CTestSuite/images/PngSuite/pngsuite_logo.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/pp0n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/pp0n6a08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ps1n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ps1n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ps2n0g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/ps2n2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s01i3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s01n3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s02i3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s02n3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s03i3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s03n3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s04i3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s04n3p01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s05i3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s05n3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s06i3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s06n3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s07i3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s07n3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s08i3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s08n3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s09i3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s09n3p02.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s32i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s32n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s33i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s33n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s34i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s34n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s35i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s35n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s36i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s36n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s37i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s37n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s38i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s38n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s39i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s39n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s40i3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/s40n3p04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbbn1g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbbn2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbbn3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbgn2c16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbgn3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbrn2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbwn1g16.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbwn3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tbyn3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tp0n1g08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tp0n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tp0n3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/tp1n3p08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/x00n0g01.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/xcrn0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/xlfn0g04.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/z00n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/z03n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/z06n2c08.png create mode 100644 Tests/W3CTestSuite/images/PngSuite/z09n2c08.png create mode 100644 Tests/W3CTestSuite/images/SVG-1.1-monolithic-fixed.dtd create mode 100644 Tests/W3CTestSuite/images/SVGImageTest.svg create mode 100644 Tests/W3CTestSuite/images/animation-add-BE-09.svg create mode 100644 Tests/W3CTestSuite/images/animation-extRef-image1.svg create mode 100644 Tests/W3CTestSuite/images/animation-extRef-image2.svg create mode 100644 Tests/W3CTestSuite/images/animation-extRef-image3.svg create mode 100644 Tests/W3CTestSuite/images/black10x10.png create mode 100644 Tests/W3CTestSuite/images/blue1x1.png create mode 100644 Tests/W3CTestSuite/images/blue_10x10.png create mode 100644 Tests/W3CTestSuite/images/blue_10x10.ppm create mode 100644 Tests/W3CTestSuite/images/bluesquidj.png create mode 100644 Tests/W3CTestSuite/images/bullet-small.png create mode 100644 Tests/W3CTestSuite/images/bullet-white.png create mode 100644 Tests/W3CTestSuite/images/bullet.png create mode 100644 Tests/W3CTestSuite/images/bumpMap.png create mode 100644 Tests/W3CTestSuite/images/bumpMap2.png create mode 100644 Tests/W3CTestSuite/images/bumpMap3.png create mode 100644 Tests/W3CTestSuite/images/case-insensitivity.css create mode 100644 Tests/W3CTestSuite/images/changeColor.ICM create mode 100644 Tests/W3CTestSuite/images/colorprof.png create mode 100644 Tests/W3CTestSuite/images/convolveImage.png create mode 100644 Tests/W3CTestSuite/images/coords-units-01-f.png create mode 100644 Tests/W3CTestSuite/images/coords-units-01-f.svg create mode 100644 Tests/W3CTestSuite/images/copyright-documents-19990405.html create mode 100644 Tests/W3CTestSuite/images/diagarrow.png create mode 100644 Tests/W3CTestSuite/images/empty.js create mode 100644 Tests/W3CTestSuite/images/ext-TestComic.svg create mode 100644 Tests/W3CTestSuite/images/f.js create mode 100644 Tests/W3CTestSuite/images/fillChangeColor.ICM create mode 100644 Tests/W3CTestSuite/images/filters-blend-01-f.svg create mode 100644 Tests/W3CTestSuite/images/filters-color-01-f.svg create mode 100644 Tests/W3CTestSuite/images/filters-composite-01-f.svg create mode 100644 Tests/W3CTestSuite/images/filters-comptran-01-f.svg create mode 100644 Tests/W3CTestSuite/images/filters-conv-01-f.includeimage.png create mode 100644 Tests/W3CTestSuite/images/filters-conv-01-f.svg create mode 100644 Tests/W3CTestSuite/images/filters-diffuse-01-f.svg create mode 100644 Tests/W3CTestSuite/images/filters-example-01-f.svg create mode 100644 Tests/W3CTestSuite/images/footprints.jpg create mode 100644 Tests/W3CTestSuite/images/footprints2.jpg create mode 100644 Tests/W3CTestSuite/images/galpha.png create mode 100644 Tests/W3CTestSuite/images/gam030.png create mode 100644 Tests/W3CTestSuite/images/gam030b.png create mode 100644 Tests/W3CTestSuite/images/gam045.png create mode 100644 Tests/W3CTestSuite/images/gam045b.png create mode 100644 Tests/W3CTestSuite/images/gam056.png create mode 100644 Tests/W3CTestSuite/images/gam056b.png create mode 100644 Tests/W3CTestSuite/images/gam100.png create mode 100644 Tests/W3CTestSuite/images/gam100b.png create mode 100644 Tests/W3CTestSuite/images/gam200.png create mode 100644 Tests/W3CTestSuite/images/gam200b.png create mode 100644 Tests/W3CTestSuite/images/green1x1.png create mode 100644 Tests/W3CTestSuite/images/greentopbutton.jpg create mode 100644 Tests/W3CTestSuite/images/happysmiley.svg create mode 100644 Tests/W3CTestSuite/images/image.png create mode 100644 Tests/W3CTestSuite/images/image1.jpg create mode 100644 Tests/W3CTestSuite/images/image1.png create mode 100644 Tests/W3CTestSuite/images/image1_b.png create mode 100644 Tests/W3CTestSuite/images/image2_b.jpg create mode 100644 Tests/W3CTestSuite/images/image2_b.png create mode 100644 Tests/W3CTestSuite/images/inline2.png create mode 100644 Tests/W3CTestSuite/images/interact-dom-01-f.svg create mode 100644 Tests/W3CTestSuite/images/interact-order-02-b-targ.svg create mode 100644 Tests/W3CTestSuite/images/interact-order-03-b-targ.svg create mode 100644 Tests/W3CTestSuite/images/leftarrow.png create mode 100644 Tests/W3CTestSuite/images/level1.svg create mode 100644 Tests/W3CTestSuite/images/level2.svg create mode 100644 Tests/W3CTestSuite/images/linking-uri-01-b.svg create mode 100644 Tests/W3CTestSuite/images/linking-uri-01-f-1st.png create mode 100644 Tests/W3CTestSuite/images/linking-uri-01-f-2nd.png create mode 100644 Tests/W3CTestSuite/images/linking-uri-01-f-3rd.png create mode 100644 Tests/W3CTestSuite/images/linking-uri-01-f-4th.png create mode 100644 Tests/W3CTestSuite/images/linking-uri-01-f-start.png create mode 100644 Tests/W3CTestSuite/images/linking-uri-03-f-1st.png create mode 100644 Tests/W3CTestSuite/images/linking-uri-03-f-start.png create mode 100644 Tests/W3CTestSuite/images/linkingCircle-f.svg create mode 100644 Tests/W3CTestSuite/images/linkingToc-t.svg create mode 100644 Tests/W3CTestSuite/images/magnify.png create mode 100644 Tests/W3CTestSuite/images/makealpha.svg create mode 100644 Tests/W3CTestSuite/images/myimage.jpg create mode 100644 Tests/W3CTestSuite/images/nav_bullet.png create mode 100644 Tests/W3CTestSuite/images/nav_down.png create mode 100644 Tests/W3CTestSuite/images/nav_downleft.png create mode 100644 Tests/W3CTestSuite/images/nav_downright.png create mode 100644 Tests/W3CTestSuite/images/nav_frame.png create mode 100644 Tests/W3CTestSuite/images/nav_left.png create mode 100644 Tests/W3CTestSuite/images/nav_noframe.png create mode 100644 Tests/W3CTestSuite/images/nav_right.png create mode 100644 Tests/W3CTestSuite/images/nav_svg.png create mode 100644 Tests/W3CTestSuite/images/nav_up.png create mode 100644 Tests/W3CTestSuite/images/nav_upleft.png create mode 100644 Tests/W3CTestSuite/images/nav_upright.png create mode 100644 Tests/W3CTestSuite/images/old-name-2-new-name1.html create mode 100644 Tests/W3CTestSuite/images/paths-data-01-f.png create mode 100644 Tests/W3CTestSuite/images/paths-data-01-f.svg create mode 100644 Tests/W3CTestSuite/images/paths-data-02-f.png create mode 100644 Tests/W3CTestSuite/images/paths-data-02-f.svg create mode 100644 Tests/W3CTestSuite/images/paths-data-03-f.png create mode 100644 Tests/W3CTestSuite/images/paths-data-03-f.svg create mode 100644 Tests/W3CTestSuite/images/paths-data-04-f.png create mode 100644 Tests/W3CTestSuite/images/paths-data-04-f.svg create mode 100644 Tests/W3CTestSuite/images/pinksquidj.png create mode 100644 Tests/W3CTestSuite/images/plant.jpg create mode 100644 Tests/W3CTestSuite/images/purplesquidj.png create mode 100644 Tests/W3CTestSuite/images/rects.svg create mode 100644 Tests/W3CTestSuite/images/rects_b.svg create mode 100644 Tests/W3CTestSuite/images/red1x1.png create mode 100644 Tests/W3CTestSuite/images/rgbalpha.png create mode 100644 Tests/W3CTestSuite/images/rightarrow.png create mode 100644 Tests/W3CTestSuite/images/rotate20.png create mode 100644 Tests/W3CTestSuite/images/selector-types-fill-green.css create mode 100644 Tests/W3CTestSuite/images/selector-types-visibility-hidden.css create mode 100644 Tests/W3CTestSuite/images/shapes-ellipse-01-b.svg create mode 100644 Tests/W3CTestSuite/images/shapes-ellipse-01-f.png create mode 100644 Tests/W3CTestSuite/images/shapes-ellipse-01-f.svg create mode 100644 Tests/W3CTestSuite/images/shapes-rect-01-b.svg create mode 100644 Tests/W3CTestSuite/images/shapes-rect-01-f.png create mode 100644 Tests/W3CTestSuite/images/shapes-rect-01-f.svg create mode 100644 Tests/W3CTestSuite/images/sign.png create mode 100644 Tests/W3CTestSuite/images/smiley.png create mode 100644 Tests/W3CTestSuite/images/sphere.png create mode 100644 Tests/W3CTestSuite/images/star.svg create mode 100644 Tests/W3CTestSuite/images/stefan_252_tRNS_opti.png create mode 100644 Tests/W3CTestSuite/images/struct-frag-01-B.svg create mode 100644 Tests/W3CTestSuite/images/struct-image-01.jpg create mode 100644 Tests/W3CTestSuite/images/struct-image-01.png create mode 100644 Tests/W3CTestSuite/images/struct-image-02.jpg create mode 100644 Tests/W3CTestSuite/images/struct-image-02.png create mode 100644 Tests/W3CTestSuite/images/struct-image-11-b-1.svg create mode 100644 Tests/W3CTestSuite/images/struct-image-11-b-2.svg create mode 100644 Tests/W3CTestSuite/images/struct-image-12-b-cycle.svg create mode 100644 Tests/W3CTestSuite/images/struct-image-12-b-nocycle.svg create mode 100644 Tests/W3CTestSuite/images/struct-image-17-b-1.svg create mode 100644 Tests/W3CTestSuite/images/struct-symbol-01.png create mode 100644 Tests/W3CTestSuite/images/struct-use-06-b-1.svg create mode 100644 Tests/W3CTestSuite/images/struct-use-08-b-cycles.svg create mode 100644 Tests/W3CTestSuite/images/svgRef1.svg create mode 100644 Tests/W3CTestSuite/images/svgRef4.css create mode 100644 Tests/W3CTestSuite/images/svgRef4.svg create mode 100644 Tests/W3CTestSuite/images/text-align-01-f.svg create mode 100644 Tests/W3CTestSuite/images/text-align-02-f.svg create mode 100644 Tests/W3CTestSuite/images/text-align-03-f.svg create mode 100644 Tests/W3CTestSuite/images/text-altglyph-01-f.svg create mode 100644 Tests/W3CTestSuite/images/text-extTref-BE-18-targ.svg create mode 100644 Tests/W3CTestSuite/images/text-intro-01-f.svg create mode 100644 Tests/W3CTestSuite/images/text-tref-01-f.svg create mode 100644 Tests/W3CTestSuite/images/text-ws-01-f.svg create mode 100644 Tests/W3CTestSuite/images/toc-sv.svg create mode 100644 Tests/W3CTestSuite/images/toc-svcmp.svg create mode 100644 Tests/W3CTestSuite/images/townsville.jpg create mode 100644 Tests/W3CTestSuite/images/tree.jpg create mode 100644 Tests/W3CTestSuite/images/uparrow.png create mode 100644 Tests/W3CTestSuite/png/__AJ_Digital_Camera.png create mode 100644 Tests/W3CTestSuite/png/__issue-34-02.png create mode 100644 Tests/W3CTestSuite/png/__issue-83-01.png create mode 100644 Tests/W3CTestSuite/png/__tiger.png create mode 100644 Tests/W3CTestSuite/png/animate-dom-01-f.png create mode 100644 Tests/W3CTestSuite/png/animate-dom-02-f.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-02-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-03-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-04-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-05-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-06-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-07-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-08-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-09-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-10-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-11-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-12-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-13-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-14-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-15-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-17-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-19-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-20-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-21-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-22-b.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-23-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-24-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-25-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-26-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-27-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-28-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-29-b.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-30-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-31-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-32-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-33-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-34-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-35-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-36-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-37-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-38-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-39-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-40-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-41-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-42-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-43-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-44-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-45-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-46-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-47-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-48-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-49-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-50-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-51-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-52-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-53-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-60-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-61-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-62-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-63-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-64-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-65-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-66-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-67-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-68-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-69-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-70-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-77-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-78-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-80-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-81-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-82-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-83-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-84-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-85-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-86-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-87-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-88-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-89-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-90-b.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-91-t.png create mode 100644 Tests/W3CTestSuite/png/animate-elem-92-t.png create mode 100644 Tests/W3CTestSuite/png/animate-interact-events-01-t.png create mode 100644 Tests/W3CTestSuite/png/animate-interact-pevents-01-t.png create mode 100644 Tests/W3CTestSuite/png/animate-interact-pevents-02-t.png create mode 100644 Tests/W3CTestSuite/png/animate-interact-pevents-03-t.png create mode 100644 Tests/W3CTestSuite/png/animate-interact-pevents-04-t.png create mode 100644 Tests/W3CTestSuite/png/animate-pservers-grad-01-b.png create mode 100644 Tests/W3CTestSuite/png/animate-script-elem-01-b.png create mode 100644 Tests/W3CTestSuite/png/animate-struct-dom-01-b.png create mode 100644 Tests/W3CTestSuite/png/color-prof-01-f.png create mode 100644 Tests/W3CTestSuite/png/color-prop-01-b.png create mode 100644 Tests/W3CTestSuite/png/color-prop-02-f.png create mode 100644 Tests/W3CTestSuite/png/color-prop-03-t.png create mode 100644 Tests/W3CTestSuite/png/color-prop-04-t.png create mode 100644 Tests/W3CTestSuite/png/color-prop-05-t.png create mode 100644 Tests/W3CTestSuite/png/conform-viewers-01-t.png create mode 100644 Tests/W3CTestSuite/png/conform-viewers-02-f.png create mode 100644 Tests/W3CTestSuite/png/conform-viewers-03-f.png create mode 100644 Tests/W3CTestSuite/png/coords-coord-01-t.png create mode 100644 Tests/W3CTestSuite/png/coords-coord-02-t.png create mode 100644 Tests/W3CTestSuite/png/coords-dom-01-f.png create mode 100644 Tests/W3CTestSuite/png/coords-dom-02-f.png create mode 100644 Tests/W3CTestSuite/png/coords-dom-03-f.png create mode 100644 Tests/W3CTestSuite/png/coords-dom-04-f.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-01-b.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-02-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-03-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-04-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-05-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-06-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-07-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-08-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-09-t.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-10-f.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-11-f.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-12-f.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-13-f.png create mode 100644 Tests/W3CTestSuite/png/coords-trans-14-f.png create mode 100644 Tests/W3CTestSuite/png/coords-transformattr-01-f.png create mode 100644 Tests/W3CTestSuite/png/coords-transformattr-02-f.png create mode 100644 Tests/W3CTestSuite/png/coords-transformattr-03-f.png create mode 100644 Tests/W3CTestSuite/png/coords-transformattr-04-f.png create mode 100644 Tests/W3CTestSuite/png/coords-transformattr-05-f.png create mode 100644 Tests/W3CTestSuite/png/coords-units-01-b.png create mode 100644 Tests/W3CTestSuite/png/coords-units-02-b.png create mode 100644 Tests/W3CTestSuite/png/coords-units-03-b.png create mode 100644 Tests/W3CTestSuite/png/coords-viewattr-01-b.png create mode 100644 Tests/W3CTestSuite/png/coords-viewattr-02-b.png create mode 100644 Tests/W3CTestSuite/png/coords-viewattr-03-b.png create mode 100644 Tests/W3CTestSuite/png/coords-viewattr-04-f.png create mode 100644 Tests/W3CTestSuite/png/extend-namespace-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-background-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-blend-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-color-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-color-02-b.png create mode 100644 Tests/W3CTestSuite/png/filters-composite-02-b.png create mode 100644 Tests/W3CTestSuite/png/filters-composite-03-f.png create mode 100644 Tests/W3CTestSuite/png/filters-composite-04-f.png create mode 100644 Tests/W3CTestSuite/png/filters-composite-05-f.png create mode 100644 Tests/W3CTestSuite/png/filters-comptran-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-conv-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-conv-02-f.png create mode 100644 Tests/W3CTestSuite/png/filters-conv-03-f.png create mode 100644 Tests/W3CTestSuite/png/filters-conv-04-f.png create mode 100644 Tests/W3CTestSuite/png/filters-conv-05-f.png create mode 100644 Tests/W3CTestSuite/png/filters-diffuse-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-displace-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-displace-02-f.png create mode 100644 Tests/W3CTestSuite/png/filters-example-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-felem-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-felem-02-f.png create mode 100644 Tests/W3CTestSuite/png/filters-gauss-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-gauss-02-f.png create mode 100644 Tests/W3CTestSuite/png/filters-gauss-03-f.png create mode 100644 Tests/W3CTestSuite/png/filters-image-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-image-02-b.png create mode 100644 Tests/W3CTestSuite/png/filters-image-03-f.png create mode 100644 Tests/W3CTestSuite/png/filters-image-04-f.png create mode 100644 Tests/W3CTestSuite/png/filters-image-05-f.png create mode 100644 Tests/W3CTestSuite/png/filters-light-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-light-02-f.png create mode 100644 Tests/W3CTestSuite/png/filters-light-03-f.png create mode 100644 Tests/W3CTestSuite/png/filters-light-04-f.png create mode 100644 Tests/W3CTestSuite/png/filters-light-05-f.png create mode 100644 Tests/W3CTestSuite/png/filters-morph-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-offset-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-offset-02-b.png create mode 100644 Tests/W3CTestSuite/png/filters-overview-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-overview-02-b.png create mode 100644 Tests/W3CTestSuite/png/filters-overview-03-b.png create mode 100644 Tests/W3CTestSuite/png/filters-specular-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-tile-01-b.png create mode 100644 Tests/W3CTestSuite/png/filters-turb-01-f.png create mode 100644 Tests/W3CTestSuite/png/filters-turb-02-f.png create mode 100644 Tests/W3CTestSuite/png/fonts-desc-01-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-desc-02-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-desc-03-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-desc-04-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-desc-05-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-01-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-02-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-03-b.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-04-b.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-05-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-06-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-elem-07-b.png create mode 100644 Tests/W3CTestSuite/png/fonts-glyph-02-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-glyph-03-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-glyph-04-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-kern-01-t.png create mode 100644 Tests/W3CTestSuite/png/fonts-overview-201-t.png create mode 100644 Tests/W3CTestSuite/png/imp-path-01-f.png create mode 100644 Tests/W3CTestSuite/png/interact-cursor-01-f.png create mode 100644 Tests/W3CTestSuite/png/interact-dom-01-b.png create mode 100644 Tests/W3CTestSuite/png/interact-events-01-b.png create mode 100644 Tests/W3CTestSuite/png/interact-events-02-b.png create mode 100644 Tests/W3CTestSuite/png/interact-events-202-f.png create mode 100644 Tests/W3CTestSuite/png/interact-events-203-t.png create mode 100644 Tests/W3CTestSuite/png/interact-order-01-b.png create mode 100644 Tests/W3CTestSuite/png/interact-order-02-b.png create mode 100644 Tests/W3CTestSuite/png/interact-order-03-b.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-01-b.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-02-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-03-b.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-04-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-05-b.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-07-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-08-f.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-09-f.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-10-f.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-201-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pevents-202-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pointer-01-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pointer-02-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pointer-03-t.png create mode 100644 Tests/W3CTestSuite/png/interact-pointer-04-f.png create mode 100644 Tests/W3CTestSuite/png/interact-zoom-01-t.png create mode 100644 Tests/W3CTestSuite/png/interact-zoom-02-t.png create mode 100644 Tests/W3CTestSuite/png/interact-zoom-03-t.png create mode 100644 Tests/W3CTestSuite/png/linking-a-01-b.png create mode 100644 Tests/W3CTestSuite/png/linking-a-03-b.png create mode 100644 Tests/W3CTestSuite/png/linking-a-04-t.png create mode 100644 Tests/W3CTestSuite/png/linking-a-05-t.png create mode 100644 Tests/W3CTestSuite/png/linking-a-06-t.png create mode 100644 Tests/W3CTestSuite/png/linking-a-07-t.png create mode 100644 Tests/W3CTestSuite/png/linking-a-08-t.png create mode 100644 Tests/W3CTestSuite/png/linking-a-09-b.png create mode 100644 Tests/W3CTestSuite/png/linking-a-10-f.png create mode 100644 Tests/W3CTestSuite/png/linking-frag-01-f.png create mode 100644 Tests/W3CTestSuite/png/linking-uri-01-b.png create mode 100644 Tests/W3CTestSuite/png/linking-uri-02-b.png create mode 100644 Tests/W3CTestSuite/png/linking-uri-03-t.png create mode 100644 Tests/W3CTestSuite/png/masking-filter-01-f.png create mode 100644 Tests/W3CTestSuite/png/masking-intro-01-f.png create mode 100644 Tests/W3CTestSuite/png/masking-mask-01-b.png create mode 100644 Tests/W3CTestSuite/png/masking-mask-02-f.png create mode 100644 Tests/W3CTestSuite/png/masking-opacity-01-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-01-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-02-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-03-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-04-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-05-f.png create mode 100644 Tests/W3CTestSuite/png/masking-path-06-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-07-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-08-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-09-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-10-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-11-b.png create mode 100644 Tests/W3CTestSuite/png/masking-path-12-f.png create mode 100644 Tests/W3CTestSuite/png/masking-path-13-f.png create mode 100644 Tests/W3CTestSuite/png/masking-path-14-f.png create mode 100644 Tests/W3CTestSuite/png/metadata-example-01-t.png create mode 100644 Tests/W3CTestSuite/png/painting-control-01-f.png create mode 100644 Tests/W3CTestSuite/png/painting-control-02-f.png create mode 100644 Tests/W3CTestSuite/png/painting-control-03-f.png create mode 100644 Tests/W3CTestSuite/png/painting-control-04-f.png create mode 100644 Tests/W3CTestSuite/png/painting-control-05-f.png create mode 100644 Tests/W3CTestSuite/png/painting-control-06-f.png create mode 100644 Tests/W3CTestSuite/png/painting-fill-01-t.png create mode 100644 Tests/W3CTestSuite/png/painting-fill-02-t.png create mode 100644 Tests/W3CTestSuite/png/painting-fill-03-t.png create mode 100644 Tests/W3CTestSuite/png/painting-fill-04-t.png create mode 100644 Tests/W3CTestSuite/png/painting-fill-05-b.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-01-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-02-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-03-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-04-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-05-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-06-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-07-f.png create mode 100644 Tests/W3CTestSuite/png/painting-marker-properties-01-f.png create mode 100644 Tests/W3CTestSuite/png/painting-render-01-b.png create mode 100644 Tests/W3CTestSuite/png/painting-render-02-b.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-01-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-02-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-03-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-04-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-05-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-06-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-07-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-08-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-09-t.png create mode 100644 Tests/W3CTestSuite/png/painting-stroke-10-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-01-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-02-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-03-f.png create mode 100644 Tests/W3CTestSuite/png/paths-data-04-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-05-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-06-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-07-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-08-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-09-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-10-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-11-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-12-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-13-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-14-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-15-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-16-t.png create mode 100644 Tests/W3CTestSuite/png/paths-data-17-f.png create mode 100644 Tests/W3CTestSuite/png/paths-data-18-f.png create mode 100644 Tests/W3CTestSuite/png/paths-data-19-f.png create mode 100644 Tests/W3CTestSuite/png/paths-data-20-f.png create mode 100644 Tests/W3CTestSuite/png/paths-dist-01-t.png create mode 100644 Tests/W3CTestSuite/png/paths-dom-01-f.png create mode 100644 Tests/W3CTestSuite/png/paths-dom-02-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-01-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-02-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-03-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-04-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-05-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-06-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-07-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-08-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-09-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-10-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-11-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-12-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-13-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-14-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-15-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-16-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-17-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-18-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-19-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-20-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-21-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-22-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-23-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-24-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-grad-stops-01-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-01-b.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-02-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-03-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-04-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-05-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-06-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-07-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-08-f.png create mode 100644 Tests/W3CTestSuite/png/pservers-pattern-09-f.png create mode 100644 Tests/W3CTestSuite/png/render-elems-01-t.png create mode 100644 Tests/W3CTestSuite/png/render-elems-02-t.png create mode 100644 Tests/W3CTestSuite/png/render-elems-03-t.png create mode 100644 Tests/W3CTestSuite/png/render-elems-06-t.png create mode 100644 Tests/W3CTestSuite/png/render-elems-07-t.png create mode 100644 Tests/W3CTestSuite/png/render-elems-08-t.png create mode 100644 Tests/W3CTestSuite/png/render-groups-01-b.png create mode 100644 Tests/W3CTestSuite/png/render-groups-03-t.png create mode 100644 Tests/W3CTestSuite/png/script-elem-01-b.png create mode 100644 Tests/W3CTestSuite/png/script-handle-01-b.png create mode 100644 Tests/W3CTestSuite/png/script-handle-02-b.png create mode 100644 Tests/W3CTestSuite/png/script-handle-03-b.png create mode 100644 Tests/W3CTestSuite/png/script-handle-04-b.png create mode 100644 Tests/W3CTestSuite/png/script-specify-01-f.png create mode 100644 Tests/W3CTestSuite/png/script-specify-02-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-circle-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-circle-02-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-ellipse-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-ellipse-02-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-ellipse-03-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-grammar-01-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-intro-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-intro-02-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-line-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-line-02-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-polygon-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-polygon-02-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-polygon-03-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-polyline-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-polyline-02-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-01-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-02-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-03-t.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-04-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-05-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-06-f.png create mode 100644 Tests/W3CTestSuite/png/shapes-rect-07-f.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-01-t.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-02-t.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-03-t.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-overview-02-f.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-overview-03-f.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-overview-04-f.png create mode 100644 Tests/W3CTestSuite/png/struct-cond-overview-05-f.png create mode 100644 Tests/W3CTestSuite/png/struct-defs-01-t.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-01-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-02-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-03-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-04-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-05-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-06-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-07-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-08-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-09-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-11-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-12-b.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-13-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-14-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-15-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-16-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-17-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-18-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-19-f.png create mode 100644 Tests/W3CTestSuite/png/struct-dom-20-f.png create mode 100644 Tests/W3CTestSuite/png/struct-frag-01-t.png create mode 100644 Tests/W3CTestSuite/png/struct-frag-02-t.png create mode 100644 Tests/W3CTestSuite/png/struct-frag-03-t.png create mode 100644 Tests/W3CTestSuite/png/struct-frag-04-t.png create mode 100644 Tests/W3CTestSuite/png/struct-frag-05-t.png create mode 100644 Tests/W3CTestSuite/png/struct-frag-06-t.png create mode 100644 Tests/W3CTestSuite/png/struct-group-01-t.png create mode 100644 Tests/W3CTestSuite/png/struct-group-02-b.png create mode 100644 Tests/W3CTestSuite/png/struct-group-03-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-01-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-02-b.png create mode 100644 Tests/W3CTestSuite/png/struct-image-03-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-04-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-05-b.png create mode 100644 Tests/W3CTestSuite/png/struct-image-06-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-07-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-08-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-09-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-10-t.png create mode 100644 Tests/W3CTestSuite/png/struct-image-11-b.png create mode 100644 Tests/W3CTestSuite/png/struct-image-12-b.png create mode 100644 Tests/W3CTestSuite/png/struct-image-13-f.png create mode 100644 Tests/W3CTestSuite/png/struct-image-14-f.png create mode 100644 Tests/W3CTestSuite/png/struct-image-15-f.png create mode 100644 Tests/W3CTestSuite/png/struct-image-16-f.png create mode 100644 Tests/W3CTestSuite/png/struct-image-17-b.png create mode 100644 Tests/W3CTestSuite/png/struct-image-18-f.png create mode 100644 Tests/W3CTestSuite/png/struct-image-19-f.png create mode 100644 Tests/W3CTestSuite/png/struct-svg-01-f.png create mode 100644 Tests/W3CTestSuite/png/struct-svg-02-f.png create mode 100644 Tests/W3CTestSuite/png/struct-svg-03-f.png create mode 100644 Tests/W3CTestSuite/png/struct-symbol-01-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-01-t.png create mode 100644 Tests/W3CTestSuite/png/struct-use-03-t.png create mode 100644 Tests/W3CTestSuite/png/struct-use-04-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-05-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-06-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-07-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-08-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-09-b.png create mode 100644 Tests/W3CTestSuite/png/struct-use-10-f.png create mode 100644 Tests/W3CTestSuite/png/struct-use-11-f.png create mode 100644 Tests/W3CTestSuite/png/struct-use-12-f.png create mode 100644 Tests/W3CTestSuite/png/struct-use-13-f.png create mode 100644 Tests/W3CTestSuite/png/struct-use-14-f.png create mode 100644 Tests/W3CTestSuite/png/struct-use-15-f.png create mode 100644 Tests/W3CTestSuite/png/styling-class-01-f.png create mode 100644 Tests/W3CTestSuite/png/styling-css-01-b.png create mode 100644 Tests/W3CTestSuite/png/styling-css-02-b.png create mode 100644 Tests/W3CTestSuite/png/styling-css-03-b.png create mode 100644 Tests/W3CTestSuite/png/styling-css-04-f.png create mode 100644 Tests/W3CTestSuite/png/styling-css-05-b.png create mode 100644 Tests/W3CTestSuite/png/styling-css-06-b.png create mode 100644 Tests/W3CTestSuite/png/styling-css-07-f.png create mode 100644 Tests/W3CTestSuite/png/styling-css-08-f.png create mode 100644 Tests/W3CTestSuite/png/styling-css-09-f.png create mode 100644 Tests/W3CTestSuite/png/styling-css-10-f.png create mode 100644 Tests/W3CTestSuite/png/styling-elem-01-b.png create mode 100644 Tests/W3CTestSuite/png/styling-elem-02-b.png create mode 100644 Tests/W3CTestSuite/png/styling-inherit-01-b.png create mode 100644 Tests/W3CTestSuite/png/styling-pres-01-t.png create mode 100644 Tests/W3CTestSuite/png/styling-pres-02-f.png create mode 100644 Tests/W3CTestSuite/png/styling-pres-03-f.png create mode 100644 Tests/W3CTestSuite/png/styling-pres-04-f.png create mode 100644 Tests/W3CTestSuite/png/styling-pres-05-f.png create mode 100644 Tests/W3CTestSuite/png/svgdom-over-01-f.png create mode 100644 Tests/W3CTestSuite/png/text-align-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-align-02-b.png create mode 100644 Tests/W3CTestSuite/png/text-align-03-b.png create mode 100644 Tests/W3CTestSuite/png/text-align-04-b.png create mode 100644 Tests/W3CTestSuite/png/text-align-05-b.png create mode 100644 Tests/W3CTestSuite/png/text-align-06-b.png create mode 100644 Tests/W3CTestSuite/png/text-align-07-t.png create mode 100644 Tests/W3CTestSuite/png/text-align-08-b.png create mode 100644 Tests/W3CTestSuite/png/text-altglyph-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-altglyph-02-b.png create mode 100644 Tests/W3CTestSuite/png/text-altglyph-03-b.png create mode 100644 Tests/W3CTestSuite/png/text-bidi-01-t.png create mode 100644 Tests/W3CTestSuite/png/text-deco-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-dom-01-f.png create mode 100644 Tests/W3CTestSuite/png/text-dom-02-f.png create mode 100644 Tests/W3CTestSuite/png/text-dom-03-f.png create mode 100644 Tests/W3CTestSuite/png/text-dom-04-f.png create mode 100644 Tests/W3CTestSuite/png/text-dom-05-f.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-01-t.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-02-t.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-03-t.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-04-t.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-05-f.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-202-t.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-203-t.png create mode 100644 Tests/W3CTestSuite/png/text-fonts-204-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-01-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-02-b.png create mode 100644 Tests/W3CTestSuite/png/text-intro-03-b.png create mode 100644 Tests/W3CTestSuite/png/text-intro-04-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-05-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-06-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-07-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-09-b.png create mode 100644 Tests/W3CTestSuite/png/text-intro-10-f.png create mode 100644 Tests/W3CTestSuite/png/text-intro-11-t.png create mode 100644 Tests/W3CTestSuite/png/text-intro-12-t.png create mode 100644 Tests/W3CTestSuite/png/text-path-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-path-02-b.png create mode 100644 Tests/W3CTestSuite/png/text-spacing-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-text-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-text-03-b.png create mode 100644 Tests/W3CTestSuite/png/text-text-04-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-05-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-06-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-07-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-08-b.png create mode 100644 Tests/W3CTestSuite/png/text-text-09-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-10-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-11-t.png create mode 100644 Tests/W3CTestSuite/png/text-text-12-t.png create mode 100644 Tests/W3CTestSuite/png/text-tref-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-tref-02-b.png create mode 100644 Tests/W3CTestSuite/png/text-tref-03-b.png create mode 100644 Tests/W3CTestSuite/png/text-tselect-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-tselect-02-f.png create mode 100644 Tests/W3CTestSuite/png/text-tselect-03-f.png create mode 100644 Tests/W3CTestSuite/png/text-tspan-01-b.png create mode 100644 Tests/W3CTestSuite/png/text-tspan-02-b.png create mode 100644 Tests/W3CTestSuite/png/text-ws-01-t.png create mode 100644 Tests/W3CTestSuite/png/text-ws-02-t.png create mode 100644 Tests/W3CTestSuite/png/text-ws-03-t.png create mode 100644 Tests/W3CTestSuite/png/types-basic-01-f.png create mode 100644 Tests/W3CTestSuite/png/types-basic-02-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-01-b.png create mode 100644 Tests/W3CTestSuite/png/types-dom-02-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-03-b.png create mode 100644 Tests/W3CTestSuite/png/types-dom-04-b.png create mode 100644 Tests/W3CTestSuite/png/types-dom-05-b.png create mode 100644 Tests/W3CTestSuite/png/types-dom-06-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-07-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-08-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-svgfittoviewbox-01-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-svglengthlist-01-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-svgnumberlist-01-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-svgstringlist-01-f.png create mode 100644 Tests/W3CTestSuite/png/types-dom-svgtransformable-01-f.png create mode 100644 Tests/W3CTestSuite/resources/Baselines/Tribase.sfd create mode 100644 Tests/W3CTestSuite/resources/Baselines/Tribase.svg create mode 100644 Tests/W3CTestSuite/resources/Blocky.svg create mode 100644 Tests/W3CTestSuite/resources/Blocky.woff create mode 100644 Tests/W3CTestSuite/resources/EzraSILSR.woff create mode 100644 Tests/W3CTestSuite/resources/FreeSerif.svg create mode 100644 Tests/W3CTestSuite/resources/FreeSerifBold.svg create mode 100644 Tests/W3CTestSuite/resources/FreeSerifBoldItalic.svg create mode 100644 Tests/W3CTestSuite/resources/FreeSerifItalic.svg create mode 100644 Tests/W3CTestSuite/resources/Heb.svg create mode 100644 Tests/W3CTestSuite/resources/LinBTestFont.svg create mode 100644 Tests/W3CTestSuite/resources/Plane1/.directory create mode 100644 Tests/W3CTestSuite/resources/Plane1/Plane1Test-forFF.svg create mode 100644 Tests/W3CTestSuite/resources/Plane1/PlaneOne.sfd create mode 100644 Tests/W3CTestSuite/resources/Plane1/PlaneOne.svg create mode 100644 Tests/W3CTestSuite/resources/Plane1/svgtestsuite-woffmeta.xml create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSans-ISO-8859-1.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSans.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSansBold-Lat1.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSansBold.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSansBoldItalic.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSansBoldOblique-Lat1.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSansItalic.svg create mode 100644 Tests/W3CTestSuite/resources/SVGFreeSansOblique-Lat1.svg create mode 100644 Tests/W3CTestSuite/resources/ScheherazadeRegOT.ttf create mode 100644 Tests/W3CTestSuite/resources/ZCB.svg create mode 100644 Tests/W3CTestSuite/resources/ZCL.svg create mode 100644 Tests/W3CTestSuite/resources/ZCR.svg create mode 100644 Tests/W3CTestSuite/resources/ZCSB.svg create mode 100644 Tests/W3CTestSuite/resources/ZCXB.svg create mode 100644 Tests/W3CTestSuite/resources/ZSSB.svg create mode 100644 Tests/W3CTestSuite/resources/anglepoi.woff create mode 100644 Tests/W3CTestSuite/resources/gnufreefonts.xml create mode 100644 Tests/W3CTestSuite/resources/sch.xml create mode 100644 Tests/W3CTestSuite/resources/testharness.js create mode 100644 Tests/W3CTestSuite/svg/__AJ_Digital_Camera.svg create mode 100644 Tests/W3CTestSuite/svg/__issue-34-02.svg create mode 100644 Tests/W3CTestSuite/svg/__issue-83-01.svg create mode 100644 Tests/W3CTestSuite/svg/__tiger.svg create mode 100644 Tests/W3CTestSuite/svg/animate-dom-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/animate-dom-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-09-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-10-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-11-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-12-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-13-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-14-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-15-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-17-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-19-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-20-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-21-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-22-b.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-23-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-24-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-25-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-26-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-27-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-28-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-29-b.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-30-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-31-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-32-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-33-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-34-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-35-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-36-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-37-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-38-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-39-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-40-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-41-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-44-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-46-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-52-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-53-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-60-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-61-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-62-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-63-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-64-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-65-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-66-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-67-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-68-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-69-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-70-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-77-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-78-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-80-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-81-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-82-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-83-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-84-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-85-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-86-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-87-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-88-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-89-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-90-b.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-91-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-elem-92-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-interact-events-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-interact-pevents-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-interact-pevents-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-interact-pevents-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-interact-pevents-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/animate-pservers-grad-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/animate-script-elem-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/animate-struct-dom-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/color-prof-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/color-prop-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/color-prop-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/color-prop-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/color-prop-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/color-prop-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/conform-viewers-01-t.svgz create mode 100644 Tests/W3CTestSuite/svg/conform-viewers-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/conform-viewers-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-coord-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-coord-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-dom-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-dom-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-dom-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-dom-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-09-t.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-10-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-11-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-12-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-13-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-trans-14-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-transformattr-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-transformattr-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-transformattr-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-transformattr-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-transformattr-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/coords-units-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-units-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-units-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-viewattr-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-viewattr-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-viewattr-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/coords-viewattr-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/extend-namespace-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-background-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-blend-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-color-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-color-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-composite-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-composite-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-composite-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-composite-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-comptran-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-conv-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-conv-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-conv-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-conv-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-conv-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-diffuse-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-displace-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-displace-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-example-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-felem-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-felem-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-gauss-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-gauss-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-gauss-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-image-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-image-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-image-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-image-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-image-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-light-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-light-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-light-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-light-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-light-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-morph-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-offset-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-offset-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-overview-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-overview-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-overview-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-specular-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-tile-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/filters-turb-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/filters-turb-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-desc-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-desc-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-desc-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-desc-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-desc-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-elem-07-b.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-glyph-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-glyph-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-glyph-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-kern-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/fonts-overview-201-t.svg create mode 100644 Tests/W3CTestSuite/svg/imp-path-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-cursor-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-dom-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-events-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-events-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-events-202-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-events-203-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-order-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-order-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-order-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-08-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-09-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pevents-10-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pointer-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pointer-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pointer-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-pointer-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/interact-zoom-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-zoom-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/interact-zoom-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-09-b.svg create mode 100644 Tests/W3CTestSuite/svg/linking-a-10-f.svg create mode 100644 Tests/W3CTestSuite/svg/linking-frag-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/linking-uri-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/linking-uri-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/linking-uri-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/masking-filter-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/masking-intro-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/masking-mask-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-mask-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/masking-opacity-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-06-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-07-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-08-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-09-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-10-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-11-b.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-12-f.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-13-f.svg create mode 100644 Tests/W3CTestSuite/svg/masking-path-14-f.svg create mode 100644 Tests/W3CTestSuite/svg/metadata-example-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-control-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-control-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-control-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-control-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-control-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-control-06-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-fill-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-fill-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-fill-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-fill-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-fill-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-06-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-07-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-marker-properties-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/painting-render-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/painting-render-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-09-t.svg create mode 100644 Tests/W3CTestSuite/svg/painting-stroke-10-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-09-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-10-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-12-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-13-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-14-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-15-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-16-t.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-17-f.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-18-f.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-19-f.svg create mode 100644 Tests/W3CTestSuite/svg/paths-data-20-f.svg create mode 100644 Tests/W3CTestSuite/svg/paths-dom-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/paths-dom-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-06-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-07-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-08-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-09-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-10-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-11-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-12-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-13-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-14-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-15-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-16-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-17-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-18-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-20-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-21-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-22-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-23-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-24-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-grad-stops-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-06-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-07-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-08-f.svg create mode 100644 Tests/W3CTestSuite/svg/pservers-pattern-09-f.svg create mode 100644 Tests/W3CTestSuite/svg/render-elems-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/render-elems-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/render-elems-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/render-elems-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/render-elems-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/render-elems-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/render-groups-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/render-groups-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/script-handle-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/script-handle-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/script-handle-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/script-handle-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/script-specify-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/script-specify-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-circle-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-circle-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-ellipse-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-ellipse-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-ellipse-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-grammar-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-intro-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-intro-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-line-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-line-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-polygon-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-polygon-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-polygon-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-polyline-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-polyline-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-06-f.svg create mode 100644 Tests/W3CTestSuite/svg/shapes-rect-07-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-overview-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-overview-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-overview-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-cond-overview-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-defs-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-06-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-07-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-08-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-11-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-12-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-13-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-14-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-15-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-16-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-17-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-18-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-19-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-dom-20-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-frag-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-frag-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-frag-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-frag-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-frag-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-frag-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-group-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-group-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-group-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-08-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-09-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-10-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-11-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-12-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-13-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-14-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-15-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-16-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-17-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-18-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-image-19-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-svg-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-svg-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-svg-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-symbol-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-06-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-07-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-08-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-09-b.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-10-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-11-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-12-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-13-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-14-f.svg create mode 100644 Tests/W3CTestSuite/svg/struct-use-15-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-class-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-06-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-07-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-08-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-09-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-css-10-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-elem-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-inherit-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/styling-pres-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/styling-pres-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-pres-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-pres-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/styling-pres-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/svgdom-over-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-06-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-align-08-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-altglyph-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-altglyph-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-altglyph-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-bidi-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-deco-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-dom-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-dom-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-dom-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-dom-04-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-dom-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-05-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-202-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-203-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-fonts-204-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-09-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-10-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-11-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-intro-12-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-path-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-path-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-spacing-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-04-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-05-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-06-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-07-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-08-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-09-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-10-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-11-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-text-12-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-tref-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-tref-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-tref-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-tselect-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-tselect-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-tselect-03-f.svg create mode 100644 Tests/W3CTestSuite/svg/text-tspan-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-tspan-02-b.svg create mode 100644 Tests/W3CTestSuite/svg/text-ws-01-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-ws-02-t.svg create mode 100644 Tests/W3CTestSuite/svg/text-ws-03-t.svg create mode 100644 Tests/W3CTestSuite/svg/types-basic-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-basic-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-01-b.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-02-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-03-b.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-04-b.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-05-b.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-06-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-07-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-08-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-svgfittoviewbox-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-svglengthlist-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-svgnumberlist-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-svgstringlist-01-f.svg create mode 100644 Tests/W3CTestSuite/svg/types-dom-svgtransformable-01-f.svg diff --git a/.gitignore b/.gitignore index c9cc0d5..eff00ce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,17 @@ -Source/bin/ -Source/obj/ -Source/Svg.csproj.user -Source/Svg.suo +Source/**/bin/ +Source/**/obj/ +Source/**/*.csproj.user +Source/**/*.suo Source/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache Samples/SVGViewer/obj/ Samples/SVGViewer/bin/ Samples/SVGViewer/SVGViewer.OpenCover.Settings -*.dll -*.pdb +Source/**/*.dll +Source/**/*.pdb +Tests/**/bin/ +Tests/**/obj/ +Tests/**/*.csproj.user +Tests/**/*.suo +*.trx +Source/TestResults/ \ No newline at end of file diff --git a/Samples/SvgExamples/Workflow.svg b/Samples/SvgExamples/Workflow.svg deleted file mode 100644 index 0ecd70c..0000000 --- a/Samples/SvgExamples/Workflow.svg +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ClosedStart - - - -ClosedSubmit ECO - -ClosedMDM Review - - - -ClosedNeed Info - - - -ActiveECO Plan Approval - - - -PendingMDM Review - - - -PendingPrint/Drawing Update - - - -PendingECO Pre-Approval - - - -PendingInterim Workflow Resolution - - - -PendingDraft Changes - - - -PendingApproval Resolution - - - -PendingChange Review - - - -PendingChange Review - - - -PendingPre-Prod Approval Resolution - - - -PendingImpl. Plan Review - - - -PendingPre-Production Approval - - - -PendingEffectivity Wait - - - -PendingImpl. Approval - - - -PendingImpl. Approved - - - -PendingCancel - - - -PendingClose Change -Go -Cancel ECO -Submit -Unsubmit -iLink - Pre-Approval -Cancel ECO -Legacy Workflow -iLink - Pre-Approved -Pre-Production Workflow -Interim Workflow (Approval) -Interim Workflow (Prints) -Added Info -Re-Review -Approve ECO -Need more info -Reject -Prints Updated -Unsubmit -Approve -Reject -Unsubmit -Redo Approval -Submit for Review -Repeat Need Info -Repeat Approval -Reject -Approve -Rework -Approve -Unsubmit -Redo Approval -Approve Plan -Approve & Implement -Reject ECO -Approve & Wait -Req. Impl. Approval -Ready -Not Ready -Fully Impl/Close -Continue Wait - diff --git a/Source/Basic Shapes/SvgCircle.cs b/Source/Basic Shapes/SvgCircle.cs index 29979c4..93a4fcd 100644 --- a/Source/Basic Shapes/SvgCircle.cs +++ b/Source/Basic Shapes/SvgCircle.cs @@ -81,7 +81,7 @@ namespace Svg /// The rectangular bounds of the circle. public override RectangleF Bounds { - get { return this.Path.GetBounds(); } + get { return this.Path(null).GetBounds(); } } /// @@ -98,24 +98,19 @@ namespace Svg /// /// Gets the representing this element. /// - public override GraphicsPath Path + public override GraphicsPath Path(SvgRenderer renderer) { - get + if (this._path == null || this.IsPathDirty) { - if (this._path == null || this.IsPathDirty) - { - _path = new GraphicsPath(); - _path.StartFigure(); - _path.AddEllipse(this.Center.ToDeviceValue().X - this.Radius.ToDeviceValue(), this.Center.ToDeviceValue().Y - this.Radius.ToDeviceValue(), 2 * this.Radius.ToDeviceValue(), 2 * this.Radius.ToDeviceValue()); - _path.CloseFigure(); - this.IsPathDirty = false; - } - return _path; - } - protected set - { - _path = value; + _path = new GraphicsPath(); + _path.StartFigure(); + var center = this.Center.ToDeviceValue(renderer, this); + var radius = this.Radius.ToDeviceValue(renderer, UnitRenderingType.Other, this); + _path.AddEllipse(center.X - radius, center.Y - radius, 2 * radius, 2 * radius); + _path.CloseFigure(); + this.IsPathDirty = false; } + return _path; } /// diff --git a/Source/Basic Shapes/SvgEllipse.cs b/Source/Basic Shapes/SvgEllipse.cs index 90f3641..07f93ad 100644 --- a/Source/Basic Shapes/SvgEllipse.cs +++ b/Source/Basic Shapes/SvgEllipse.cs @@ -95,34 +95,27 @@ namespace Svg /// The bounds. public override RectangleF Bounds { - get { return this.Path.GetBounds(); } + get { return this.Path(null).GetBounds(); } } /// /// Gets the for this element. /// /// - public override GraphicsPath Path + public override GraphicsPath Path(SvgRenderer renderer) { - get + if (this._path == null || this.IsPathDirty) { - if (this._path == null || this.IsPathDirty) - { - PointF center = new PointF(this._centerX.ToDeviceValue(this), this._centerY.ToDeviceValue(this, true)); - PointF radius = new PointF(this._radiusX.ToDeviceValue(this), this._radiusY.ToDeviceValue(this, true)); + var center = SvgUnit.GetDevicePoint(this._centerX, this._centerY, renderer, this); + var radius = SvgUnit.GetDevicePoint(this._radiusX, this._radiusY, renderer, this); - this._path = new GraphicsPath(); - _path.StartFigure(); - _path.AddEllipse(center.X - radius.X, center.Y - radius.Y, 2 * radius.X, 2 * radius.Y); - _path.CloseFigure(); - this.IsPathDirty = false; - } - return _path; - } - protected set - { - _path = value; + this._path = new GraphicsPath(); + _path.StartFigure(); + _path.AddEllipse(center.X - radius.X, center.Y - radius.Y, 2 * radius.X, 2 * radius.Y); + _path.CloseFigure(); + this.IsPathDirty = false; } + return _path; } /// diff --git a/Source/Basic Shapes/SvgImage.cs b/Source/Basic Shapes/SvgImage.cs index eeed03a..a8762c9 100644 --- a/Source/Basic Shapes/SvgImage.cs +++ b/Source/Basic Shapes/SvgImage.cs @@ -29,6 +29,17 @@ namespace Svg public SvgPoint Location { get { return new SvgPoint(X, Y); } + } + + /// + /// Gets or sets the aspect of the viewport. + /// + /// + [SvgAttribute("preserveAspectRatio")] + public SvgAspectRatio AspectRatio + { + get { return this.Attributes.GetAttribute("preserveAspectRatio"); } + set { this.Attributes["preserveAspectRatio"] = value; } } [SvgAttribute("x")] @@ -75,21 +86,17 @@ namespace Svg /// The bounds. public override RectangleF Bounds { - get { return new RectangleF(this.Location.ToDeviceValue(), new SizeF(this.Width, this.Height)); } + get { return new RectangleF(this.Location.ToDeviceValue(null, this), + new SizeF(this.Width.ToDeviceValue(null, UnitRenderingType.Horizontal, this), + this.Height.ToDeviceValue(null, UnitRenderingType.Vertical, this))); } } /// /// Gets the for this element. - /// - public override GraphicsPath Path + /// + public override GraphicsPath Path(SvgRenderer renderer) { - get - { - return null; - } - protected set - { - } + return null; } /// @@ -106,13 +113,72 @@ namespace Svg { if (b != null) { + var srcRect = new RectangleF(0, 0, b.Width, b.Height); + var destClip = new RectangleF(this.Location.ToDeviceValue(renderer, this), + new SizeF(Width.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this), + Height.ToDeviceValue(renderer, UnitRenderingType.Vertical, this))); + RectangleF destRect = destClip; + this.PushTransforms(renderer); + renderer.AddClip(new Region(destClip)); this.SetClip(renderer); - RectangleF srcRect = new RectangleF(0, 0, b.Width, b.Height); - var destRect = new RectangleF(this.Location.ToDeviceValue(), - new SizeF(Width.ToDeviceValue(), Height.ToDeviceValue())); + if (AspectRatio != null && AspectRatio.Align != SvgPreserveAspectRatio.none) + { + var fScaleX = destClip.Width / srcRect.Width; + var fScaleY = destClip.Height / srcRect.Height; + var xOffset = 0.0f; + var yOffset = 0.0f; + + if (AspectRatio.Slice) + { + fScaleX = Math.Max(fScaleX, fScaleY); + fScaleY = Math.Max(fScaleX, fScaleY); + } + else + { + fScaleX = Math.Min(fScaleX, fScaleY); + fScaleY = Math.Min(fScaleX, fScaleY); + } + + switch (AspectRatio.Align) + { + case SvgPreserveAspectRatio.xMinYMin: + break; + case SvgPreserveAspectRatio.xMidYMin: + xOffset = (destClip.Width - srcRect.Width * fScaleX) / 2; + break; + case SvgPreserveAspectRatio.xMaxYMin: + xOffset = (destClip.Width - srcRect.Width * fScaleX); + break; + case SvgPreserveAspectRatio.xMinYMid: + yOffset = (destClip.Height - srcRect.Height * fScaleY) / 2; + break; + case SvgPreserveAspectRatio.xMidYMid: + xOffset = (destClip.Width - srcRect.Width * fScaleX) / 2; + yOffset = (destClip.Height - srcRect.Height * fScaleY) / 2; + break; + case SvgPreserveAspectRatio.xMaxYMid: + xOffset = (destClip.Width - srcRect.Width * fScaleX); + yOffset = (destClip.Height - srcRect.Height * fScaleY) / 2; + break; + case SvgPreserveAspectRatio.xMinYMax: + yOffset = (destClip.Height - srcRect.Height * fScaleY); + break; + case SvgPreserveAspectRatio.xMidYMax: + xOffset = (destClip.Width - srcRect.Width * fScaleX) / 2; + yOffset = (destClip.Height - srcRect.Height * fScaleY); + break; + case SvgPreserveAspectRatio.xMaxYMax: + xOffset = (destClip.Width - srcRect.Width * fScaleX); + yOffset = (destClip.Height - srcRect.Height * fScaleY); + break; + } + destRect = new RectangleF(destClip.X + xOffset, destClip.Y + yOffset, + srcRect.Width * fScaleX, srcRect.Height * fScaleY); + } + renderer.DrawImage(b, destRect, srcRect, GraphicsUnit.Pixel); this.ResetClip(renderer); @@ -129,7 +195,7 @@ namespace Svg try { // handle data/uri embedded images (http://en.wikipedia.org/wiki/Data_URI_scheme) - if (uri.Scheme == "data") + if (uri.IsAbsoluteUri && uri.Scheme == "data") { string uriString = uri.OriginalString; int dataIdx = uriString.IndexOf(",") + 1; @@ -143,14 +209,26 @@ namespace Svg return image; } + if (!uri.IsAbsoluteUri) + { + uri = new Uri(OwnerDocument.BaseUri, uri); + } + // should work with http: and file: protocol urls var httpRequest = WebRequest.Create(uri); using (WebResponse webResponse = httpRequest.GetResponse()) { MemoryStream ms = BufferToMemoryStream(webResponse.GetResponseStream()); - Image image = Bitmap.FromStream(ms); - return image; + if (uri.LocalPath.EndsWith(".svg", StringComparison.InvariantCultureIgnoreCase)) + { + var doc = SvgDocument.Open(ms); + return doc.Draw(); + } + else + { + return Bitmap.FromStream(ms); + } } } catch (Exception ex) diff --git a/Source/Basic Shapes/SvgLine.cs b/Source/Basic Shapes/SvgLine.cs index bd24ad8..05c12a0 100644 --- a/Source/Basic Shapes/SvgLine.cs +++ b/Source/Basic Shapes/SvgLine.cs @@ -92,30 +92,25 @@ namespace Svg { } - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get + if (this._path == null || this.IsPathDirty) { - if (this._path == null || this.IsPathDirty) - { - PointF start = new PointF(this.StartX.ToDeviceValue(this), this.StartY.ToDeviceValue(this, true)); - PointF end = new PointF(this.EndX.ToDeviceValue(this), this.EndY.ToDeviceValue(this, true)); + PointF start = new PointF(this.StartX.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this), + this.StartY.ToDeviceValue(renderer, UnitRenderingType.Vertical, this)); + PointF end = new PointF(this.EndX.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this), + this.EndY.ToDeviceValue(renderer, UnitRenderingType.Vertical, this)); - this._path = new GraphicsPath(); - this._path.AddLine(start, end); - this.IsPathDirty = false; - } - return this._path; - } - protected set - { - _path = value; + this._path = new GraphicsPath(); + this._path.AddLine(start, end); + this.IsPathDirty = false; } + return this._path; } public override System.Drawing.RectangleF Bounds { - get { return this.Path.GetBounds(); } + get { return this.Path(null).GetBounds(); } } public override SvgElement DeepCopy() diff --git a/Source/Basic Shapes/SvgPolygon.cs b/Source/Basic Shapes/SvgPolygon.cs index 9773c6b..5c6fc24 100644 --- a/Source/Basic Shapes/SvgPolygon.cs +++ b/Source/Basic Shapes/SvgPolygon.cs @@ -32,51 +32,44 @@ namespace Svg get { return true; } } - public override GraphicsPath Path + public override GraphicsPath Path(SvgRenderer renderer) { - get + if (this._path == null || this.IsPathDirty) { - if (this._path == null || this.IsPathDirty) - { - this._path = new GraphicsPath(); - this._path.StartFigure(); + this._path = new GraphicsPath(); + this._path.StartFigure(); - try + try + { + for (int i = 2; i < this._points.Count; i+=2) { - for (int i = 2; i < this._points.Count; i+=2) - { - PointF endPoint = new PointF(this._points[i].ToDeviceValue(this), this._points[i+1].ToDeviceValue(this)); + var endPoint = SvgUnit.GetDevicePoint(this._points[i], this._points[i+1], renderer, this); - //first line - if (_path.PointCount == 0) - { - _path.AddLine(new PointF(this._points[i-2].ToDeviceValue(this), this._points[i-1].ToDeviceValue(this)), endPoint); - } - else - { - _path.AddLine(_path.GetLastPoint(), endPoint); - } + //first line + if (_path.PointCount == 0) + { + _path.AddLine(SvgUnit.GetDevicePoint(this._points[i - 2], this._points[i - 1], renderer, this), endPoint); + } + else + { + _path.AddLine(_path.GetLastPoint(), endPoint); } } - catch - { - Trace.TraceError("Error parsing points"); - } - - this._path.CloseFigure(); - this.IsPathDirty = false; } - return this._path; - } - protected set - { - _path = value; + catch + { + Trace.TraceError("Error parsing points"); + } + + this._path.CloseFigure(); + this.IsPathDirty = false; } + return this._path; } public override RectangleF Bounds { - get { return this.Path.GetBounds(); } + get { return this.Path(null).GetBounds(); } } diff --git a/Source/Basic Shapes/SvgPolyline.cs b/Source/Basic Shapes/SvgPolyline.cs index dd9d705..c499dd6 100644 --- a/Source/Basic Shapes/SvgPolyline.cs +++ b/Source/Basic Shapes/SvgPolyline.cs @@ -14,39 +14,37 @@ namespace Svg public class SvgPolyline : SvgPolygon { private GraphicsPath _Path; - public override GraphicsPath Path + public override GraphicsPath Path(SvgRenderer renderer) { - get + if (_Path == null || this.IsPathDirty) { - if (_Path == null || this.IsPathDirty) - { - _Path = new GraphicsPath(); + _Path = new GraphicsPath(); - try + try + { + for (int i = 0; i < Points.Count; i += 2) { - for (int i = 0; i < Points.Count; i += 2) - { - PointF endPoint = new PointF(Points[i].ToDeviceValue(this), Points[i + 1].ToDeviceValue(this)); + PointF endPoint = new PointF(Points[i].ToDeviceValue(renderer, UnitRenderingType.Horizontal, this), + Points[i + 1].ToDeviceValue(renderer, UnitRenderingType.Vertical, this)); - // TODO: Remove unrequired first line - if (_Path.PointCount == 0) - { - _Path.AddLine(endPoint, endPoint); - } - else - { - _Path.AddLine(_Path.GetLastPoint(), endPoint); - } + // TODO: Remove unrequired first line + if (_Path.PointCount == 0) + { + _Path.AddLine(endPoint, endPoint); + } + else + { + _Path.AddLine(_Path.GetLastPoint(), endPoint); } } - catch (Exception exc) - { - Trace.TraceError("Error rendering points: " + exc.Message); - } - this.IsPathDirty = false; } - return _Path; + catch (Exception exc) + { + Trace.TraceError("Error rendering points: " + exc.Message); + } + this.IsPathDirty = false; } + return _Path; } } } \ No newline at end of file diff --git a/Source/Basic Shapes/SvgRectangle.cs b/Source/Basic Shapes/SvgRectangle.cs index a438817..717e6c6 100644 --- a/Source/Basic Shapes/SvgRectangle.cs +++ b/Source/Basic Shapes/SvgRectangle.cs @@ -168,101 +168,94 @@ namespace Svg /// The bounds. public override RectangleF Bounds { - get { return Path.GetBounds(); } + get { return Path(null).GetBounds(); } } /// /// Gets the for this element. /// - public override GraphicsPath Path + public override GraphicsPath Path(SvgRenderer renderer) { - get + if (_path == null || IsPathDirty) { - if (_path == null || IsPathDirty) + // If the corners aren't to be rounded just create a rectangle + if (CornerRadiusX.Value == 0.0f && CornerRadiusY.Value == 0.0f) { - // If the corners aren't to be rounded just create a rectangle - if (CornerRadiusX.Value == 0.0f && CornerRadiusY.Value == 0.0f) - { - var rectangle = new RectangleF(Location.ToDeviceValue(), - new SizeF(Width.ToDeviceValue(), Height.ToDeviceValue())); + var rectangle = new RectangleF(Location.ToDeviceValue(renderer, this), + SvgUnit.GetDeviceSize(this.Width, this.Height, renderer, this)); - _path = new GraphicsPath(); - _path.StartFigure(); - _path.AddRectangle(rectangle); - _path.CloseFigure(); - } - else - { - _path = new GraphicsPath(); - var arcBounds = new RectangleF(); - var lineStart = new PointF(); - var lineEnd = new PointF(); - var width = Width.ToDeviceValue(); - var height = Height.ToDeviceValue(); - var rx = CornerRadiusX.ToDeviceValue() * 2; - var ry = CornerRadiusY.ToDeviceValue() * 2; - var location = Location.ToDeviceValue(); + _path = new GraphicsPath(); + _path.StartFigure(); + _path.AddRectangle(rectangle); + _path.CloseFigure(); + } + else + { + _path = new GraphicsPath(); + var arcBounds = new RectangleF(); + var lineStart = new PointF(); + var lineEnd = new PointF(); + var width = Width.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); + var height = Height.ToDeviceValue(renderer, UnitRenderingType.Vertical, this); + var rx = CornerRadiusX.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) * 2; + var ry = CornerRadiusY.ToDeviceValue(renderer, UnitRenderingType.Vertical, this) * 2; + var location = Location.ToDeviceValue(renderer, this); - // Start - _path.StartFigure(); + // Start + _path.StartFigure(); - // Add first arc - arcBounds.Location = location; - arcBounds.Width = rx; - arcBounds.Height = ry; - _path.AddArc(arcBounds, 180, 90); + // Add first arc + arcBounds.Location = location; + arcBounds.Width = rx; + arcBounds.Height = ry; + _path.AddArc(arcBounds, 180, 90); - // Add first line - lineStart.X = Math.Min(location.X + rx, location.X + width * 0.5f); - lineStart.Y = location.Y; - lineEnd.X = Math.Max(location.X + width - rx, location.X + width * 0.5f); - lineEnd.Y = lineStart.Y; - _path.AddLine(lineStart, lineEnd); + // Add first line + lineStart.X = Math.Min(location.X + rx, location.X + width * 0.5f); + lineStart.Y = location.Y; + lineEnd.X = Math.Max(location.X + width - rx, location.X + width * 0.5f); + lineEnd.Y = lineStart.Y; + _path.AddLine(lineStart, lineEnd); - // Add second arc - arcBounds.Location = new PointF(location.X + width - rx, location.Y); - _path.AddArc(arcBounds, 270, 90); + // Add second arc + arcBounds.Location = new PointF(location.X + width - rx, location.Y); + _path.AddArc(arcBounds, 270, 90); - // Add second line - lineStart.X = location.X + width; - lineStart.Y = Math.Min(location.Y + ry, location.Y + height * 0.5f); - lineEnd.X = lineStart.X; - lineEnd.Y = Math.Max(location.Y + height - ry, location.Y + height * 0.5f); - _path.AddLine(lineStart, lineEnd); + // Add second line + lineStart.X = location.X + width; + lineStart.Y = Math.Min(location.Y + ry, location.Y + height * 0.5f); + lineEnd.X = lineStart.X; + lineEnd.Y = Math.Max(location.Y + height - ry, location.Y + height * 0.5f); + _path.AddLine(lineStart, lineEnd); - // Add third arc - arcBounds.Location = new PointF(location.X + width - rx, location.Y + height - ry); - _path.AddArc(arcBounds, 0, 90); + // Add third arc + arcBounds.Location = new PointF(location.X + width - rx, location.Y + height - ry); + _path.AddArc(arcBounds, 0, 90); - // Add third line - lineStart.X = Math.Max(location.X + width - rx, location.X + width * 0.5f); - lineStart.Y = location.Y + height; - lineEnd.X = Math.Min(location.X + rx, location.X + width * 0.5f); - lineEnd.Y = lineStart.Y; - _path.AddLine(lineStart, lineEnd); + // Add third line + lineStart.X = Math.Max(location.X + width - rx, location.X + width * 0.5f); + lineStart.Y = location.Y + height; + lineEnd.X = Math.Min(location.X + rx, location.X + width * 0.5f); + lineEnd.Y = lineStart.Y; + _path.AddLine(lineStart, lineEnd); - // Add third arc - arcBounds.Location = new PointF(location.X, location.Y + height - ry); - _path.AddArc(arcBounds, 90, 90); + // Add third arc + arcBounds.Location = new PointF(location.X, location.Y + height - ry); + _path.AddArc(arcBounds, 90, 90); - // Add fourth line - lineStart.X = location.X; - lineStart.Y = Math.Max(location.Y + height - ry, location.Y + height * 0.5f); - lineEnd.X = lineStart.X; - lineEnd.Y = Math.Min(location.Y + ry, location.Y + height * 0.5f); - _path.AddLine(lineStart, lineEnd); + // Add fourth line + lineStart.X = location.X; + lineStart.Y = Math.Max(location.Y + height - ry, location.Y + height * 0.5f); + lineEnd.X = lineStart.X; + lineEnd.Y = Math.Min(location.Y + ry, location.Y + height * 0.5f); + _path.AddLine(lineStart, lineEnd); - // Close - _path.CloseFigure(); - } - IsPathDirty = false; + // Close + _path.CloseFigure(); } - return _path; - } - protected set - { - _path = value; + IsPathDirty = false; } + return _path; } /// diff --git a/Source/Basic Shapes/SvgVisualElement.cs b/Source/Basic Shapes/SvgVisualElement.cs index fa84ceb..96d19d4 100644 --- a/Source/Basic Shapes/SvgVisualElement.cs +++ b/Source/Basic Shapes/SvgVisualElement.cs @@ -16,7 +16,7 @@ namespace Svg /// /// Gets the for this element. /// - public abstract GraphicsPath Path { get; protected set; } + public abstract GraphicsPath Path(SvgRenderer renderer); PointF ISvgBoundable.Location { @@ -105,7 +105,7 @@ namespace Svg /// The object to render to. protected override void Render(SvgRenderer renderer) { - if ((this.Path != null) && this.Visible && this.Displayable) + if ((this.Path(renderer) != null) && this.Visible && this.Displayable) { this.PushTransforms(renderer); this.SetClip(renderer); @@ -138,12 +138,12 @@ namespace Svg { if (this.Fill != null) { - using (Brush brush = this.Fill.GetBrush(this, Math.Min(Math.Max(this.FillOpacity * this.Opacity, 0), 1))) + using (Brush brush = this.Fill.GetBrush(this, renderer, Math.Min(Math.Max(this.FillOpacity * this.Opacity, 0), 1))) { if (brush != null) { - this.Path.FillMode = this.FillRule == SvgFillRule.NonZero ? FillMode.Winding : FillMode.Alternate; - renderer.FillPath(brush, this.Path); + this.Path(renderer).FillMode = this.FillRule == SvgFillRule.NonZero ? FillMode.Winding : FillMode.Alternate; + renderer.FillPath(brush, this.Path(renderer)); } } } @@ -157,8 +157,8 @@ namespace Svg { if (this.Stroke != null) { - float strokeWidth = this.StrokeWidth.ToDeviceValue(this); - using (var pen = new Pen(this.Stroke.GetBrush(this, Math.Min(Math.Max(this.StrokeOpacity * this.Opacity, 0), 1)), strokeWidth)) + float strokeWidth = this.StrokeWidth.ToDeviceValue(renderer, UnitRenderingType.Other, this); + using (var pen = new Pen(this.Stroke.GetBrush(this, renderer, Math.Min(Math.Max(this.StrokeOpacity * this.Opacity, 0), 1)), strokeWidth)) { if (this.StrokeDashArray != null && this.StrokeDashArray.Count > 0) { @@ -166,7 +166,7 @@ namespace Svg pen.DashPattern = this.StrokeDashArray.ConvertAll(u => ((u.Value <= 0) ? 1 : u.Value) / ((strokeWidth <= 0) ? 1 : strokeWidth)).ToArray(); } - renderer.DrawPath(pen, this.Path); + renderer.DrawPath(pen, this.Path(renderer)); } } } @@ -184,7 +184,7 @@ namespace Svg if (clipPath != null) { - renderer.Clip = clipPath.GetClipRegion(this); + renderer.AddClip(clipPath.GetClipRegion(this)); } } } diff --git a/Source/Basic Shapes/SvgVisualElementStyle.cs b/Source/Basic Shapes/SvgVisualElementStyle.cs index b151aa0..a09fa74 100644 --- a/Source/Basic Shapes/SvgVisualElementStyle.cs +++ b/Source/Basic Shapes/SvgVisualElementStyle.cs @@ -162,11 +162,7 @@ namespace Svg public virtual string FontFamily { get { return this.Attributes["font-family"] as string; } - set - { - this.Attributes["font-family"] = value; - this.IsPathDirty = true; - } + set { this.Attributes["font-family"] = value; this.IsPathDirty = true; } } /// @@ -179,15 +175,6 @@ namespace Svg set { this.Attributes["font-size"] = value; this.IsPathDirty = true; } } - public SvgUnit GetInheritedFontSize() - { - var fontSizeElement = (from e in this.ParentsAndSelf.OfType() - where e.FontSize != SvgUnit.Empty && e.FontSize != SvgUnit.None - select e).FirstOrDefault(); - return (fontSizeElement == null ? SvgUnit.None : fontSizeElement.FontSize); - } - - /// /// Refers to the boldness of the font. /// @@ -308,5 +295,71 @@ namespace Svg this.IsPathDirty = true; } } + + private const string DefaultFontFamily = "Times New Roman"; + + /// + /// Get the font information based on data stored with the text object or inherited from the parent. + /// + /// + internal System.Drawing.Font GetFont(SvgRenderer renderer) + { + // Get the font-size + float fontSize; + var fontSizeUnit = this.FontSize; + if (fontSizeUnit == SvgUnit.None) + { + fontSize = 1.0f; + } + else + { + fontSize = fontSizeUnit.ToDeviceValue(renderer, UnitRenderingType.Vertical, this); + } + + var fontStyle = System.Drawing.FontStyle.Regular; + + // Get the font-weight + switch (this.FontWeight) + { + case SvgFontWeight.bold: + case SvgFontWeight.bolder: + case SvgFontWeight.w700: + case SvgFontWeight.w800: + case SvgFontWeight.w900: + fontStyle |= System.Drawing.FontStyle.Bold; + break; + } + + // Get the font-style + switch (this.FontStyle) + { + case SvgFontStyle.italic: + case SvgFontStyle.oblique: + fontStyle |= System.Drawing.FontStyle.Italic; + break; + } + + // Get the font-family + string family = ValidateFontFamily(this.FontFamily) ?? DefaultFontFamily; + return new System.Drawing.Font(family, fontSize, fontStyle, System.Drawing.GraphicsUnit.Pixel); + } + + private static string ValidateFontFamily(string fontFamilyList) + { + // Split font family list on "," and then trim start and end spaces and quotes. + var fontParts = (fontFamilyList ?? "").Split(new[] { ',' }).Select(fontName => fontName.Trim(new[] { '"', ' ', '\'' })); + + var families = System.Drawing.FontFamily.Families; + + // Find a the first font that exists in the list of installed font families. + //styles from IE get sent through as lowercase. + foreach (var f in fontParts.Where(f => families.Any(family => family.Name.ToLower() == f.ToLower()))) + { + return f; + } + // No valid font family found from the list requested. + return null; + } + } } \ No newline at end of file diff --git a/Source/Clipping and Masking/SvgClipPath.cs b/Source/Clipping and Masking/SvgClipPath.cs index 331f07a..72bc101 100644 --- a/Source/Clipping and Masking/SvgClipPath.cs +++ b/Source/Clipping and Masking/SvgClipPath.cs @@ -61,11 +61,11 @@ namespace Svg { var graphicsElement = element as SvgVisualElement; - if (graphicsElement != null && graphicsElement.Path != null) + if (graphicsElement != null && graphicsElement.Path(null) != null) { path.FillMode = (graphicsElement.ClipRule == SvgClipRule.NonZero) ? FillMode.Winding : FillMode.Alternate; - GraphicsPath childPath = graphicsElement.Path; + GraphicsPath childPath = graphicsElement.Path(null); if (graphicsElement.Transforms != null) { diff --git a/Source/Css/CssQuery.cs b/Source/Css/CssQuery.cs index 911125c..fcb2bc0 100644 --- a/Source/Css/CssQuery.cs +++ b/Source/Css/CssQuery.cs @@ -20,21 +20,59 @@ namespace Svg.Css { if (selector is SimpleSelector) { - var simpleCode = selector.ToString(); - if (simpleCode.StartsWith("#")) + var simpleCode = selector.ToString().ToLowerInvariant(); + if (simpleCode.StartsWith(":not(")) { + simpleCode = simpleCode.Substring(5, simpleCode.Length - 6); + return GetSpecificity(new SimpleSelector(simpleCode)); + } + else if (simpleCode.StartsWith("#")) + { + // ID selector return 1 << 12; } - else if (simpleCode.StartsWith(".")) + else if (simpleCode.StartsWith("::") || simpleCode == ":after" || simpleCode == ":before" || + simpleCode == ":first-letter" || simpleCode == ":first-line" || simpleCode == ":selection") { + // pseudo-element + return 1 << 4; + } + else if (simpleCode.StartsWith(".") || simpleCode.StartsWith(":") || simpleCode.StartsWith("[")) + { + // class, pseudo-class, attribute return 1 << 8; } + else if (selector == SimpleSelector.All) + { + // all selector + return 0; + } else { + // element selector return 1 << 4; } } - return 0; + else + { + var list = selector as IEnumerable; + if (list != null) + { + return (from s in list select GetSpecificity(s)).Aggregate((p, c) => p + c); + } + else + { + var complex = selector as IEnumerable; + if (complex != null) + { + return (from s in complex select GetSpecificity(s.Selector)).Aggregate((p, c) => p + c); + } + else + { + return 0; + } + } + } } } } diff --git a/Source/DataTypes/ISvgSupportsCoordinateUnits.cs b/Source/DataTypes/ISvgSupportsCoordinateUnits.cs new file mode 100644 index 0000000..21a3cad --- /dev/null +++ b/Source/DataTypes/ISvgSupportsCoordinateUnits.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Svg +{ + internal interface ISvgSupportsCoordinateUnits + { + SvgCoordinateUnits GetUnits(); + } +} diff --git a/Source/DataTypes/SvgCoordinateUnits.cs b/Source/DataTypes/SvgCoordinateUnits.cs index 6db0ffa..9fdafdb 100644 --- a/Source/DataTypes/SvgCoordinateUnits.cs +++ b/Source/DataTypes/SvgCoordinateUnits.cs @@ -11,12 +11,12 @@ namespace Svg public enum SvgCoordinateUnits { /// - /// Indicates that the coordinate system of the entire document is to be used. + /// Indicates that the coordinate system of the owner element is to be used. /// - UserSpaceOnUse, + ObjectBoundingBox, /// - /// Indicates that the coordinate system of the owner element is to be used. + /// Indicates that the coordinate system of the entire document is to be used. /// - ObjectBoundingBox + UserSpaceOnUse } } diff --git a/Source/DataTypes/SvgPoint.cs b/Source/DataTypes/SvgPoint.cs index 5673ef7..e15358d 100644 --- a/Source/DataTypes/SvgPoint.cs +++ b/Source/DataTypes/SvgPoint.cs @@ -23,9 +23,9 @@ namespace Svg set { this.y = value; } } - public PointF ToDeviceValue() + public PointF ToDeviceValue(SvgRenderer renderer, SvgElement owner) { - return new PointF(this.X.ToDeviceValue(), this.Y.ToDeviceValue()); + return SvgUnit.GetDevicePoint(this.X, this.Y, renderer, owner); } public bool IsEmpty() diff --git a/Source/DataTypes/SvgUnit.cs b/Source/DataTypes/SvgUnit.cs index 2426627..30a7c59 100644 --- a/Source/DataTypes/SvgUnit.cs +++ b/Source/DataTypes/SvgUnit.cs @@ -1,6 +1,8 @@ using System; using System.ComponentModel; using System.Globalization; +using System.Linq; +using System.Drawing; namespace Svg { @@ -60,26 +62,9 @@ namespace Svg /// /// Converts the current unit to one that can be used at render time. /// + /// The container element used as the basis for calculations /// The representation of the current unit in a device value (usually pixels). - public float ToDeviceValue() - { - return this.ToDeviceValue(null); - } - - /// - /// Converts the current unit to one that can be used at render time. - /// - /// The representation of the current unit in a device value (usually pixels). - public float ToDeviceValue(ISvgBoundable boundable) - { - return this.ToDeviceValue(boundable, false); - } - - /// - /// Converts the current unit to one that can be used at render time. - /// - /// The representation of the current unit in a device value (usually pixels). - public float ToDeviceValue(ISvgBoundable boundable, bool vertical) + public float ToDeviceValue(SvgRenderer renderer, UnitRenderingType renderType, SvgElement owner) { // If it's already been calculated if (this._deviceValue.HasValue) @@ -99,60 +84,135 @@ namespace Svg const float cmInInch = 2.54f; int ppi = SvgDocument.PointsPerInch; - switch (this.Type) + var type = this.Type; + var value = this.Value; + + // Deal with fractional pattern units + var coordElem = owner as ISvgSupportsCoordinateUnits; + if (coordElem != null && coordElem.GetUnits() == SvgCoordinateUnits.ObjectBoundingBox && type != SvgUnitType.Percentage) + { + type = SvgUnitType.Percentage; + value *= 100; + } + + var element = owner as SvgElement; + if (element != null) + { + var pattern = element.Parents.OfType().FirstOrDefault(); + if (pattern != null && pattern.PatternContentUnits == SvgCoordinateUnits.ObjectBoundingBox && type != SvgUnitType.Percentage) + { + type = SvgUnitType.Percentage; + value *= 100; + } + } + + float points; + Font currFont; + + switch (type) { case SvgUnitType.Em: - var visualElem = boundable as SvgVisualElement; - if (visualElem == null) + currFont = GetFont(renderer, owner); + if (currFont == null) { - float points = (float)(this.Value * 9); + points = (float)(value * 9); _deviceValue = (points / 72) * ppi; } else { - _deviceValue = this.Value * visualElem.GetInheritedFontSize().ToDeviceValue(boundable); + _deviceValue = value * (currFont.SizeInPoints / 72) * ppi; + } + break; + case SvgUnitType.Ex: + currFont = GetFont(renderer, owner); + if (currFont == null) + { + points = (float)(value * 9); + _deviceValue = (points / 72) * ppi / 2; + } + else + { + _deviceValue = value * (currFont.SizeInPoints / 72) * ppi * RelativeXHeight(currFont); } break; case SvgUnitType.Centimeter: - _deviceValue = (float)((this.Value / cmInInch) * ppi); + _deviceValue = (float)((value / cmInInch) * ppi); break; case SvgUnitType.Inch: - _deviceValue = this.Value * ppi; + _deviceValue = value * ppi; break; case SvgUnitType.Millimeter: - _deviceValue = (float)((this.Value / 10) / cmInInch) * ppi; + _deviceValue = (float)((value / 10) / cmInInch) * ppi; break; case SvgUnitType.Pica: - _deviceValue = ((this.Value * 12) / 72) * ppi; + _deviceValue = ((value * 12) / 72) * ppi; break; case SvgUnitType.Point: - _deviceValue = (this.Value / 72) * ppi; + _deviceValue = (value / 72) * ppi; break; case SvgUnitType.Pixel: - _deviceValue = this.Value; + _deviceValue = value; break; case SvgUnitType.User: - _deviceValue = this.Value; + _deviceValue = value; break; case SvgUnitType.Percentage: // Can't calculate if there is no style owner + var boundable = (renderer == null ? (owner == null ? null : owner.OwnerDocument) : renderer.Boundable()); if (boundable == null) { - _deviceValue = this.Value; + _deviceValue = value; break; } - // TODO : Support height percentages System.Drawing.SizeF size = boundable.Bounds.Size; - _deviceValue = (((vertical) ? size.Height : size.Width) / 100) * this.Value; + + switch (renderType) + { + case UnitRenderingType.Horizontal: + _deviceValue = (size.Width / 100) * value; + break; + case UnitRenderingType.HorizontalOffset: + _deviceValue = (size.Width / 100) * value + boundable.Location.X; + break; + case UnitRenderingType.Vertical: + _deviceValue = (size.Height / 100) * value; + break; + case UnitRenderingType.VerticalOffset: + _deviceValue = (size.Height / 100) * value + boundable.Location.Y; + break; + default: + _deviceValue = (float)(Math.Sqrt(Math.Pow(size.Width, 2) + Math.Pow(size.Height, 2)) / Math.Sqrt(2) * value / 100.0); + break; + } break; default: - _deviceValue = this.Value; + _deviceValue = value; break; } return this._deviceValue.Value; } + private Font GetFont(SvgRenderer renderer, SvgElement owner) + { + if (owner == null) return null; + + var visual = owner.ParentsAndSelf.OfType().FirstOrDefault(); + return visual.GetFont(renderer); + } + private float RelativeXHeight(Font font) + { + var mediaFont = new System.Windows.Media.FontFamily(font.Name); + var sum = 0.0; + var cnt = 0; + foreach (var tf in mediaFont.FamilyTypefaces) + { + sum += tf.XHeight; + cnt += 1; + } + return (float)(sum / cnt); + } + /// /// Converts the current unit to a percentage, if applicable. /// @@ -249,7 +309,7 @@ namespace Svg /// The result of the conversion. public static implicit operator float(SvgUnit value) { - return value.ToDeviceValue(); + return value.ToDeviceValue(null, UnitRenderingType.Other, null); } /// @@ -286,6 +346,32 @@ namespace Svg this._isEmpty = (this._value == 0.0f); this._deviceValue = null; } + + public static System.Drawing.PointF GetDevicePoint(SvgUnit x, SvgUnit y, SvgRenderer renderer, SvgElement owner) + { + return new System.Drawing.PointF(x.ToDeviceValue(renderer, UnitRenderingType.Horizontal, owner), + y.ToDeviceValue(renderer, UnitRenderingType.Vertical, owner)); + } + public static System.Drawing.PointF GetDevicePointOffset(SvgUnit x, SvgUnit y, SvgRenderer renderer, SvgElement owner) + { + return new System.Drawing.PointF(x.ToDeviceValue(renderer, UnitRenderingType.HorizontalOffset, owner), + y.ToDeviceValue(renderer, UnitRenderingType.VerticalOffset, owner)); + } + + public static System.Drawing.SizeF GetDeviceSize(SvgUnit width, SvgUnit height, SvgRenderer renderer, SvgElement owner) + { + return new System.Drawing.SizeF(width.ToDeviceValue(renderer, UnitRenderingType.HorizontalOffset, owner), + height.ToDeviceValue(renderer, UnitRenderingType.VerticalOffset, owner)); + } + } + + public enum UnitRenderingType + { + Other, + Horizontal, + HorizontalOffset, + Vertical, + VerticalOffset } /// @@ -306,6 +392,10 @@ namespace Svg /// Em, /// + /// Indicates that the unit is equal to the x-height of the current font. + /// + Ex, + /// /// Indicates that the unit is a percentage. /// Percentage, diff --git a/Source/DataTypes/SvgUnitConverter.cs b/Source/DataTypes/SvgUnitConverter.cs index d1a80a0..4787fab 100644 --- a/Source/DataTypes/SvgUnitConverter.cs +++ b/Source/DataTypes/SvgUnitConverter.cs @@ -68,6 +68,8 @@ namespace Svg return new SvgUnit(SvgUnitType.Percentage, val); case "em": return new SvgUnit(SvgUnitType.Em, val); + case "ex": + return new SvgUnit(SvgUnitType.Ex, val); default: throw new FormatException("Unit is in an invalid format '" + unit + "'."); } diff --git a/Source/Document Structure/SvgFragment.cs b/Source/Document Structure/SvgFragment.cs index 4799646..f23081f 100644 --- a/Source/Document Structure/SvgFragment.cs +++ b/Source/Document Structure/SvgFragment.cs @@ -127,20 +127,43 @@ namespace Svg set { this.Attributes["preserveAspectRatio"] = value; } } + /// + /// Refers to the size of the font from baseline to baseline when multiple lines of text are set solid in a multiline layout environment. + /// + [SvgAttribute("font-size")] + public virtual SvgUnit FontSize + { + get { return (this.Attributes["font-size"] == null) ? SvgUnit.Empty : (SvgUnit)this.Attributes["font-size"]; } + set { this.Attributes["font-size"] = value; } + } + + /// + /// Indicates which font family is to be used to render the text. + /// + [SvgAttribute("font-family")] + public virtual string FontFamily + { + get { return this.Attributes["font-family"] as string; } + set { this.Attributes["font-family"] = value; } + } + /// /// Applies the required transforms to . /// /// The to be transformed. - protected internal override void PushTransforms(SvgRenderer renderer) + protected internal override bool PushTransforms(SvgRenderer renderer) { - base.PushTransforms(renderer); + if (!base.PushTransforms(renderer)) return false; if (!this.ViewBox.Equals(SvgViewBox.Empty)) { - float fScaleX = this.Width.ToDeviceValue(this, false) / this.ViewBox.Width; - float fScaleY = this.Height.ToDeviceValue(this, true) / this.ViewBox.Height; - float fMinX = -this.ViewBox.MinX; - float fMinY = -this.ViewBox.MinY; + var width = this.Width.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); + var height = this.Height.ToDeviceValue(renderer, UnitRenderingType.Vertical, this); + + var fScaleX = width / this.ViewBox.Width; + var fScaleY = height / this.ViewBox.Height; + var fMinX = -this.ViewBox.MinX; + var fMinY = -this.ViewBox.MinY; if (AspectRatio.Align != SvgPreserveAspectRatio.none) { @@ -156,50 +179,56 @@ namespace Svg } float fViewMidX = (this.ViewBox.Width / 2) * fScaleX; float fViewMidY = (this.ViewBox.Height / 2) * fScaleY; - float fMidX = this.Width.ToDeviceValue(this, false) / 2; - float fMidY = this.Height.ToDeviceValue(this, true) / 2; + float fMidX = width / 2; + float fMidY = height / 2; switch (AspectRatio.Align) { case SvgPreserveAspectRatio.xMinYMin: break; case SvgPreserveAspectRatio.xMidYMin: - fMinX += (fMidX - fViewMidX) / fScaleX; + fMinX += fMidX - fViewMidX; break; case SvgPreserveAspectRatio.xMaxYMin: - fMinX += (this.Width.ToDeviceValue(this, false) / fScaleX) - this.ViewBox.Width; + fMinX += width - this.ViewBox.Width * fScaleX; break; case SvgPreserveAspectRatio.xMinYMid: - fMinY += (fMidY - fViewMidY) / fScaleY; + fMinY += fMidY - fViewMidY; break; case SvgPreserveAspectRatio.xMidYMid: - fMinX += (fMidX - fViewMidX) / fScaleX; - fMinY += (fMidY - fViewMidY) / fScaleY; + fMinX += fMidX - fViewMidX; + fMinY += fMidY - fViewMidY; break; case SvgPreserveAspectRatio.xMaxYMid: - fMinX += (this.Width.ToDeviceValue(this, false) / fScaleX) - this.ViewBox.Width; - fMinY += (fMidY - fViewMidY) / fScaleY; + fMinX += width - this.ViewBox.Width * fScaleX; + fMinY += fMidY - fViewMidY; break; case SvgPreserveAspectRatio.xMinYMax: - fMinY += (this.Height.ToDeviceValue(this, true) / fScaleY) - this.ViewBox.Height; + fMinY += height - this.ViewBox.Height * fScaleY; break; case SvgPreserveAspectRatio.xMidYMax: - fMinX += (fMidX - fViewMidX) / fScaleX; - fMinY += (this.Height.ToDeviceValue(this, true) / fScaleY) - this.ViewBox.Height; + fMinX += fMidX - fViewMidX; + fMinY += height - this.ViewBox.Height * fScaleY; break; case SvgPreserveAspectRatio.xMaxYMax: - fMinX += (this.Width.ToDeviceValue(this, false) / fScaleX) - this.ViewBox.Width; - fMinY += (this.Height.ToDeviceValue(this, true) / fScaleY) - this.ViewBox.Height; + fMinX += width - this.ViewBox.Width * fScaleX; + fMinY += height - this.ViewBox.Height * fScaleY; break; default: break; } } - renderer.TranslateTransform(_x, _y); + var x = _x.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); + var y = _y.ToDeviceValue(renderer, UnitRenderingType.Vertical, this); + + renderer.AddClip(new Region(new RectangleF(x, y, width, height))); + renderer.ScaleTransform(fScaleX, fScaleY, MatrixOrder.Prepend); + renderer.TranslateTransform(x,y); renderer.TranslateTransform(fMinX, fMinY); - renderer.ScaleTransform(fScaleX, fScaleY); } + + return true; } /// @@ -245,18 +274,38 @@ namespace Svg public SizeF GetDimensions() { - var w = Width.ToDeviceValue(); - var h = Height.ToDeviceValue(); - - RectangleF bounds = new RectangleF(); + float w, h; var isWidthperc = Width.Type == SvgUnitType.Percentage; var isHeightperc = Height.Type == SvgUnitType.Percentage; + RectangleF bounds = new RectangleF(); if (isWidthperc || isHeightperc) { - bounds = this.Bounds; //do just one call to the recursive bounds property - if (isWidthperc) w = (bounds.Width + bounds.X) * (w * 0.01f); - if (isHeightperc) h = (bounds.Height + bounds.Y) * (h * 0.01f); + if (ViewBox.Width > 0 && ViewBox.Height > 0) + { + bounds = new RectangleF(ViewBox.MinX, ViewBox.MinY, ViewBox.Width, ViewBox.Height); + } + else + { + bounds = this.Bounds; //do just one call to the recursive bounds property + } + } + + if (isWidthperc) + { + w = (bounds.Width + bounds.X) * (Width.Value * 0.01f); + } + else + { + w = Width.ToDeviceValue(null, UnitRenderingType.Horizontal, this); + } + if (isHeightperc) + { + h = (bounds.Height + bounds.Y) * (Height.Value * 0.01f); + } + else + { + h = Height.ToDeviceValue(null, UnitRenderingType.Vertical, this); } return new SizeF(w, h); diff --git a/Source/Document Structure/SvgGroup.cs b/Source/Document Structure/SvgGroup.cs index ce52270..3dfc691 100644 --- a/Source/Document Structure/SvgGroup.cs +++ b/Source/Document Structure/SvgGroup.cs @@ -17,17 +17,9 @@ namespace Svg /// Gets the for this element. /// /// - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get - { - //var path = new GraphicsPath(); - //AddPaths(this, path); - - return GetPaths(this); - } - protected set - { } + return GetPaths(this, renderer); } /// @@ -73,11 +65,13 @@ namespace Svg if (!Visible || !Displayable) return; - this.PushTransforms(renderer); - this.SetClip(renderer); - base.RenderChildren(renderer); - this.ResetClip(renderer); - this.PopTransforms(renderer); + if (this.PushTransforms(renderer)) + { + this.SetClip(renderer); + base.RenderChildren(renderer); + this.ResetClip(renderer); + this.PopTransforms(renderer); + } } diff --git a/Source/Document Structure/SvgSwitch.cs b/Source/Document Structure/SvgSwitch.cs index e9af587..d370030 100644 --- a/Source/Document Structure/SvgSwitch.cs +++ b/Source/Document Structure/SvgSwitch.cs @@ -17,17 +17,9 @@ namespace Svg /// Gets the for this element. /// /// - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get - { - //var path = new GraphicsPath(); - //AddPaths(this, path); - - return GetPaths(this); - } - protected set - { } + return GetPaths(this, renderer); } /// diff --git a/Source/Document Structure/SvgUse.cs b/Source/Document Structure/SvgUse.cs index 6fe3d2e..147d0b9 100644 --- a/Source/Document Structure/SvgUse.cs +++ b/Source/Document Structure/SvgUse.cs @@ -38,10 +38,12 @@ namespace Svg /// Applies the required transforms to . /// /// The to be transformed. - protected internal override void PushTransforms(SvgRenderer renderer) + protected internal override bool PushTransforms(SvgRenderer renderer) { - base.PushTransforms(renderer); - renderer.TranslateTransform(this.X.ToDeviceValue(this), this.Y.ToDeviceValue(this, true)); + if (!base.PushTransforms(renderer)) return false; + renderer.TranslateTransform(this.X.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this), + this.Y.ToDeviceValue(renderer, UnitRenderingType.Vertical, this)); + return true; } /// @@ -53,15 +55,10 @@ namespace Svg this.Y = 0; } - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get - { - SvgVisualElement element = (SvgVisualElement)this.OwnerDocument.IdManager.GetElementById(this.ReferencedElement); - return (element != null) ? element.Path : null; - } - protected set - { } + SvgVisualElement element = (SvgVisualElement)this.OwnerDocument.IdManager.GetElementById(this.ReferencedElement); + return (element != null) ? element.Path(renderer) : null; } public override System.Drawing.RectangleF Bounds diff --git a/Source/Extensibility/SvgForeignObject.cs b/Source/Extensibility/SvgForeignObject.cs index afe0ed0..3fc4cdd 100644 --- a/Source/Extensibility/SvgForeignObject.cs +++ b/Source/Extensibility/SvgForeignObject.cs @@ -17,17 +17,9 @@ namespace Svg /// Gets the for this element. /// /// - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get - { - //var path = new GraphicsPath(); - //AddPaths(this, path); - - return GetPaths(this); - } - protected set - { } + return GetPaths(this, renderer); } /// diff --git a/Source/Filter Effects/SvgFilter.cs b/Source/Filter Effects/SvgFilter.cs index a1946b2..2ac722d 100644 --- a/Source/Filter Effects/SvgFilter.cs +++ b/Source/Filter Effects/SvgFilter.cs @@ -151,7 +151,7 @@ namespace Svg.FilterEffects { if (this.sourceGraphic == null) { - RectangleF bounds = element.Path.GetBounds(); + RectangleF bounds = element.Path(renderer).GetBounds(); this.sourceGraphic = new Bitmap((int)bounds.Width, (int)bounds.Height); using (var graphics = Graphics.FromImage(this.sourceGraphic)) diff --git a/Source/Local.testsettings b/Source/Local.testsettings new file mode 100644 index 0000000..167cb2d --- /dev/null +++ b/Source/Local.testsettings @@ -0,0 +1,10 @@ + + + These are default test settings for a local test run. + + + + + + + \ No newline at end of file diff --git a/Source/Painting/GenericBoundable.cs b/Source/Painting/GenericBoundable.cs new file mode 100644 index 0000000..5073d9d --- /dev/null +++ b/Source/Painting/GenericBoundable.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; + +namespace Svg +{ + internal class GenericBoundable : ISvgBoundable + { + private RectangleF _rect; + + public GenericBoundable(RectangleF rect) + { + _rect = rect; + } + public GenericBoundable(float x, float y, float width, float height) + { + _rect = new RectangleF(x, y, width, height); + } + + public System.Drawing.PointF Location + { + get { return _rect.Location; } + } + + public System.Drawing.SizeF Size + { + get { return _rect.Size; } + } + + public System.Drawing.RectangleF Bounds + { + get { return _rect; } + } + } +} diff --git a/Source/Painting/ISvgStylable.cs b/Source/Painting/ISvgStylable.cs index 841fcc0..4727416 100644 --- a/Source/Painting/ISvgStylable.cs +++ b/Source/Painting/ISvgStylable.cs @@ -19,6 +19,6 @@ namespace Svg float StrokeMiterLimit { get; set; } SvgUnitCollection StrokeDashArray { get; set; } SvgUnit StrokeDashOffset { get; set; } - GraphicsPath Path { get; } + GraphicsPath Path(SvgRenderer renderer); } } \ No newline at end of file diff --git a/Source/Painting/SvgColourConverter.cs b/Source/Painting/SvgColourConverter.cs index 1ab3837..0f381c1 100644 --- a/Source/Painting/SvgColourConverter.cs +++ b/Source/Painting/SvgColourConverter.cs @@ -95,6 +95,37 @@ namespace Svg return base.ConvertFrom(context, culture, colour); } + switch (colour.ToLowerInvariant()) + { + case "activeborder": return SystemColors.ActiveBorder; + case "activecaption": return SystemColors.ActiveCaption; + case "appworkspace": return SystemColors.AppWorkspace; + case "background": return SystemColors.Desktop; + case "buttonface": return SystemColors.Control; + case "buttonhighlight": return SystemColors.ControlLightLight; + case "buttonshadow": return SystemColors.ControlDark; + case "buttontext": return SystemColors.ControlText; + case "captiontext": return SystemColors.ActiveCaptionText; + case "graytext": return SystemColors.GrayText; + case "highlight": return SystemColors.Highlight; + case "highlighttext": return SystemColors.HighlightText; + case "inactiveborder": return SystemColors.InactiveBorder; + case "inactivecaption": return SystemColors.InactiveCaption; + case "inactivecaptiontext": return SystemColors.InactiveCaptionText; + case "infobackground": return SystemColors.Info; + case "infotext": return SystemColors.InfoText; + case "menu": return SystemColors.Menu; + case "menutext": return SystemColors.MenuText; + case "scrollbar": return SystemColors.ScrollBar; + case "threeddarkshadow": return SystemColors.ControlDarkDark; + case "threedface": return SystemColors.Control; + case "threedhighlight": return SystemColors.ControlLight; + case "threedlightshadow": return SystemColors.ControlLightLight; + case "window": return SystemColors.Window; + case "windowframe": return SystemColors.WindowFrame; + case "windowtext": return SystemColors.WindowText; + } + Thread.CurrentThread.CurrentCulture = oldCulture; } diff --git a/Source/Painting/SvgColourServer.cs b/Source/Painting/SvgColourServer.cs index 2c09d8e..99fdf7c 100644 --- a/Source/Painting/SvgColourServer.cs +++ b/Source/Painting/SvgColourServer.cs @@ -11,9 +11,14 @@ namespace Svg /// /// An unspecified . /// - public static readonly SvgPaintServer NotSet = new SvgColourServer(); - - public SvgColourServer() : this(Color.Black) + public static readonly SvgPaintServer NotSet = new SvgColourServer(System.Drawing.Color.Black); + /// + /// A that should inherit from its parent. + /// + public static readonly SvgPaintServer Inherit = new SvgColourServer(System.Drawing.Color.Black); + + public SvgColourServer() + : this(System.Drawing.Color.Black) { } @@ -30,13 +35,13 @@ namespace Svg set { this._colour = value; } } - public override Brush GetBrush(SvgVisualElement styleOwner, float opacity) + public override Brush GetBrush(SvgVisualElement styleOwner, SvgRenderer renderer, float opacity) { //is none? - if (this == SvgPaintServer.None) return new SolidBrush(Color.Transparent); + if (this == SvgPaintServer.None) return new SolidBrush(System.Drawing.Color.Transparent); int alpha = (int)((opacity * (this.Colour.A/255.0f) ) * 255); - Color colour = Color.FromArgb(alpha, this.Colour); + Color colour = System.Drawing.Color.FromArgb(alpha, this.Colour); return new SolidBrush(colour); } diff --git a/Source/Painting/SvgDeferredPaintServer.cs b/Source/Painting/SvgDeferredPaintServer.cs index cbd4605..22adfc8 100644 --- a/Source/Painting/SvgDeferredPaintServer.cs +++ b/Source/Painting/SvgDeferredPaintServer.cs @@ -24,19 +24,30 @@ namespace Svg this.DeferredId = id; } - private void EnsureServer() + public void EnsureServer(SvgElement styleOwner) { if (!_serverLoaded) { - _concreteServer = this.Document.IdManager.GetElementById(this.DeferredId) as SvgPaintServer; + if (this.DeferredId == "currentColor" && styleOwner != null) + { + var colorElement = (from e in styleOwner.ParentsAndSelf.OfType() + where e.Color != SvgPaintServer.None && e.Color != SvgColourServer.NotSet && + e.Color != SvgColourServer.Inherit && e.Color != SvgColourServer.None + select e).FirstOrDefault(); + _concreteServer = (colorElement == null ? SvgPaintServer.None : colorElement.Color); + } + else + { + _concreteServer = this.Document.IdManager.GetElementById(this.DeferredId) as SvgPaintServer; + } _serverLoaded = true; } } - public override System.Drawing.Brush GetBrush(SvgVisualElement styleOwner, float opacity) + public override System.Drawing.Brush GetBrush(SvgVisualElement styleOwner, SvgRenderer renderer, float opacity) { - EnsureServer(); - return _concreteServer.GetBrush(styleOwner, opacity); + EnsureServer(styleOwner); + return _concreteServer.GetBrush(styleOwner, renderer, opacity); } public override SvgElement DeepCopy() @@ -72,7 +83,7 @@ namespace Svg return (_serverLoaded ? _serverLoaded.ToString() : string.Format("deferred: {0}", this.DeferredId)); } - public static T TryGet(SvgPaintServer server) where T : SvgPaintServer + public static T TryGet(SvgPaintServer server, SvgElement parent) where T : SvgPaintServer { var deferred = server as SvgDeferredPaintServer; if (deferred == null) @@ -81,7 +92,7 @@ namespace Svg } else { - deferred.EnsureServer(); + deferred.EnsureServer(parent); return deferred._concreteServer as T; } } diff --git a/Source/Painting/SvgGradientServer.cs b/Source/Painting/SvgGradientServer.cs index e904a17..f5c3661 100644 --- a/Source/Painting/SvgGradientServer.cs +++ b/Source/Painting/SvgGradientServer.cs @@ -9,7 +9,7 @@ namespace Svg /// /// Provides the base class for all paint servers that wish to render a gradient. /// - public abstract class SvgGradientServer : SvgPaintServer + public abstract class SvgGradientServer : SvgPaintServer, ISvgSupportsCoordinateUnits { private SvgCoordinateUnits _gradientUnits; private SvgGradientSpreadMethod _spreadMethod; @@ -130,7 +130,7 @@ namespace Svg /// /// The parent . /// The opacity of the colour blend. - protected ColorBlend GetColorBlend(SvgVisualElement owner, float opacity, bool radial) + protected ColorBlend GetColorBlend(SvgRenderer renderer, float opacity, bool radial) { int colourBlends = this.Stops.Count; bool insertStart = false; @@ -179,18 +179,19 @@ namespace Svg int actualStops = 0; float mergedOpacity = 0.0f; float position = 0.0f; - Color colour = Color.Black; + Color colour = System.Drawing.Color.Black; for (int i = 0; i < colourBlends; i++) { var currentStop = this.Stops[radial ? this.Stops.Count - 1 - actualStops : actualStops]; + var boundWidth = renderer.Boundable().Bounds.Width; mergedOpacity = opacity * currentStop.Opacity; position = radial - ? 1 - (currentStop.Offset.ToDeviceValue(owner) / owner.Bounds.Width) - : (currentStop.Offset.ToDeviceValue(owner) / owner.Bounds.Width); - colour = Color.FromArgb((int)(mergedOpacity * 255), currentStop.Colour); + ? 1 - (currentStop.Offset.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) / boundWidth) + : (currentStop.Offset.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) / boundWidth); + colour = System.Drawing.Color.FromArgb((int)(mergedOpacity * 255), currentStop.GetColor(this)); actualStops++; @@ -219,20 +220,15 @@ namespace Svg return blend; } - protected void LoadStops() + protected void LoadStops(SvgVisualElement parent) { - var core = SvgDeferredPaintServer.TryGet(_inheritGradient); + var core = SvgDeferredPaintServer.TryGet(_inheritGradient, parent); if (this.Stops.Count == 0 && core != null) { _stops.AddRange(core.Stops); } } - protected ISvgBoundable CalculateBoundable(SvgVisualElement renderingElement) - { - return (this.GradientUnits == SvgCoordinateUnits.ObjectBoundingBox) ? (ISvgBoundable)renderingElement : renderingElement.OwnerDocument; - } - protected PointF TransformPoint(PointF originalPoint) { var newPoint = new[] { originalPoint }; @@ -272,5 +268,10 @@ namespace Svg return newObj; } + + public SvgCoordinateUnits GetUnits() + { + return _gradientUnits; + } } } \ No newline at end of file diff --git a/Source/Painting/SvgGradientStop.cs b/Source/Painting/SvgGradientStop.cs index 0269ff2..9980b34 100644 --- a/Source/Painting/SvgGradientStop.cs +++ b/Source/Painting/SvgGradientStop.cs @@ -13,7 +13,7 @@ namespace Svg public class SvgGradientStop : SvgElement { private SvgUnit _offset; - private Color _colour; + private SvgPaintServer _colour; private float _opacity; /// @@ -58,8 +58,8 @@ namespace Svg /// Gets or sets the colour of the gradient stop. /// [SvgAttribute("stop-color")] - [TypeConverter(typeof(SvgColourConverter))] - public Color Colour + [TypeConverter(typeof(SvgPaintServerFactory))] + public SvgPaintServer Colour { get { return this._colour; } set { this._colour = value; } @@ -81,7 +81,7 @@ namespace Svg public SvgGradientStop() { this._offset = new SvgUnit(0.0f); - this._colour = Color.Transparent; + this._colour = SvgColourServer.NotSet; this._opacity = 1.0f; } @@ -93,10 +93,16 @@ namespace Svg public SvgGradientStop(SvgUnit offset, Color colour) { this._offset = offset; - this._colour = colour; + this._colour = new SvgColourServer(colour); this._opacity = 1.0f; } + public Color GetColor(SvgElement parent) + { + var core = SvgDeferredPaintServer.TryGet(_colour, parent); + if (core == null) throw new InvalidOperationException("Invalid paint server for gradient stop detected."); + return core.Colour; + } public override SvgElement DeepCopy() { diff --git a/Source/Painting/SvgLinearGradientServer.cs b/Source/Painting/SvgLinearGradientServer.cs index 72724da..d2356fd 100644 --- a/Source/Painting/SvgLinearGradientServer.cs +++ b/Source/Painting/SvgLinearGradientServer.cs @@ -79,44 +79,51 @@ namespace Svg Y2 = new SvgUnit(SvgUnitType.Percentage, 0F); } - public override Brush GetBrush(SvgVisualElement renderingElement, float opacity) + public override Brush GetBrush(SvgVisualElement renderingElement, SvgRenderer renderer, float opacity) { - LoadStops(); + LoadStops(renderingElement); if (IsInvalid) { return null; } - var boundable = CalculateBoundable(renderingElement); + try + { + if (this.GradientUnits == SvgCoordinateUnits.ObjectBoundingBox) renderer.Boundable(renderingElement); - var specifiedStart = CalculateStart(boundable); - var specifiedEnd = CalculateEnd(boundable); + var specifiedStart = CalculateStart(renderer); + var specifiedEnd = CalculateEnd(renderer); - var effectiveStart = specifiedStart; - var effectiveEnd = specifiedEnd; + var effectiveStart = specifiedStart; + var effectiveEnd = specifiedEnd; - if (NeedToExpandGradient(renderingElement, specifiedStart, specifiedEnd)) - { - var expansion = ExpandGradient(renderingElement, specifiedStart, specifiedEnd); - effectiveStart = expansion.StartPoint; - effectiveEnd = expansion.EndPoint; - } + if (NeedToExpandGradient(renderingElement, specifiedStart, specifiedEnd)) + { + var expansion = ExpandGradient(renderingElement, specifiedStart, specifiedEnd); + effectiveStart = expansion.StartPoint; + effectiveEnd = expansion.EndPoint; + } - return new LinearGradientBrush(effectiveStart, effectiveEnd, Color.Transparent, Color.Transparent) + return new LinearGradientBrush(effectiveStart, effectiveEnd, System.Drawing.Color.Transparent, System.Drawing.Color.Transparent) + { + InterpolationColors = CalculateColorBlend(renderer, opacity, specifiedStart, effectiveStart, specifiedEnd, effectiveEnd), + WrapMode = WrapMode.TileFlipX + }; + } + finally { - InterpolationColors = CalculateColorBlend(renderingElement, opacity, specifiedStart, effectiveStart, specifiedEnd, effectiveEnd), - WrapMode = WrapMode.TileFlipX - }; + if (this.GradientUnits == SvgCoordinateUnits.ObjectBoundingBox) renderer.PopBoundable(); + } } - private PointF CalculateStart(ISvgBoundable boundable) + private PointF CalculateStart(SvgRenderer renderer) { - return TransformPoint(new PointF(this.X1.ToDeviceValue(boundable), this.Y1.ToDeviceValue(boundable, true))); + return TransformPoint(SvgUnit.GetDevicePointOffset(this.X1, this.Y1, renderer, this)); } - private PointF CalculateEnd(ISvgBoundable boundable) + private PointF CalculateEnd(SvgRenderer renderer) { - return TransformPoint(new PointF(this.X2.ToDeviceValue(boundable), this.Y2.ToDeviceValue(boundable, true))); + return TransformPoint(SvgUnit.GetDevicePointOffset(this.X2, this.Y2, renderer, this)); } private bool NeedToExpandGradient(ISvgBoundable boundable, PointF specifiedStart, PointF specifiedEnd) @@ -174,9 +181,9 @@ namespace Svg return new GradientPoints(effectiveStart, effectiveEnd); } - private ColorBlend CalculateColorBlend(SvgVisualElement owner, float opacity, PointF specifiedStart, PointF effectiveStart, PointF specifiedEnd, PointF effectiveEnd) + private ColorBlend CalculateColorBlend(SvgRenderer renderer, float opacity, PointF specifiedStart, PointF effectiveStart, PointF specifiedEnd, PointF effectiveEnd) { - var colorBlend = GetColorBlend(owner, opacity, false); + var colorBlend = GetColorBlend(renderer, opacity, false); var startDelta = CalculateDistance(specifiedStart, effectiveStart); var endDelta = CalculateDistance(specifiedEnd, effectiveEnd); diff --git a/Source/Painting/SvgMarker.cs b/Source/Painting/SvgMarker.cs index 31bd8ba..12b4f80 100644 --- a/Source/Painting/SvgMarker.cs +++ b/Source/Painting/SvgMarker.cs @@ -87,26 +87,19 @@ namespace Svg Overflow = SvgOverflow.hidden; } - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get - { - var path = this.Children.FirstOrDefault(x => x is SvgPath); - if (path != null) - return (path as SvgPath).Path; - return null; - } - protected set - { - // No-op - } + var path = this.Children.FirstOrDefault(x => x is SvgPath); + if (path != null) + return (path as SvgPath).Path(renderer); + return null; } public override System.Drawing.RectangleF Bounds { get { - var path = this.Path; + var path = this.Path(null); if (path != null) return path.GetBounds(); return new System.Drawing.RectangleF(); @@ -177,7 +170,7 @@ namespace Svg /// private void RenderPart2(float fAngle, SvgRenderer pRenderer, SvgPath pOwner, PointF pMarkerPoint) { - Pen pRenderPen = CreatePen(pOwner); + Pen pRenderPen = CreatePen(pOwner, pRenderer); GraphicsPath markerPath = GetClone(pOwner); @@ -190,10 +183,14 @@ namespace Svg switch (MarkerUnits) { case SvgMarkerUnits.strokeWidth: - transMatrix.Translate(AdjustForViewBoxWidth(-RefX * pOwner.StrokeWidth), AdjustForViewBoxHeight(-RefY * pOwner.StrokeWidth)); + transMatrix.Translate(AdjustForViewBoxWidth(-RefX.ToDeviceValue(pRenderer, UnitRenderingType.Horizontal, this) * + pOwner.StrokeWidth.ToDeviceValue(pRenderer, UnitRenderingType.Other, this)), + AdjustForViewBoxHeight(-RefY.ToDeviceValue(pRenderer, UnitRenderingType.Vertical, this) * + pOwner.StrokeWidth.ToDeviceValue(pRenderer, UnitRenderingType.Other, this))); break; case SvgMarkerUnits.userSpaceOnUse: - transMatrix.Translate(-RefX, -RefY); + transMatrix.Translate(-RefX.ToDeviceValue(pRenderer, UnitRenderingType.Horizontal, this), + -RefY.ToDeviceValue(pRenderer, UnitRenderingType.Vertical, this)); break; } markerPath.Transform(transMatrix); @@ -205,7 +202,7 @@ namespace Svg if (pFill != null) { - Brush pBrush = pFill.GetBrush(this, fOpacity); + Brush pBrush = pFill.GetBrush(this, pRenderer, fOpacity); pRenderer.FillPath(pBrush, markerPath); pBrush.Dispose(); } @@ -219,17 +216,18 @@ namespace Svg /// /// /// - private Pen CreatePen(SvgPath pPath) + private Pen CreatePen(SvgPath pPath, SvgRenderer renderer) { - Brush pBrush = pPath.Stroke.GetBrush(this, Opacity); + Brush pBrush = pPath.Stroke.GetBrush(this, renderer, Opacity); switch (MarkerUnits) { case SvgMarkerUnits.strokeWidth: - return (new Pen(pBrush, StrokeWidth * pPath.StrokeWidth)); + return (new Pen(pBrush, StrokeWidth.ToDeviceValue(renderer, UnitRenderingType.Other, this) * + pPath.StrokeWidth.ToDeviceValue(renderer, UnitRenderingType.Other, this))); case SvgMarkerUnits.userSpaceOnUse: - return (new Pen(pBrush, StrokeWidth)); + return (new Pen(pBrush, StrokeWidth.ToDeviceValue(renderer, UnitRenderingType.Other, this))); } - return (new Pen(pBrush, StrokeWidth)); + return (new Pen(pBrush, StrokeWidth.ToDeviceValue(renderer, UnitRenderingType.Other, this))); } /// @@ -238,7 +236,7 @@ namespace Svg /// private GraphicsPath GetClone(SvgPath pPath) { - GraphicsPath pRet = Path.Clone() as GraphicsPath; + GraphicsPath pRet = Path(null).Clone() as GraphicsPath; switch (MarkerUnits) { case SvgMarkerUnits.strokeWidth: diff --git a/Source/Painting/SvgPaintServer.cs b/Source/Painting/SvgPaintServer.cs index 2c2f702..11c342e 100644 --- a/Source/Painting/SvgPaintServer.cs +++ b/Source/Painting/SvgPaintServer.cs @@ -39,7 +39,7 @@ namespace Svg /// /// The owner . /// The opacity of the brush. - public abstract Brush GetBrush(SvgVisualElement styleOwner, float opacity); + public abstract Brush GetBrush(SvgVisualElement styleOwner, SvgRenderer renderer, float opacity); /// /// Returns a that represents the current . diff --git a/Source/Painting/SvgPaintServerFactory.cs b/Source/Painting/SvgPaintServerFactory.cs index 448e100..54a4ea5 100644 --- a/Source/Painting/SvgPaintServerFactory.cs +++ b/Source/Painting/SvgPaintServerFactory.cs @@ -27,6 +27,14 @@ namespace Svg { return SvgColourServer.NotSet; } + else if (value == "inherit") + { + return SvgColourServer.Inherit; + } + else if (value == "currentColor") + { + return new SvgDeferredPaintServer(document, value); + } else if (value.IndexOf("url(#") > -1) { Match match = _urlRefPattern.Match(value); diff --git a/Source/Painting/SvgPatternServer.cs b/Source/Painting/SvgPatternServer.cs index 384fc19..9afa695 100644 --- a/Source/Painting/SvgPatternServer.cs +++ b/Source/Painting/SvgPatternServer.cs @@ -13,13 +13,15 @@ namespace Svg /// A pattern is used to fill or stroke an object using a pre-defined graphic object which can be replicated ("tiled") at fixed intervals in x and y to cover the areas to be painted. /// [SvgElement("pattern")] - public sealed class SvgPatternServer : SvgPaintServer, ISvgViewPort + public sealed class SvgPatternServer : SvgPaintServer, ISvgViewPort, ISvgSupportsCoordinateUnits { private SvgUnit _width; private SvgUnit _height; private SvgUnit _x; private SvgUnit _y; private SvgViewBox _viewBox; + private SvgCoordinateUnits _patternUnits; + private SvgCoordinateUnits _patternContentUnits; [SvgAttribute("overflow")] public SvgOverflow Overflow @@ -61,6 +63,26 @@ namespace Svg set { this._width = value; } } + /// + /// Gets or sets the width of the pattern. + /// + [SvgAttribute("patternUnits")] + public SvgCoordinateUnits PatternUnits + { + get { return this._patternUnits; } + set { this._patternUnits = value; } + } + + /// + /// Gets or sets the width of the pattern. + /// + [SvgAttribute("patternUnits")] + public SvgCoordinateUnits PatternContentUnits + { + get { return this._patternContentUnits; } + set { this._patternContentUnits = value; } + } + /// /// Gets or sets the height of the pattern. /// @@ -107,7 +129,7 @@ namespace Svg /// /// The owner . /// The opacity of the brush. - public override Brush GetBrush(SvgVisualElement renderingElement, float opacity) + public override Brush GetBrush(SvgVisualElement renderingElement, SvgRenderer renderer, float opacity) { // If there aren't any children, return null if (this.Children.Count == 0) @@ -117,18 +139,21 @@ namespace Svg if (this._width.Value == 0.0f || this._height.Value == 0.0f) return null; - float width = this._width.ToDeviceValue(renderingElement); - float height = this._height.ToDeviceValue(renderingElement, true); - - Bitmap image = new Bitmap((int)width, (int)height); - using (SvgRenderer renderer = SvgRenderer.FromImage(image)) + try { - Matrix patternMatrix = new Matrix(); + if (this.PatternUnits == SvgCoordinateUnits.ObjectBoundingBox) renderer.Boundable(renderingElement); + + float width = this._width.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); + float height = this._height.ToDeviceValue(renderer, UnitRenderingType.Vertical, this); + Matrix patternMatrix = new Matrix(); // Apply a translate if needed if (this._x.Value > 0.0f || this._y.Value > 0.0f) { - patternMatrix.Translate(this._x.ToDeviceValue(renderingElement) + -1.0f, this._y.ToDeviceValue(renderingElement, true) + -1.0f); + float x = this._x.ToDeviceValue(renderer, UnitRenderingType.HorizontalOffset, this); + float y = this._y.ToDeviceValue(renderer, UnitRenderingType.VerticalOffset, this); + + patternMatrix.Translate(x + -1.0f, y + -1.0f); } else { @@ -137,27 +162,40 @@ namespace Svg if (this.ViewBox.Height > 0 || this.ViewBox.Width > 0) { - patternMatrix.Scale(this.Width.ToDeviceValue() / this.ViewBox.Width, this.Height.ToDeviceValue() / this.ViewBox.Height); + patternMatrix.Scale(this.Width.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) / this.ViewBox.Width, + this.Height.ToDeviceValue(renderer, UnitRenderingType.Vertical, this) / this.ViewBox.Height); } - renderer.Transform = patternMatrix; - renderer.CompositingQuality = CompositingQuality.HighQuality; - renderer.SmoothingMode = SmoothingMode.AntiAlias; - renderer.PixelOffsetMode = PixelOffsetMode.Half; - - foreach (SvgElement child in this.Children) + Bitmap image = new Bitmap((int)width, (int)height); + using (SvgRenderer iRenderer = SvgRenderer.FromImage(image)) { - child.RenderElement(renderer); + iRenderer.Boundable((_patternContentUnits == SvgCoordinateUnits.ObjectBoundingBox) ? new GenericBoundable(0, 0, width, height) : renderer.Boundable()); + iRenderer.Transform = patternMatrix; + iRenderer.CompositingQuality = CompositingQuality.HighQuality; + iRenderer.SmoothingMode = SmoothingMode.AntiAlias; + iRenderer.PixelOffsetMode = PixelOffsetMode.Half; + + foreach (SvgElement child in this.Children) + { + child.RenderElement(iRenderer); + } + + iRenderer.Save(); } - renderer.Save(); - } + image.Save(string.Format(@"C:\test{0:D3}.png", imgNumber++)); - TextureBrush textureBrush = new TextureBrush(image); + TextureBrush textureBrush = new TextureBrush(image); - return textureBrush; + return textureBrush; + } + finally + { + if (this.PatternUnits == SvgCoordinateUnits.ObjectBoundingBox) renderer.PopBoundable(); + } } + private static int imgNumber = 0; @@ -180,5 +218,10 @@ namespace Svg return newObj; } + + public SvgCoordinateUnits GetUnits() + { + return _patternUnits; + } } } \ No newline at end of file diff --git a/Source/Painting/SvgRadialGradientServer.cs b/Source/Painting/SvgRadialGradientServer.cs index fafb951..349c5dc 100644 --- a/Source/Painting/SvgRadialGradientServer.cs +++ b/Source/Painting/SvgRadialGradientServer.cs @@ -95,53 +95,55 @@ namespace Svg Radius = new SvgUnit(SvgUnitType.Percentage, 50F); } - public override Brush GetBrush(SvgVisualElement renderingElement, float opacity) + public override Brush GetBrush(SvgVisualElement renderingElement, SvgRenderer renderer, float opacity) { - LoadStops(); - var origin = CalculateOrigin(renderingElement); + LoadStops(renderingElement); - var centerPoint = CalculateCenterPoint(renderingElement, origin); - - var focalPoint = CalculateFocalPoint(renderingElement, origin); - - var specifiedRadius = CalculateRadius(renderingElement); - var effectiveRadius = CalculateEffectiveRadius(renderingElement, centerPoint, specifiedRadius); - - var brush = new PathGradientBrush(CreateGraphicsPath(origin, centerPoint, effectiveRadius)) + try { - InterpolationColors = CalculateColorBlend(renderingElement, opacity, specifiedRadius, effectiveRadius), - CenterPoint = focalPoint - }; + if (this.GradientUnits == SvgCoordinateUnits.ObjectBoundingBox) renderer.Boundable(renderingElement); + var origin = renderer.Boundable().Location; + var centerPoint = CalculateCenterPoint(renderer, origin); + var focalPoint = CalculateFocalPoint(renderer, origin); - Debug.Assert(brush.Rectangle.Contains(renderingElement.Bounds), "Brush rectangle does not contain rendering element bounds!"); + var specifiedRadius = CalculateRadius(renderer); + var effectiveRadius = CalculateEffectiveRadius(renderingElement, centerPoint, specifiedRadius); - return brush; - } + var brush = new PathGradientBrush(CreateGraphicsPath(origin, centerPoint, effectiveRadius)) + { + InterpolationColors = CalculateColorBlend(renderer, opacity, specifiedRadius, effectiveRadius), + CenterPoint = focalPoint + }; - private PointF CalculateOrigin(SvgVisualElement renderingElement) - { - return CalculateBoundable(renderingElement).Location; + Debug.Assert(brush.Rectangle.Contains(renderingElement.Bounds), "Brush rectangle does not contain rendering element bounds!"); + + return brush; + } + finally + { + if (this.GradientUnits == SvgCoordinateUnits.ObjectBoundingBox) renderer.PopBoundable(); + } } - private PointF CalculateCenterPoint(ISvgBoundable boundable, PointF origin) + private PointF CalculateCenterPoint(SvgRenderer renderer, PointF origin) { - var deviceCenterX = origin.X + CenterX.ToDeviceValue(boundable); - var deviceCenterY = origin.Y + CenterY.ToDeviceValue(boundable, true); + var deviceCenterX = origin.X + CenterX.ToDeviceValue(renderer, UnitRenderingType.HorizontalOffset, this); + var deviceCenterY = origin.Y + CenterY.ToDeviceValue(renderer, UnitRenderingType.VerticalOffset, this); var transformedCenterPoint = TransformPoint(new PointF(deviceCenterX, deviceCenterY)); return transformedCenterPoint; } - private PointF CalculateFocalPoint(ISvgBoundable boundable, PointF origin) + private PointF CalculateFocalPoint(SvgRenderer renderer, PointF origin) { - var deviceFocalX = origin.X + FocalX.ToDeviceValue(boundable); - var deviceFocalY = origin.Y + FocalY.ToDeviceValue(boundable, true); + var deviceFocalX = origin.X + FocalX.ToDeviceValue(renderer, UnitRenderingType.HorizontalOffset, this); + var deviceFocalY = origin.Y + FocalY.ToDeviceValue(renderer, UnitRenderingType.VerticalOffset, this); var transformedFocalPoint = TransformPoint(new PointF(deviceFocalX, deviceFocalY)); return transformedFocalPoint; } - private float CalculateRadius(ISvgBoundable boundable) + private float CalculateRadius(SvgRenderer renderer) { - var radius = Radius.ToDeviceValue(boundable); + var radius = Radius.ToDeviceValue(renderer, UnitRenderingType.Other, this); var transformRadiusVector = TransformVector(new PointF(radius, 0)); var transformedRadius = CalculateLength(transformRadiusVector); return transformedRadius; @@ -191,9 +193,9 @@ namespace Svg return path; } - private ColorBlend CalculateColorBlend(SvgVisualElement renderingElement, float opacity, float specifiedRadius, float effectiveRadius) + private ColorBlend CalculateColorBlend(SvgRenderer renderer, float opacity, float specifiedRadius, float effectiveRadius) { - var colorBlend = GetColorBlend(renderingElement, opacity, true); + var colorBlend = GetColorBlend(renderer, opacity, true); if (specifiedRadius >= effectiveRadius) { diff --git a/Source/Paths/SvgPath.cs b/Source/Paths/SvgPath.cs index 2ff21da..95757d2 100644 --- a/Source/Paths/SvgPath.cs +++ b/Source/Paths/SvgPath.cs @@ -81,27 +81,20 @@ namespace Svg /// /// Gets the for this element. /// - public override GraphicsPath Path + public override GraphicsPath Path(SvgRenderer renderer) { - get + if (this._path == null || this.IsPathDirty) { - if (this._path == null || this.IsPathDirty) - { - _path = new GraphicsPath(); - - foreach (SvgPathSegment segment in this.PathData) - { - segment.AddToPath(_path); - } + _path = new GraphicsPath(); - this.IsPathDirty = false; + foreach (SvgPathSegment segment in this.PathData) + { + segment.AddToPath(_path); } - return _path; - } - protected set - { - _path = value; + + this.IsPathDirty = false; } + return _path; } internal void OnPathUpdated() @@ -124,7 +117,7 @@ namespace Svg /// The bounds. public override System.Drawing.RectangleF Bounds { - get { return this.Path.GetBounds(); } + get { return this.Path(null).GetBounds(); } } /// @@ -145,8 +138,8 @@ namespace Svg { if (this.Stroke != null) { - float strokeWidth = this.StrokeWidth.ToDeviceValue(this); - using (Pen pen = new Pen(this.Stroke.GetBrush(this, this.StrokeOpacity), strokeWidth)) + float strokeWidth = this.StrokeWidth.ToDeviceValue(renderer, UnitRenderingType.Other, this); + using (Pen pen = new Pen(this.Stroke.GetBrush(this, renderer, this.StrokeOpacity), strokeWidth)) { if (this.StrokeDashArray != null && this.StrokeDashArray.Count > 0) { @@ -154,25 +147,26 @@ namespace Svg pen.DashPattern = this.StrokeDashArray.ConvertAll(u => u.Value / ((strokeWidth <= 0) ? 1 : strokeWidth)).ToArray(); } - renderer.DrawPath(pen, this.Path); + var path = this.Path(renderer); + renderer.DrawPath(pen, path); if (this.MarkerStart != null) { SvgMarker marker = this.OwnerDocument.GetElementById(this.MarkerStart.ToString()); - marker.RenderMarker(renderer, this, Path.PathPoints[0], Path.PathPoints[0], Path.PathPoints[1]); + marker.RenderMarker(renderer, this, path.PathPoints[0], path.PathPoints[0], path.PathPoints[1]); } if (this.MarkerMid != null) { SvgMarker marker = this.OwnerDocument.GetElementById(this.MarkerMid.ToString()); - for (int i = 1; i <= Path.PathPoints.Length - 2; i++) - marker.RenderMarker(renderer, this, Path.PathPoints[i], Path.PathPoints[i - 1], Path.PathPoints[i], Path.PathPoints[i + 1]); + for (int i = 1; i <= path.PathPoints.Length - 2; i++) + marker.RenderMarker(renderer, this, path.PathPoints[i], path.PathPoints[i - 1], path.PathPoints[i], path.PathPoints[i + 1]); } if (this.MarkerEnd != null) { SvgMarker marker = this.OwnerDocument.GetElementById(this.MarkerEnd.ToString()); - marker.RenderMarker(renderer, this, Path.PathPoints[Path.PathPoints.Length - 1], Path.PathPoints[Path.PathPoints.Length - 2], Path.PathPoints[Path.PathPoints.Length - 1]); + marker.RenderMarker(renderer, this, path.PathPoints[path.PathPoints.Length - 1], path.PathPoints[path.PathPoints.Length - 2], path.PathPoints[path.PathPoints.Length - 1]); } } } diff --git a/Source/Properties/AssemblyInfo.cs b/Source/Properties/AssemblyInfo.cs index b4d5ded..2431535 100644 --- a/Source/Properties/AssemblyInfo.cs +++ b/Source/Properties/AssemblyInfo.cs @@ -36,3 +36,5 @@ using System.Runtime.InteropServices; //[assembly: AssemblyFileVersion("1.0.1.*")] [assembly: CLSCompliant(true)] + +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Svg.UnitTests")] \ No newline at end of file diff --git a/Source/Svg.csproj b/Source/Svg.csproj index 1b00cbb..c344e84 100644 --- a/Source/Svg.csproj +++ b/Source/Svg.csproj @@ -82,6 +82,7 @@ svgkey.snk + @@ -99,6 +100,9 @@ + + + @@ -227,6 +231,7 @@ + diff --git a/Source/Svg.sln b/Source/Svg.sln index b42362a..5837eee 100644 --- a/Source/Svg.sln +++ b/Source/Svg.sln @@ -1,33 +1,76 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 4.4 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svg", "Svg.csproj", "{886A98C5-37C0-4E8B-885E-30C1D2F98B47}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVGViewer", "..\Samples\SVGViewer\SVGViewer.csproj", "{1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Svg.UnitTests", "..\Tests\Svg.UnitTests\Svg.UnitTests.csproj", "{E702EB7D-D01D-438A-BADD-E72D4E49109F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{A417AF1E-BEDB-4715-B4FD-D795579217F9}" + ProjectSection(SolutionItems) = preProject + Local.testsettings = Local.testsettings + Svg.vsmdi = Svg.vsmdi + TraceAndTestImpact.testsettings = TraceAndTestImpact.testsettings + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgW3CTestRunner", "..\Tests\SvgW3CTestRunner\SvgW3CTestRunner.csproj", "{8ED74C39-6CFF-421E-952A-30F9E6957108}" +EndProject Global + GlobalSection(TestCaseManagementSettings) = postSolution + CategoryFile = Svg.vsmdi + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Debug|x86.ActiveCfg = Debug|Any CPU {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Release|Any CPU.ActiveCfg = Release|Any CPU {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Release|Any CPU.Build.0 = Release|Any CPU + {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Release|Mixed Platforms.Build.0 = Release|Any CPU {886A98C5-37C0-4E8B-885E-30C1D2F98B47}.Release|x86.ActiveCfg = Release|Any CPU - {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|Any CPU.Build.0 = Debug|Any CPU {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|x86.Build.0 = Debug|Any CPU + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|Mixed Platforms.Build.0 = Debug|x86 {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|x86.ActiveCfg = Debug|x86 - {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|Any CPU.Build.0 = Release|Any CPU + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Debug|x86.Build.0 = Debug|Any CPU {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|x86.Build.0 = Release|Any CPU + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|Any CPU.Build.0 = Release|Any CPU + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|Mixed Platforms.Build.0 = Release|x86 {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|x86.ActiveCfg = Release|Any CPU + {1B8F3C8A-CCAC-474E-B09D-522FBA93DCFD}.Release|x86.Build.0 = Release|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Debug|x86.ActiveCfg = Debug|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Release|Any CPU.Build.0 = Release|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {E702EB7D-D01D-438A-BADD-E72D4E49109F}.Release|x86.ActiveCfg = Release|Any CPU + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Debug|Any CPU.ActiveCfg = Debug|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Debug|x86.ActiveCfg = Debug|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Debug|x86.Build.0 = Debug|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Release|Any CPU.ActiveCfg = Release|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Release|Mixed Platforms.Build.0 = Release|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Release|x86.ActiveCfg = Release|x86 + {8ED74C39-6CFF-421E-952A-30F9E6957108}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Source/Svg.vsmdi b/Source/Svg.vsmdi new file mode 100644 index 0000000..2a4df24 --- /dev/null +++ b/Source/Svg.vsmdi @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Source/SvgAttributeCollection.cs b/Source/SvgAttributeCollection.cs index 42b0550..aaf910c 100644 --- a/Source/SvgAttributeCollection.cs +++ b/Source/SvgAttributeCollection.cs @@ -63,9 +63,12 @@ namespace Svg /// The attribute value if available; otherwise the ancestors value for the same attribute; otherwise the default value of . public TAttributeType GetInheritedAttribute(string attributeName) { - if (this.ContainsKey(attributeName) /*&& base[attributeName] != null*/) + if (this.ContainsKey(attributeName) && !IsInheritValue(base[attributeName])) { - return (TAttributeType)base[attributeName]; + var result = (TAttributeType)base[attributeName]; + var deferred = result as SvgDeferredPaintServer; + if (deferred != null) deferred.EnsureServer(_owner); + return result; } if (this._owner.Parent != null) @@ -79,6 +82,16 @@ namespace Svg return default(TAttributeType); } + private bool IsInheritValue(object value) + { + return (value == null || + (value is SvgFontStyle && (SvgFontStyle)value == SvgFontStyle.inherit) || + (value is SvgFontWeight && (SvgFontWeight)value == SvgFontWeight.inherit) || + (value is SvgTextAnchor && (SvgTextAnchor)value == SvgTextAnchor.inherit) || + (value == "inherit") + ); + } + /// /// Gets the attribute with the specified name. /// diff --git a/Source/SvgDocument.cs b/Source/SvgDocument.cs index fca6698..9dc6303 100644 --- a/Source/SvgDocument.cs +++ b/Source/SvgDocument.cs @@ -30,6 +30,8 @@ namespace Svg Ppi = PointsPerInch; } + public Uri BaseUri { get; set; } + /// /// Gets an for this document. /// @@ -157,7 +159,9 @@ namespace Svg throw new FileNotFoundException("The specified document cannot be found.", path); } - return Open(File.OpenRead(path), entities); + var doc = Open(File.OpenRead(path), entities); + doc.BaseUri = new Uri(System.IO.Path.GetFullPath(path)); + return doc; } /// @@ -305,22 +309,37 @@ namespace Svg var cssTotal = styles.Select((s) => s.Content).Aggregate((p, c) => p + Environment.NewLine + c); var cssParser = new Parser(); var sheet = cssParser.Parse(cssTotal); + AggregateSelectorList aggList; + IEnumerable selectors; IEnumerable elemsToStyle; foreach (var rule in sheet.StyleRules) { - elemsToStyle = svgDocument.QuerySelectorAll(rule.Selector.ToString()); - foreach (var elem in elemsToStyle) + aggList = rule.Selector as AggregateSelectorList; + if (aggList != null && aggList.Delimiter == ",") + { + selectors = aggList; + } + else + { + selectors = Enumerable.Repeat(rule.Selector, 1); + } + + foreach (var selector in selectors) { - foreach (var decl in rule.Declarations) + elemsToStyle = svgDocument.QuerySelectorAll(rule.Selector.ToString()); + foreach (var elem in elemsToStyle) { - elem.AddStyle(decl.Name, decl.Term.ToString(), rule.Selector.GetSpecificity()); + foreach (var decl in rule.Declarations) + { + elem.AddStyle(decl.Name, decl.Term.ToString(), rule.Selector.GetSpecificity()); + } } } } } - FlushStyles(svgDocument); + if (svgDocument != null) FlushStyles(svgDocument); return svgDocument; } @@ -345,10 +364,8 @@ namespace Svg throw new ArgumentNullException("document"); } - using (var stream = new MemoryStream(UTF8Encoding.Default.GetBytes(document.InnerXml))) - { - return Open(stream, null); - } + var reader = new SvgNodeReader(document.DocumentElement, null); + return Open(reader); } public static Bitmap OpenAsBitmap(string path) @@ -373,6 +390,7 @@ namespace Svg throw new ArgumentNullException("renderer"); } + renderer.Boundable(this); this.Render(renderer); } @@ -388,7 +406,9 @@ namespace Svg throw new ArgumentNullException("graphics"); } - this.Render(SvgRenderer.FromGraphics(graphics)); + var renderer = SvgRenderer.FromGraphics(graphics); + renderer.Boundable(this); + this.Render(renderer); } /// @@ -427,6 +447,7 @@ namespace Svg { using (var renderer = SvgRenderer.FromImage(bitmap)) { + renderer.Boundable(this); renderer.TextRenderingHint = TextRenderingHint.AntiAlias; renderer.TextContrast = 1; renderer.PixelOffsetMode = PixelOffsetMode.Half; diff --git a/Source/SvgElement.cs b/Source/SvgElement.cs index 594559b..b2ceb6c 100644 --- a/Source/SvgElement.cs +++ b/Source/SvgElement.cs @@ -40,6 +40,7 @@ namespace Svg private EventHandlerList _eventHandlers; private SvgElementCollection _children; private static readonly object _loadEventKey = new object(); + private Region _graphicsClip; private Matrix _graphicsMatrix; private SvgCustomAttributeCollection _customAttributes; private List _nodes = new List(); @@ -89,6 +90,16 @@ namespace Svg internal set { this._elementName = value; } } + /// + /// Gets or sets the color of this element which drives the currentColor property. + /// + [SvgAttribute("color")] + public virtual SvgPaintServer Color + { + get { return (this.Attributes["color"] == null) ? SvgColourServer.NotSet : (SvgPaintServer)this.Attributes["color"]; } + set { this.Attributes["color"] = value; } + } + /// /// Gets or sets the content of the element. /// @@ -247,15 +258,17 @@ namespace Svg /// Applies the required transforms to . /// /// The to be transformed. - protected internal virtual void PushTransforms(SvgRenderer renderer) + protected internal virtual bool PushTransforms(SvgRenderer renderer) { _graphicsMatrix = renderer.Transform; + _graphicsClip = renderer.Clip; // Return if there are no transforms if (this.Transforms == null || this.Transforms.Count == 0) { - return; + return true; } + if (this.Transforms.Count == 1 && this.Transforms[0].Matrix.Equals(new Matrix(0, 0, 0, 0, 0, 0))) return false; Matrix transformMatrix = renderer.Transform; @@ -265,6 +278,8 @@ namespace Svg } renderer.Transform = transformMatrix; + + return true; } /// @@ -275,6 +290,8 @@ namespace Svg { renderer.Transform = _graphicsMatrix; _graphicsMatrix = null; + renderer.SetClip(_graphicsClip); + _graphicsClip = null; } /// @@ -659,7 +676,7 @@ namespace Svg { if(!(child is SvgGroup)) { - var childPath = ((SvgVisualElement)child).Path; + var childPath = ((SvgVisualElement)child).Path(null); if (childPath != null) { @@ -671,8 +688,8 @@ namespace Svg } } } - - AddPaths(child, path); + + if (!(child is SvgPaintServer)) AddPaths(child, path); } } @@ -681,7 +698,7 @@ namespace Svg /// /// /// - protected GraphicsPath GetPaths(SvgElement elem) + protected GraphicsPath GetPaths(SvgElement elem, SvgRenderer renderer) { var ret = new GraphicsPath(); @@ -691,7 +708,7 @@ namespace Svg { if(!(child is SvgGroup)) { - var childPath = ((SvgVisualElement)child).Path; + var childPath = ((SvgVisualElement)child).Path(renderer); if (childPath != null) { @@ -704,7 +721,7 @@ namespace Svg } else { - var childPath = GetPaths(child); + var childPath = GetPaths(child, renderer); if(child.Transforms != null) childPath.Transform(child.Transforms.GetMatrix()); } diff --git a/Source/SvgElementFactory.cs b/Source/SvgElementFactory.cs index 22fe862..8f812bf 100644 --- a/Source/SvgElementFactory.cs +++ b/Source/SvgElementFactory.cs @@ -130,40 +130,6 @@ namespace Svg while (reader.MoveToNextAttribute()) { - //// Special treatment for "style" - //if (reader.LocalName.Equals("style") && !(element is NonSvgElement)) - //{ - // styles = reader.Value.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); - - // for (i = 0; i < styles.Length; i++) - // { - // if (!styles[i].Contains(":")) - // { - // continue; - // } - - // style = styles[i].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); - // SetPropertyValue(element, style[0].Trim(), style[1].Trim(), document); - // } - - // //defaults for text can come from the document - // if (element.ElementName == "text") - // { - // if (!styles.Contains("font-size") && document.CustomAttributes.ContainsKey("font-size") && document.CustomAttributes["font-size"] != null) - // { - // SetPropertyValue(element, "font-size", document.CustomAttributes["font-size"], document); - // } - // if (!styles.Contains("font-family") && document.CustomAttributes.ContainsKey("font-family") && document.CustomAttributes["font-family"] != null) - // { - // SetPropertyValue(element, "font-family", document.CustomAttributes["font-family"], document); - // } - - // } - // continue; - //} - - //SetPropertyValue(element, reader.LocalName, reader.Value, document); - if (reader.LocalName.Equals("style") && !(element is NonSvgElement)) { var inlineSheet = cssParser.Parse("#a{" + reader.Value + "}"); @@ -175,15 +141,89 @@ namespace Svg } } } - else + else if (IsStyleAttribute(reader.LocalName)) { element.AddStyle(reader.LocalName, reader.Value, 2 << 16); } + else + { + SetPropertyValue(element, reader.LocalName, reader.Value, document); + } } //Trace.TraceInformation("End SetAttributes"); } + private static bool IsStyleAttribute(string name) + { + switch (name) + { + case "alignment-baseline": + case "baseline-shift": + case "clip": + case "clip-path": + case "clip-rule": + case "color": + case "color-interpolation": + case "color-interpolation-filters": + case "color-profile": + case "color-rendering": + case "cursor": + case "direction": + case "display": + case "dominant-baseline": + case "enable-background": + case "fill": + case "fill-opacity": + case "fill-rule": + case "filter": + case "flood-color": + case "flood-opacity": + case "font": + case "font-family": + case "font-size": + case "font-size-adjust": + case "font-stretch": + case "font-style": + case "font-variant": + case "font-weight": + case "glyph-orientation-horizontal": + case "glyph-orientation-vertical": + case "image-rendering": + case "kerning": + case "letter-spacing": + case "lighting-color": + case "marker": + case "marker-end": + case "marker-mid": + case "marker-start": + case "mask": + case "opacity": + case "overflow": + case "pointer-events": + case "shape-rendering": + case "stop-color": + case "stop-opacity": + case "stroke": + case "stroke-dasharray": + case "stroke-dashoffset": + case "stroke-linecap": + case "stroke-linejoin": + case "stroke-miterlimit": + case "stroke-opacity": + case "stroke-width": + case "text-anchor": + case "text-decoration": + case "text-rendering": + case "unicode-bidi": + case "visibility": + case "word-spacing": + case "writing-mode": + return true; + } + return false; + } + private static Dictionary> _propertyDescriptors = new Dictionary>(); private static object syncLock = new object(); diff --git a/Source/SvgNodeReader.cs b/Source/SvgNodeReader.cs new file mode 100644 index 0000000..05c2666 --- /dev/null +++ b/Source/SvgNodeReader.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Xml; +using System.IO; +using System.Collections.Specialized; + +namespace Svg +{ + internal sealed class SvgNodeReader : XmlNodeReader + { + private Dictionary _entities; + private string _value; + private bool _customValue = false; + private string _localName; + + public SvgNodeReader(XmlNode node, Dictionary entities) + : base(node) + { + this._entities = entities; + } + + /// + /// Gets the text value of the current node. + /// + /// + /// The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.Node Type Value AttributeThe value of the attribute. CDATAThe content of the CDATA section. CommentThe content of the comment. DocumentTypeThe internal subset. ProcessingInstructionThe entire content, excluding the target. SignificantWhitespaceThe white space within an xml:space= 'preserve' scope. TextThe content of the text node. WhitespaceThe white space between markup. XmlDeclarationThe content of the declaration. + public override string Value + { + get + { + return (this._customValue) ? this._value : base.Value; + } + } + + /// + /// Gets the local name of the current node. + /// + /// + /// The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.For node types that do not have a name (like Text, Comment, and so on), this property returns String.Empty. + public override string LocalName + { + get + { + return (this._customValue) ? this._localName : base.LocalName; + } + } + + private IDictionary Entities + { + get + { + if (this._entities == null) + { + this._entities = new Dictionary(); + } + + return this._entities; + } + } + + /// + /// Moves to the next attribute. + /// + /// + /// true if there is a next attribute; false if there are no more attributes. + /// + public override bool MoveToNextAttribute() + { + bool moved = base.MoveToNextAttribute(); + + if (moved) + { + this._localName = base.LocalName; + + if (this.ReadAttributeValue()) + { + if (this.NodeType == XmlNodeType.EntityReference) + { + this.ResolveEntity(); + } + else + { + this._value = base.Value; + } + } + this._customValue = true; + } + + return moved; + } + + /// + /// Reads the next node from the stream. + /// + /// + /// true if the next node was read successfully; false if there are no more nodes to read. + /// + /// An error occurred while parsing the XML. + public override bool Read() + { + this._customValue = false; + bool read = base.Read(); + + if (this.NodeType == XmlNodeType.DocumentType) + { + this.ParseEntities(); + } + + return read; + } + + private void ParseEntities() + { + const string entityText = " + /// Resolves the entity reference for EntityReference nodes. + /// + public override void ResolveEntity() + { + if (this.NodeType == XmlNodeType.EntityReference) + { + if (this._entities.ContainsKey(this.Name)) + { + this._value = this._entities[this.Name]; + } + else + { + this._value = string.Empty; + } + + this._customValue = true; + } + } + } +} \ No newline at end of file diff --git a/Source/SvgRenderer.cs b/Source/SvgRenderer.cs index 40417de..8ed934c 100644 --- a/Source/SvgRenderer.cs +++ b/Source/SvgRenderer.cs @@ -8,9 +8,26 @@ using System.Drawing.Text; namespace Svg { + /// + /// Convenience wrapper around a graphics object + /// public sealed class SvgRenderer : IDisposable { private Graphics _innerGraphics; + private Stack _boundables = new Stack(); + + public void Boundable(ISvgBoundable boundable) + { + _boundables.Push(boundable); + } + public ISvgBoundable Boundable() + { + return _boundables.Peek(); + } + public ISvgBoundable PopBoundable() + { + return _boundables.Pop(); + } /// /// Initializes a new instance of the class. @@ -47,6 +64,14 @@ namespace Svg return renderer; } + public static SvgRenderer FromNull() + { + SvgRenderer renderer = new SvgRenderer(); + var img = new Bitmap(1, 1); + renderer._innerGraphics = Graphics.FromImage(img); + return renderer; + } + public void DrawImageUnscaled(Image image, Point location) { this._innerGraphics.DrawImageUnscaled(image, location); @@ -57,9 +82,13 @@ namespace Svg _innerGraphics.DrawImage(image, destRect, srcRect, graphicsUnit); } + public void AddClip(Region region) + { + this._innerGraphics.SetClip(region, CombineMode.Intersect); + } public void SetClip(Region region) { - this._innerGraphics.SetClip(region, CombineMode.Complement); + this._innerGraphics.SetClip(region, CombineMode.Replace); } public void FillPath(Brush brush, GraphicsPath path) @@ -151,17 +180,18 @@ namespace Svg public SizeF MeasureString(string text, Font font) { var ff = font.FontFamily; - float lineSpace = ff.GetLineSpacing(font.Style); + //Baseline calculation to match http://bobpowell.net/formattingtext.aspx float ascent = ff.GetCellAscent(font.Style); - float baseline = font.GetHeight(this._innerGraphics) * ascent / lineSpace; + float baselineOffset = font.SizeInPoints / ff.GetEmHeight(font.Style) * ascent; + float baselineOffsetPixels = this._innerGraphics.DpiY / 72f * baselineOffset; StringFormat format = StringFormat.GenericTypographic; format.SetMeasurableCharacterRanges(new CharacterRange[]{new CharacterRange(0, text.Length)}); format.FormatFlags |= StringFormatFlags.MeasureTrailingSpaces; Region[] r = this._innerGraphics.MeasureCharacterRanges(text, font, new Rectangle(0, 0, 1000, 1000), format); RectangleF rect = r[0].GetBounds(this._innerGraphics); - - return new SizeF(rect.Width, baseline); + + return new SizeF(rect.Width, baselineOffsetPixels); } } } \ No newline at end of file diff --git a/Source/SvgTextReader.cs b/Source/SvgTextReader.cs index 41ce58f..7ef556c 100644 --- a/Source/SvgTextReader.cs +++ b/Source/SvgTextReader.cs @@ -18,14 +18,14 @@ namespace Svg public SvgTextReader(Stream stream, Dictionary entities) : base(stream) { - this.EntityHandling = EntityHandling.ExpandCharEntities; + this.EntityHandling = EntityHandling.ExpandEntities; this._entities = entities; } public SvgTextReader(TextReader reader, Dictionary entities) : base(reader) { - this.EntityHandling = EntityHandling.ExpandCharEntities; + this.EntityHandling = EntityHandling.ExpandEntities; this._entities = entities; } @@ -126,6 +126,7 @@ namespace Svg string[] parts = null; string name = null; string value = null; + int quoteIndex; foreach (string entity in entities) { @@ -134,11 +135,14 @@ namespace Svg continue; } - parts = entity.Trim().Split(new char[]{' ', '\t'}, StringSplitOptions.RemoveEmptyEntries); - name = parts[0]; - value = parts[1].Split(new char[] { this.QuoteChar }, StringSplitOptions.RemoveEmptyEntries)[0]; - - this.Entities.Add(name, value); + name = entity.Trim(); + quoteIndex = name.IndexOf(this.QuoteChar); + if (quoteIndex > 0) + { + value = name.Substring(quoteIndex + 1, name.LastIndexOf(this.QuoteChar) - quoteIndex - 1); + name = name.Substring(0, quoteIndex).Trim(); + this.Entities.Add(name, value); + } } } diff --git a/Source/Text/SvgTextBase.cs b/Source/Text/SvgTextBase.cs index 34a7fbe..f1315d7 100644 --- a/Source/Text/SvgTextBase.cs +++ b/Source/Text/SvgTextBase.cs @@ -25,10 +25,8 @@ namespace Svg private SvgUnitCollection _dx = new SvgUnitCollection(); private SvgUnit _letterSpacing; private SvgUnit _wordSpacing; - private SvgTextAnchor _textAnchor = SvgTextAnchor.inherit; private static readonly SvgRenderer _stringMeasure; - private const string DefaultFontFamily = "Times New Roman"; - + private XmlSpaceHandling _space = XmlSpaceHandling.@default; /// @@ -57,8 +55,15 @@ namespace Svg [SvgAttribute("text-anchor")] public virtual SvgTextAnchor TextAnchor { - get { return this._textAnchor; } - set { this._textAnchor = value; this.IsPathDirty = true; } + get { return (this.Attributes["text-anchor"] == null) ? SvgTextAnchor.inherit : (SvgTextAnchor)this.Attributes["text-anchor"]; } + set { this.Attributes["text-anchor"] = value; this.IsPathDirty = true; } + } + + [SvgAttribute("baseline-shift")] + public virtual string BaselineShift + { + get { return this.Attributes["baseline-shift"] as string; } + set { this.Attributes["baseline-shift"] = value; this.IsPathDirty = true; } } /// @@ -166,7 +171,7 @@ namespace Svg /// The fill. public override SvgPaintServer Fill { - get { return (this.Attributes["fill"] == null) ? new SvgColourServer(Color.Black) : (SvgPaintServer)this.Attributes["fill"]; } + get { return (this.Attributes["fill"] == null) ? new SvgColourServer(System.Drawing.Color.Black) : (SvgPaintServer)this.Attributes["fill"]; } set { this.Attributes["fill"] = value; } } @@ -198,33 +203,15 @@ namespace Svg { get { - var path = this.Path; + var path = this.Path(null); foreach (var elem in this.Children.OfType()) { - path.AddPath(elem.Path, false); + path.AddPath(elem.Path(null), false); } return path.GetBounds(); } } - private static string ValidateFontFamily(string fontFamilyList) - { - // Split font family list on "," and then trim start and end spaces and quotes. - var fontParts = fontFamilyList.Split(new[] { ',' }).Select(fontName => fontName.Trim(new[] { '"', ' ', '\'' })); - - var families = System.Drawing.FontFamily.Families; - - // Find a the first font that exists in the list of installed font families. - //styles from IE get sent through as lowercase. - foreach (var f in fontParts.Where(f => families.Any(family => family.Name.ToLower() == f.ToLower()))) - { - return f; - } - // No valid font family found from the list requested. - return null; - } - - /// /// Renders the and contents to the specified object. /// @@ -232,7 +219,7 @@ namespace Svg /// Necessary to make sure that any internal tspan elements get rendered as well protected override void Render(SvgRenderer renderer) { - if ((this.Path != null) && this.Visible && this.Displayable) + if ((this.Path(renderer) != null) && this.Visible && this.Displayable) { this.PushTransforms(renderer); this.SetClip(renderer); @@ -275,9 +262,9 @@ namespace Svg } public SizeF Bounds { get; set; } } - protected BoundsData GetTextBounds() + protected BoundsData GetTextBounds(SvgRenderer renderer) { - var font = GetFont(); + var font = GetFont(renderer); SvgTextBase innerText; SizeF stringBounds; float totalHeight = 0; @@ -305,7 +292,8 @@ namespace Svg { Bounds = stringBounds, Node = new SvgContentNode() { Content = ch }, - xOffset = (i == 0 ? 0 : _x[i].ToDeviceValue(this) - _x[0].ToDeviceValue(this)) + xOffset = (i == 0 ? 0 : _x[i].ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) - + _x[0].ToDeviceValue(renderer, UnitRenderingType.Horizontal, this)) }); } } @@ -326,9 +314,9 @@ namespace Svg } else { - stringBounds = innerText.GetTextBounds().Bounds; + stringBounds = innerText.GetTextBounds(renderer).Bounds; result.Nodes.Add(new NodeBounds() { Bounds = stringBounds, Node = node, xOffset = totalWidth }); - if (innerText.Dx.Count == 1) totalWidth += innerText.Dx[0].ToDeviceValue(this); + if (innerText.Dx.Count == 1) totalWidth += innerText.Dx[0].ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); } totalHeight = Math.Max(totalHeight, stringBounds.Height); totalWidth += stringBounds.Width; @@ -345,75 +333,100 @@ namespace Svg /// Gets the for this element. /// /// - public override System.Drawing.Drawing2D.GraphicsPath Path + public override System.Drawing.Drawing2D.GraphicsPath Path(SvgRenderer renderer) { - get + // Make sure the path is always null if there is no text + //if there is a TSpan inside of this text element then path should not be null (even if this text is empty!) + if ((string.IsNullOrEmpty(this.Text) || this.Text.Trim().Length < 1) && this.Children.Where(x => x is SvgTextSpan).Select(x => x as SvgTextSpan).Count() == 0) + return _path = null; + //NOT SURE WHAT THIS IS ABOUT - Path gets created again anyway - WTF? + // When an empty string is passed to GraphicsPath, it rises an InvalidArgumentException... + + if (_path == null || this.IsPathDirty) { - // Make sure the path is always null if there is no text - //if there is a TSpan inside of this text element then path should not be null (even if this text is empty!) - if ((string.IsNullOrEmpty(this.Text) || this.Text.Trim().Length < 1) && this.Children.Where(x => x is SvgTextSpan).Select(x => x as SvgTextSpan).Count() == 0) - return _path = null; - //NOT SURE WHAT THIS IS ABOUT - Path gets created again anyway - WTF? - // When an empty string is passed to GraphicsPath, it rises an InvalidArgumentException... - - if (_path == null || this.IsPathDirty) + renderer = (renderer ?? SvgRenderer.FromNull()); + // Measure the overall bounds of all the text + var boundsData = GetTextBounds(renderer); + + var font = GetFont(renderer); + SvgTextBase innerText; + float x = (_x.Count < 1 ? _calcX : _x[0].ToDeviceValue(renderer, UnitRenderingType.HorizontalOffset, this)) + + (_dx.Count < 1 ? 0 : _dx[0].ToDeviceValue(renderer, UnitRenderingType.Horizontal, this)); + float y = (_y.Count < 1 ? _calcY : _y[0].ToDeviceValue(renderer, UnitRenderingType.VerticalOffset, this)) + + (_dy.Count < 1 ? 0 : _dy[0].ToDeviceValue(renderer, UnitRenderingType.Vertical, this)); + + _path = new GraphicsPath(); + _path.StartFigure(); + + // Determine the location of the start point + switch (this.TextAnchor) { - // Measure the overall bounds of all the text - var boundsData = GetTextBounds(); - - var font = GetFont(); - SvgTextBase innerText; - float x = (_x.Count < 1 ? _calcX : _x[0].ToDeviceValue(this)) + (_dx.Count < 1 ? 0 : _dx[0].ToDeviceValue(this)); - float y = (_y.Count < 1 ? _calcY : _y[0].ToDeviceValue(this, true)) + (_dy.Count < 1 ? 0 : _dy[0].ToDeviceValue(this, true)); - - _path = new GraphicsPath(); - _path.StartFigure(); - - var anchorElem = (from e in this.ParentsAndSelf.OfType() where e.TextAnchor != SvgTextAnchor.inherit select e).FirstOrDefault(); + case SvgTextAnchor.Middle: + x -= (boundsData.Bounds.Width / 2); + break; + case SvgTextAnchor.End: + x -= boundsData.Bounds.Width; + break; + } - // Determine the location of the start point - switch (anchorElem == null ? this.TextAnchor : anchorElem.TextAnchor) + try + { + renderer.Boundable(new FontBoundable(font)); + switch (this.BaselineShift) { - case SvgTextAnchor.Middle: - x -= (boundsData.Bounds.Width / 2); + case null: + case "": + case "baseline": + case "inherit": + // do nothing + break; + case "sub": + y += new SvgUnit(SvgUnitType.Ex, 1).ToDeviceValue(renderer, UnitRenderingType.Vertical, this); break; - case SvgTextAnchor.End: - x -= boundsData.Bounds.Width; + case "super": + y -= new SvgUnit(SvgUnitType.Ex, 1).ToDeviceValue(renderer, UnitRenderingType.Vertical, this); + break; + default: + var convert = new SvgUnitConverter(); + var shift = (SvgUnit)convert.ConvertFromInvariantString(this.BaselineShift); + y -= shift.ToDeviceValue(renderer, UnitRenderingType.Vertical, this); break; } + } + finally + { + renderer.PopBoundable(); + } - NodeBounds data; - var yCummOffset = 0.0f; - for (var i = 0; i < boundsData.Nodes.Count; i++) + NodeBounds data; + var yCummOffset = 0.0f; + for (var i = 0; i < boundsData.Nodes.Count; i++) + { + data = boundsData.Nodes[i]; + innerText = data.Node as SvgTextBase; + if (innerText == null) { - data = boundsData.Nodes[i]; - innerText = data.Node as SvgTextBase; - if (innerText == null) - { - // Minus FontSize because the x/y coords mark the bottom left, not bottom top. - DrawString(_path, x + data.xOffset, y - boundsData.Bounds.Height, font, - PrepareText(data.Node.Content, i > 0 && boundsData.Nodes[i - 1].Node is SvgTextBase, - i < boundsData.Nodes.Count - 1 && boundsData.Nodes[i + 1].Node is SvgTextBase)); - } - else - { - innerText._calcX = x + data.xOffset; - innerText._calcY = y + yCummOffset; - if (innerText.Dy.Count == 1) yCummOffset += innerText.Dy[0].ToDeviceValue(this); - } + // Minus FontSize because the x/y coords mark the bottom left, not bottom top. + DrawString(renderer, _path, x + data.xOffset, y - boundsData.Bounds.Height, font, + PrepareText(data.Node.Content, i > 0 && boundsData.Nodes[i - 1].Node is SvgTextBase, + i < boundsData.Nodes.Count - 1 && boundsData.Nodes[i + 1].Node is SvgTextBase)); + } + else + { + innerText._calcX = x + data.xOffset; + innerText._calcY = y + yCummOffset; + if (innerText.Dy.Count == 1) yCummOffset += innerText.Dy[0].ToDeviceValue(renderer, UnitRenderingType.Vertical, this); } - - _path.CloseFigure(); - this.IsPathDirty = false; } - return _path; - } - protected set - { - _path = value; + + _path.CloseFigure(); + this.IsPathDirty = false; } + return _path; } + private static readonly Regex MultipleSpaces = new Regex(@" {2,}", RegexOptions.Compiled); + /// /// Prepare the text according to the whitespace handling rules. SVG Spec. /// @@ -423,82 +436,21 @@ namespace Svg { if (_space == XmlSpaceHandling.preserve) { - return (leadingSpace ? " " : "") + value.Replace('\t', ' ').Replace("\r\n", " ").Replace('\r', ' ').Replace('\n', ' ') + (trailingSpace ? " " : ""); + return value.Replace('\t', ' ').Replace("\r\n", " ").Replace('\r', ' ').Replace('\n', ' '); } else { - return (leadingSpace ? " " : "") + value.Replace("\r", "").Replace("\n", "").Replace('\t', ' ').Trim().Replace(" ", " ") + (trailingSpace ? " " : ""); + var convValue = MultipleSpaces.Replace(value.Replace("\r", "").Replace("\n", "").Replace('\t', ' '), " "); + if (!leadingSpace) convValue = convValue.TrimStart(); + if (!trailingSpace) convValue = convValue.TrimEnd(); + return convValue; } } - /// - /// Get the font information based on data stored with the text object or inherited from the parent. - /// - /// - internal Font GetFont() - { - var parentList = this.ParentsAndSelf.OfType().ToList(); - - // Get the font-size - float fontSize; - var fontSizeUnit = GetInheritedFontSize(); - if (fontSizeUnit == SvgUnit.None) - { - fontSize = 1.0f; - } - else - { - fontSize = fontSizeUnit.ToDeviceValue(this); - } - - var fontStyle = System.Drawing.FontStyle.Regular; - - // Get the font-weight - var weightElement = (from e in parentList where e.FontWeight != SvgFontWeight.inherit select e).FirstOrDefault(); - if (weightElement != null) - { - switch (weightElement.FontWeight) - { - case SvgFontWeight.bold: - case SvgFontWeight.bolder: - case SvgFontWeight.w700: - case SvgFontWeight.w800: - case SvgFontWeight.w900: - fontStyle |= System.Drawing.FontStyle.Bold; - break; - } - } - - // Get the font-style - var styleElement = (from e in parentList where e.FontStyle != SvgFontStyle.inherit select e).FirstOrDefault(); - if (styleElement != null) - { - switch (styleElement.FontStyle) - { - case SvgFontStyle.italic: - case SvgFontStyle.oblique: - fontStyle |= System.Drawing.FontStyle.Italic; - break; - } - } - - // Get the font-family - var fontFamilyElement = (from e in parentList where e.FontFamily != null && e.FontFamily != "inherit" select e).FirstOrDefault(); - string family; - if (fontFamilyElement == null) - { - family = DefaultFontFamily; - } - else - { - family = ValidateFontFamily(fontFamilyElement.FontFamily) ?? DefaultFontFamily; - } - return new Font(family, fontSize, fontStyle, GraphicsUnit.Pixel); - } /// /// Draws a string on a path at a specified location and with a specified font. /// - internal void DrawString(GraphicsPath path, float x, float y, Font font, string text) + internal void DrawString(SvgRenderer renderer, GraphicsPath path, float x, float y, Font font, string text) { PointF location = new PointF(x, y); @@ -507,8 +459,8 @@ namespace Svg { // Cut up into words, or just leave as required string[] words = (this.WordSpacing.Value > 0.0f) ? text.Split(' ') : new string[] { text }; - float wordSpacing = this.WordSpacing.ToDeviceValue(this); - float letterSpacing = this.LetterSpacing.ToDeviceValue(this); + float wordSpacing = this.WordSpacing.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); + float letterSpacing = this.LetterSpacing.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this); float start = x; foreach (string word in words) @@ -579,5 +531,30 @@ namespace Svg } #endif + + private class FontBoundable : ISvgBoundable + { + private Font _font; + + public FontBoundable(Font font) + { + _font = font; + } + + public PointF Location + { + get { return PointF.Empty; } + } + + public SizeF Size + { + get { return new SizeF(1, _font.Size); } + } + + public RectangleF Bounds + { + get { return new RectangleF(this.Location, this.Size); } + } + } } } diff --git a/Source/TraceAndTestImpact.testsettings b/Source/TraceAndTestImpact.testsettings new file mode 100644 index 0000000..f7b94b8 --- /dev/null +++ b/Source/TraceAndTestImpact.testsettings @@ -0,0 +1,9 @@ + + + These are test settings for Trace and Test Impact. + + + + + + \ No newline at end of file diff --git a/Source/Transforms/SvgTransformConverter.cs b/Source/Transforms/SvgTransformConverter.cs index 2a9e1d2..8c228ac 100644 --- a/Source/Transforms/SvgTransformConverter.cs +++ b/Source/Transforms/SvgTransformConverter.cs @@ -21,7 +21,8 @@ namespace Svg.Transforms if (transforms[i] == ')') { yield return transforms.Substring(transformEnd, i - transformEnd + 1).Trim(); - transformEnd = i + 1; + while (i < transforms.Length && !char.IsLetter(transforms[i])) i++; + transformEnd = i; } } } diff --git a/Tests/Svg.UnitTests/CssQueryTest.cs b/Tests/Svg.UnitTests/CssQueryTest.cs new file mode 100644 index 0000000..110714f --- /dev/null +++ b/Tests/Svg.UnitTests/CssQueryTest.cs @@ -0,0 +1,104 @@ +using Svg.Css; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using ExCSS; + +namespace Svg.UnitTests +{ + + + /// + ///This is a test class for CssQueryTest and is intended + ///to contain all CssQueryTest Unit Tests + /// + [TestClass()] + public class CssQueryTest + { + + + private TestContext testContextInstance; + + /// + ///Gets or sets the test context which provides + ///information about and functionality for the current test run. + /// + public TestContext TestContext + { + get + { + return testContextInstance; + } + set + { + testContextInstance = value; + } + } + + #region Additional test attributes + // + //You can use the following additional attributes as you write your tests: + // + //Use ClassInitialize to run code before running the first test in the class + //[ClassInitialize()] + //public static void MyClassInitialize(TestContext testContext) + //{ + //} + // + //Use ClassCleanup to run code after all tests in a class have run + //[ClassCleanup()] + //public static void MyClassCleanup() + //{ + //} + // + //Use TestInitialize to run code before running each test + //[TestInitialize()] + //public void MyTestInitialize() + //{ + //} + // + //Use TestCleanup to run code after each test has run + //[TestCleanup()] + //public void MyTestCleanup() + //{ + //} + // + #endregion + + private void TestSelectorSpecificity(string selector, int specificity) + { + var parser = new ExCSS.Parser(); + var sheet = parser.Parse(selector + " {color:black}"); + Assert.AreEqual(specificity, CssQuery.GetSpecificity(sheet.StyleRules[0].Selector)); + } + + /// + ///A test for GetSpecificity + /// + ///Lifted from http://www.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/, and http://css-tricks.com/specifics-on-css-specificity/ + [TestMethod()] + public void RunSpecificityTests() + { + TestSelectorSpecificity("*", 0x0); + TestSelectorSpecificity("li", 0x10); + TestSelectorSpecificity("li:first-line", 0x20); + TestSelectorSpecificity("ul li", 0x20); + TestSelectorSpecificity("ul ol+li", 0x30); + TestSelectorSpecificity("h1 + *[rel=up]", 0x110); + TestSelectorSpecificity("ul ol li.red", 0x130); + TestSelectorSpecificity("li.red.level", 0x210); + TestSelectorSpecificity("p", 0x010); + TestSelectorSpecificity("div p", 0x020); + TestSelectorSpecificity(".sith", 0x100); + TestSelectorSpecificity("div p.sith", 0x120); + TestSelectorSpecificity("#sith", 0x1000); + TestSelectorSpecificity("body #darkside .sith p", 0x1120); + TestSelectorSpecificity("body #content .data img:hover", 0x1220); + TestSelectorSpecificity("a#a-02", 0x1010); + TestSelectorSpecificity("a[id=\"a-02\"]", 0x0110); + TestSelectorSpecificity("ul#nav li.active a", 0x1130); + TestSelectorSpecificity("body.ie7 .col_3 h2 ~ h2", 0x0230); + TestSelectorSpecificity("#footer *:not(nav) li", 0x1020); + TestSelectorSpecificity("ul > li ul li ol li:first-letter", 0x0070); + } + } +} diff --git a/Tests/Svg.UnitTests/Properties/AssemblyInfo.cs b/Tests/Svg.UnitTests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d55fff5 --- /dev/null +++ b/Tests/Svg.UnitTests/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Svg.UnitTests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Svg.UnitTests")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6ab1d266-f201-46c0-9d14-523768eb18db")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/Svg.UnitTests/Svg.UnitTests.csproj b/Tests/Svg.UnitTests/Svg.UnitTests.csproj new file mode 100644 index 0000000..0cfcb0b --- /dev/null +++ b/Tests/Svg.UnitTests/Svg.UnitTests.csproj @@ -0,0 +1,68 @@ + + + + Debug + AnyCPU + + + 2.0 + {E702EB7D-D01D-438A-BADD-E72D4E49109F} + Library + Properties + Svg.UnitTests + Svg.UnitTests + v4.0 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + 3.5 + + + + + + + + False + + + + + + + + + {886A98C5-37C0-4E8B-885E-30C1D2F98B47} + Svg + + + + + \ No newline at end of file diff --git a/Tests/SvgW3CTestRunner/Program.cs b/Tests/SvgW3CTestRunner/Program.cs new file mode 100644 index 0000000..6238c0a --- /dev/null +++ b/Tests/SvgW3CTestRunner/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace SvgW3CTestRunner +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new View()); + } + } +} diff --git a/Tests/SvgW3CTestRunner/Properties/AssemblyInfo.cs b/Tests/SvgW3CTestRunner/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ed10e58 --- /dev/null +++ b/Tests/SvgW3CTestRunner/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("SvgW3CTestRunner")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("SvgW3CTestRunner")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("bf75ea0d-e099-432c-bad5-7fd6cf53d5ee")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/SvgW3CTestRunner/Properties/Resources.Designer.cs b/Tests/SvgW3CTestRunner/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7b83c29 --- /dev/null +++ b/Tests/SvgW3CTestRunner/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SvgW3CTestRunner.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SvgW3CTestRunner.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Tests/SvgW3CTestRunner/Properties/Resources.resx b/Tests/SvgW3CTestRunner/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Tests/SvgW3CTestRunner/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tests/SvgW3CTestRunner/Properties/Settings.Designer.cs b/Tests/SvgW3CTestRunner/Properties/Settings.Designer.cs new file mode 100644 index 0000000..5fef991 --- /dev/null +++ b/Tests/SvgW3CTestRunner/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SvgW3CTestRunner.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Tests/SvgW3CTestRunner/Properties/Settings.settings b/Tests/SvgW3CTestRunner/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Tests/SvgW3CTestRunner/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tests/SvgW3CTestRunner/SvgW3CTestRunner.csproj b/Tests/SvgW3CTestRunner/SvgW3CTestRunner.csproj new file mode 100644 index 0000000..917b8db --- /dev/null +++ b/Tests/SvgW3CTestRunner/SvgW3CTestRunner.csproj @@ -0,0 +1,91 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {8ED74C39-6CFF-421E-952A-30F9E6957108} + WinExe + Properties + SvgW3CTestRunner + SvgW3CTestRunner + v3.5 + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + Form + + + View.cs + + + + + View.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {886A98C5-37C0-4E8B-885E-30C1D2F98B47} + Svg + + + + + \ No newline at end of file diff --git a/Tests/SvgW3CTestRunner/View.Designer.cs b/Tests/SvgW3CTestRunner/View.Designer.cs new file mode 100644 index 0000000..bd05a78 --- /dev/null +++ b/Tests/SvgW3CTestRunner/View.Designer.cs @@ -0,0 +1,197 @@ +namespace SvgW3CTestRunner +{ + partial class View + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lstFiles = new System.Windows.Forms.ListBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.splitContainer1 = new System.Windows.Forms.SplitContainer(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.picSvg = new System.Windows.Forms.PictureBox(); + this.picPng = new System.Windows.Forms.PictureBox(); + this.tableLayoutPanel1.SuspendLayout(); + this.splitContainer1.Panel1.SuspendLayout(); + this.splitContainer1.Panel2.SuspendLayout(); + this.splitContainer1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picSvg)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPng)).BeginInit(); + this.SuspendLayout(); + // + // lstFiles + // + this.lstFiles.Dock = System.Windows.Forms.DockStyle.Fill; + this.lstFiles.FormattingEnabled = true; + this.lstFiles.Location = new System.Drawing.Point(3, 3); + this.lstFiles.Name = "lstFiles"; + this.lstFiles.Size = new System.Drawing.Size(144, 376); + this.lstFiles.TabIndex = 0; + this.lstFiles.SelectedIndexChanged += new System.EventHandler(this.lstFiles_SelectedIndexChanged); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.splitContainer1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.lstFiles, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(977, 382); + this.tableLayoutPanel1.TabIndex = 1; + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point(153, 3); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add(this.tableLayoutPanel2); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add(this.tableLayoutPanel3); + this.splitContainer1.Size = new System.Drawing.Size(821, 376); + this.splitContainer1.SplitterDistance = 424; + this.splitContainer1.TabIndex = 0; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 1; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.picSvg, 0, 1); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 2; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(424, 376); + this.tableLayoutPanel2.TabIndex = 0; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 1; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Controls.Add(this.picPng, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.label2, 0, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 2; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(393, 376); + this.tableLayoutPanel3.TabIndex = 0; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(67, 13); + this.label1.TabIndex = 0; + this.label1.Text = "SVG Render"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(3, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(68, 13); + this.label2.TabIndex = 0; + this.label2.Text = "PNG Render"; + // + // picSvg + // + this.picSvg.BackColor = System.Drawing.Color.White; + this.picSvg.Dock = System.Windows.Forms.DockStyle.Fill; + this.picSvg.Location = new System.Drawing.Point(0, 13); + this.picSvg.Margin = new System.Windows.Forms.Padding(0); + this.picSvg.Name = "picSvg"; + this.picSvg.Size = new System.Drawing.Size(424, 363); + this.picSvg.TabIndex = 1; + this.picSvg.TabStop = false; + // + // picPng + // + this.picPng.BackColor = System.Drawing.Color.White; + this.picPng.Dock = System.Windows.Forms.DockStyle.Fill; + this.picPng.Location = new System.Drawing.Point(0, 13); + this.picPng.Margin = new System.Windows.Forms.Padding(0); + this.picPng.Name = "picPng"; + this.picPng.Size = new System.Drawing.Size(393, 363); + this.picPng.TabIndex = 2; + this.picPng.TabStop = false; + // + // frmView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(977, 382); + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "frmView"; + this.Text = "Form1"; + this.tableLayoutPanel1.ResumeLayout(false); + this.splitContainer1.Panel1.ResumeLayout(false); + this.splitContainer1.Panel2.ResumeLayout(false); + this.splitContainer1.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picSvg)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.picPng)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListBox lstFiles; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox picSvg; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.PictureBox picPng; + private System.Windows.Forms.Label label2; + } +} + diff --git a/Tests/SvgW3CTestRunner/View.cs b/Tests/SvgW3CTestRunner/View.cs new file mode 100644 index 0000000..786325f --- /dev/null +++ b/Tests/SvgW3CTestRunner/View.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.Drawing; +using System.IO; +using Svg; + +namespace SvgW3CTestRunner +{ + public partial class View : Form + { + private const string _svgBasePath = @"..\..\..\W3CTestSuite\svg\"; + private const string _pngBasePath = @"..\..\..\W3CTestSuite\png\"; + + public View() + { + InitializeComponent(); + // ignore tests pertaining to javascript or xml reading + var files = (from f in (from g in Directory.GetFiles(_svgBasePath) + select Path.GetFileName(g)) + where !f.StartsWith("animate-") && !f.StartsWith("conform-viewer") && + !f.Contains("-dom-") && !f.StartsWith("linking-") && !f.StartsWith("interact-") + orderby f + select (object)f); + lstFiles.Items.AddRange(files.ToArray()); + } + + private void lstFiles_SelectedIndexChanged(object sender, EventArgs e) + { + var fileName = lstFiles.SelectedItem.ToString(); + var doc = SvgDocument.Open(_svgBasePath + fileName); + picSvg.Image = doc.Draw(); + var png = Image.FromFile(_pngBasePath + Path.GetFileNameWithoutExtension(fileName) + ".png"); + picPng.Image = png; + } + } +} diff --git a/Tests/SvgW3CTestRunner/View.resx b/Tests/SvgW3CTestRunner/View.resx new file mode 100644 index 0000000..7080a7d --- /dev/null +++ b/Tests/SvgW3CTestRunner/View.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/20x20.png b/Tests/W3CTestSuite/images/20x20.png new file mode 100644 index 0000000000000000000000000000000000000000..32399c62188a818977bb488d430ce1b8231c8ce2 GIT binary patch literal 1038 zcmV+p1o8WcP)004R=004l4008;_004mI004C^008P=0026d000+nY2?H!000A- zNkl`S14e)y=d)W6-yvemt$&9Rop zrHQ|qez}lwvxa1>dRC@yNS|Xnm{=~7O#pQy0tlq}2UzEmk1uY%x_9RB<^6Y#Z-nSP zwzTuWtlFLZg_~NFS67BE1?!v%)aj$x?F7^a5I`W!?|?c#ytwh|-s#7e_uW3e@yedX zXEy+KcI=-C)LF2pC3y`{XRiCaWUCqBx*(m7VyzZHjQ{}z(hSyl_w?gSd+!|IaAo)6 zGwY`wUDB~{X7!G~{EaP1Ks%QJbtYNP2-lei*4bjgQ>PEq2oOLZ&DUSvJq6Tx``G#` zyB3{UKjr9>_I)#IfI2rdC#|jsS(58EFVS*(n9c-m`EEzi7IW@8edY>vphkcI0%<<= z=+d6sM}ayQo?SQP=pvxb>g~OG8=DeWm4__JahscHF+EfpsI$vKq{WP@P7kEBNC~JB zAb>!cci%d??#iwOXVy(V0@OLZ3am3>b$RfTY}dI7V4YqNo!mg3v7CV0wq+6x2itkq+J=**F2$dCkT z1PCCI=J`OKM;5j1omL6f84uR!G6$qnv)@y;(@v<_l(SYBq_a=~q%&QLAxRvl5g>p- znkOD!*b3H}1J)V1ILmoXyxFv1gw7gW#&T7LA_azQh)xNHSTUeRfB*t%ZrL-nVq164 z`i8ibr2&hwoaV%tf^>SwKy~Ucm8mim0$nS^kS+!cfjYC-H^iC_}IagP#acBR~LwG{*q#T$tfFJH}*c zpjw|BP^UnnF-NsFLn+u!EILIQJV7=C1Q1BG-=YkMSuw^?oi+kZ#_ZMFjKE9>v@;7? zC)l+hogxe_Ae#XK2&CD5c8t-~0M%YsDWJ|qBlc=7kVHOEr!+&VBtwD(Lp0dVAW;Ti zQ3emNPJ3aX8h`)-X*QbduiED-*>26>Xv7B8Spv~1!;mV$kRT4zDZ=0@0@CRW)@daK z)CdqjAk8YhAf0>-hDbW4QFX%XgzGdB1Zo5bAO=c`A%Fk_05s;Q0%>J(g#Z8m07*qo IM6N<$g3jE^w*UYD literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/50x50-viewbox-greencircle.svg b/Tests/W3CTestSuite/images/50x50-viewbox-greencircle.svg new file mode 100644 index 0000000..306c52e --- /dev/null +++ b/Tests/W3CTestSuite/images/50x50-viewbox-greencircle.svg @@ -0,0 +1,5 @@ + + + + diff --git a/Tests/W3CTestSuite/images/50x50greencircle.svg b/Tests/W3CTestSuite/images/50x50greencircle.svg new file mode 100644 index 0000000..cc7aa04 --- /dev/null +++ b/Tests/W3CTestSuite/images/50x50greencircle.svg @@ -0,0 +1,5 @@ + + + + diff --git a/Tests/W3CTestSuite/images/DisplaceChecker.png b/Tests/W3CTestSuite/images/DisplaceChecker.png new file mode 100644 index 0000000000000000000000000000000000000000..25c77d0a9d4f9b6cf50da1e8977319aa2b181f4c GIT binary patch literal 2470 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLm}Q;1=TJ~<3pC(zGhpCYaFGYdFc~0*f?JSj&pLg1(|U`U`~nV(O%G^D zTx3vaa5ElAhJ^d|>A--R1PrJJ7o`$JdNLS*Zj&5P#&_nPS@w%YU4$0plJ;|yaa?KmnAMk`(G6*LxZMYGklX_CXw8pz)!~XsE z{R_l;B%iO@S+Mxi#d|k1W1jAhOum0pYrW6>o9eGz=B2dXkDg=peCAH+`yAT7-d7m? zpD=neuC5Ya_iW0gUZXDEgTe~DWM4fgQ!vM literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi0g02.png b/Tests/W3CTestSuite/images/PngSuite/basi0g02.png new file mode 100644 index 0000000000000000000000000000000000000000..ce09821ef101b65b2aa653931416c72923ccab09 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk`Bp9=o@yY{fmUKs7M+U~W1%@xC#RK_)o-U3d z6?2jUl3pY*JS=M4oiJze;et03Q>IK~Gc?O{N#DFKJ@&l7SH)M%%o7ftVn}g$DCX>; zkRs^i5p-N&*DHI8!;%tAJO+*|%*(hAE|_G=Fej+Nw{_diTA<+!p00i_>zopr0NF1v AeE`KLv!pxvIx;Y}EiimBEgr~U=jq}Y zQZXmBFHrE1fq;v+j0h02$h25#lnT63xZ-%g@gNW$aGWTh62d&wbH=%|b$8yp-97vE z;Z29Oxt6;AKCTefnOkLOe zceV31xk&buuP3aOvK_8v?mNu>)5yI*ti8x;zv2JpMH=2qx2(%fUX!Y@wwPzh+iJE; se9X+5d(#!(S{O|*V`01GC)_Bn-uQauWnXqNpvxINUHx3vIVCg!0H8fu|I&j2dyvG3;`TGSdQ=U^x!+b$IgQ- z%948O0A52IVpokMw|y20kXn4P1fk&um!5HR4i(o|AwZ6~LzrfePT$2C@a*GO>pzD`W+JMY+o{~OMQc&lm=3iqj(vZoAg56v)&@pF xpiv;U26q|-VrxJe1@ZNXf_(7)M8WX7;00Eg?uiut|NZ~~002ovPDHLkV1i{YdSU?-TFZBK`N@L-n zZIKuYb8U;nSX9Mrl^A36r{K12&k3mj^Z%lhjX;s*Jg960iexztW-CxinU-MA*#;OZ zngOW30HtIErtRT^u_8M_CF3kj<3j{vMRtJ6I<2P3n{$R*t1rNmk`0g=AU|E-;g=04 zMQ4L1&-<_M{L=v}5QRU_7&y#fp@D&gr9M`8f1y92FoiBVSa`IsurPtS ze{e7d3sdH>SD>hoE4z_nx$z0??7UgMea|aJNhAr@Zvg8Z*gUmKePu;z>y8jWkvlsq z1W-(qZPlsA;>PQ-xbb>e=+HyjR`72RpJL@9duyYiw{L8ondoV1Dstk)`yNe2E|Tn) zQn&|5Z4$O-o8S$zjgb_v!ImC3RAHrGc4#Vv!)L8;XfO3ToGLXjk#F*79m4!RxgIe_tfnTuJcqEWy)4g2yKb%DDu0za_YxN$~Sgf+CmT>X!ubOoF_W z03=B5#`sg62L3e6{2RJyFI>13c>MtF{pl)#xkJ@t(o7&`wRIOmYhI*_#{U5rtXn@HNfb7oz6Bu5!i$}Tx-z(a!?=gYPiFWah6BvhR7Y~@g_(Z#S%LK+P h+Qpp-{6C^y{2ine-m~8mME3vy002ovPDHLkV1lO|5~BbB literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi3p01.png b/Tests/W3CTestSuite/images/PngSuite/basi3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..00a7cea6c2d3c36627718a502eb14c812b0b7c46 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnL%)r2CxA}%5ki(Mh=>-dBi{f3 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi3p02.png b/Tests/W3CTestSuite/images/PngSuite/basi3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..bb16b44b30907b832b678a3b441278df340edb9f GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnH%)r1{DZJ<-ki(Mh=EaktF(C3l8oA>Me*wxTz-(}y$c;d$?hLjJF#hg79QUtv`g1+0Ah)O6+%y3%0 kK!=4{>!bX^1(PfpwnWvwlrMbmdKI;Vst08#Hgh5!Hn literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi3p04.png b/Tests/W3CTestSuite/images/PngSuite/basi3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e888e2477d4fbaa3c8ed16a8007d40e58cd52c GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF%)r3-EjT<7$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Hz$e62iQzxP|Nk8f|CRnTFwFe_KaJro!~b%i7*N6gnRh{q-T!wp zFt`9&E|)fV?gff(^K@|xshE@eVr8<$zX=QdragS9+NR;%b~IQ*M^<9l2E!vd+h?C( zII@q&;mi?+BR6^0F7JwWQfc53?9iD|$he5*L_qV3*BrK+SKaw>*N06*_XNYzScwH+ zV%a3lGAx}cv7khXdCI+B1NO@fK9ddC9@xTtImqX>;oQaofA@?RGmTe=O`R?+y}#PL zSZx`DR(OCwFvHZ>kD4?aPVKE04`%2+-2h~U1|1S{c)Dz9BG-bV^7qFC7#KE}y~^Mz Rxc~|Y22WQ%mvv4FO#pr5f6M>? literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi3p08.png b/Tests/W3CTestSuite/images/PngSuite/basi3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..50a6d1cac7a111d53cd3aec0d35dc4d09311baab GIT binary patch literal 1527 zcmWkt4Nw$y6n}dd;vwQ8DFIG$3@GI2c^hLQV*{=V2t>jrDk_FvDg&7$%b-@G;h|=k zpdN>Gek8Jdh#y$4REHQNu9O-n$@*~yld0Q~CgKPCdUtQ`_P_uC|GnSGdsmv8GRH?B zs0RR_gm`WqJ;%AfULF7pdq_&9mmwd-CdUF(;+S%8&r$#nNKHzgW#r%qssai!qCpSQ z0vL_7LIcnOu#UGNg#{Tj`hkLY32hvQ!1G1`Sw@Zn9(h>?HW2Wkq9XR7jEce`M@cLI zX9QKH0)U4(L{U}UX&T}n(htKT%SQskpw)^XiVOoBfYl1vBTI|Gh(?PU5N)D}JkUAF z*+A4fQ52$qu$3IJkUnIraqtk890gF3fMr1iHJ=i#wnVy*0swAiP?EIuK(HVK+H9oK zO8az3*a`*`R}fi5uu;&5F%xGAi8P7`R6^54fJ7UmSdgp%+jcbYbn0eLh5#4{O2a|z zFlncK3j#}*c@!wwN`=4x0@Wv9Pz46?iR#Xv1EQkRnl2%Lup5n_C@hN_Xp)3BL=u!O zgCs#6RU@v*uGicWd7h||*~k+*SQG^)HX|blsFAzW2%aZ!O(VrJ31D;t3x3pAg5Wqi zve-$Qc$9#ED~5p_E`A&DTySs_gXBPgvEi4GHiIsCXqG@a(*{? zqG+gzY2=omW89DcEUHMQNrOtO^VViET%@j9XuK5ipN55EJB^!6bHJ02)DH{^ z28HH;T8~zS28YEnJAZp0KzA^Ki%l=ATyc3-rZ)t5_Dwa^e3e*sHMuT3A|j#p=*X*F z#y0Vd=-McX6_VY&k>*>Z%e|vX1^&KXtnjHm_kp z{Oz$(O(8S=UuD^|XKQO8JeWScy}iAy&FQ@UT~n0V9QLiaO{Ytot3K50Bj4!g*tp@* zcGj*hPH>pOmLs;xabA)>UnI5F|W2|vHO`X8G8{qNq5UvQ>+yva2AorH*qN%N=1 zRO-F+*Y4O692_0}_3qrW zV_8*GU40<7^H$aV#hJ=gqrL3swI3}rKihD;tJ~gc@LGOoZ}}hHIjh6Ni;61tbzVDC zEf)+M(cfo^N={x^khe0+l%Bp^o)#S#*w$83a{u1Ivl?+Wcj0ty-sn>0W|&`1nH z58GA$jXh^Y`JN;7H@hZGKGv`#E%e2gv6o*jI5)Y=Gw4px%OQatp)Q!Xsl()5;fH&w40HKUbx zj4}D7oEu&UXI&wcy60YxT`|F*cQ@)MIhQzY_v!Om7VgvKXAK=bq{#ES%PVuszm5L= z&bJ*WO#!E!Apy*TI{`1@hW^84hM29NG>%Pa9pm_Xjc<61X<)<)m$})aVkqnKe7Wgq z-l@|1T-)pTTjSfo?;6Ga8{R(IDkmelNXRj)ZH9oA|PM{kg$m&gMT07S3iqx$gt>#1~b*D~%?ISJ;?`E{!%Qxx!#mpQpGpa(A8H z_iZ|MVh@5=q!mUuvSsYMxvKp95>weV2Kff8ej5&Q`t30L(azh))$_*RmQyw|G#2PE N22WQ%mvv4FO#oeUP~QLm literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi4a16.png b/Tests/W3CTestSuite/images/PngSuite/basi4a16.png new file mode 100644 index 0000000000000000000000000000000000000000..51192e731106e77cec52a3acda3d0c3cd54a16d5 GIT binary patch literal 2855 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 FV1na*GhqM# literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi6a08.png b/Tests/W3CTestSuite/images/PngSuite/basi6a08.png new file mode 100644 index 0000000000000000000000000000000000000000..aecb32e0d9e347ccdcab5d7fdad2dde7aef9da8a GIT binary patch literal 361 zcmV-v0ha!WP)!N7@Xl>n0JWRT0P1ZZ0~F7IAF8qd>UAgssMo0sP&xyjf=W~LX-;!O00000NkvXX Hu0mjfr8|%> literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basi6a16.png b/Tests/W3CTestSuite/images/PngSuite/basi6a16.png new file mode 100644 index 0000000000000000000000000000000000000000..4181533ad81b739fb7b4f3b024f632cd7baa85c5 GIT binary patch literal 4180 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 e|1a9-z<&T43-3ulno0000c;6;z7cmE{-7; zb9B#azopr0C;FL=l}o! literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn0g02.png b/Tests/W3CTestSuite/images/PngSuite/basn0g02.png new file mode 100644 index 0000000000000000000000000000000000000000..508332418fa86637d39e95268ec1d3658d120cae GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk`Bp75C+I9jdmUKs7M+U~W1%@xC#RK{Bo-U3d z6?2jkIAXub_k1+y2sp$L+}6)%%qgEdVJADoUeEf*ZqCk?AR|0o{an^LB{Ts5miHSU literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn0g04.png b/Tests/W3CTestSuite/images/PngSuite/basn0g04.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf3687863d8a1f53bef0aa24b841b21b0e04d9e GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk^Bp4c;6;(>fePZ!6K ziaE(C2`UUC949vOu(I~>b7=nfE^nVuX&@tFa7u7Oddi~87#=p(p8gM~{{27yqy1T- hp#)Io!PL|g7KVVQ{|ZeX-G~HP;_2$=vd$@?2>|oDDeM3M literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn0g16.png b/Tests/W3CTestSuite/images/PngSuite/basn0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c82f78eb954be5be51c35bd287e00018c69d82 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq>1BpBEle`W(ImUKs7M+U~W1%@xC#RK_qo-U3d z6?3j$GUPg7z~dZf8U4Qg*qsHF4`@^yUDaY)e6!!)qG9=taAD!(1y)T7vK%uR?lygM zIK}cp><*ign#1-5wiApPcd>47oWOZOH-mqPPlA0u`y2l+k{0Ld8N_aQ--utQJ^wn$ N1)i>cF6*2UngAzTID!BG literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn2c08.png b/Tests/W3CTestSuite/images/PngSuite/basn2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..db5ad15865f56e48e4bae5b43661d2dbc4e847e3 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WSkfJR9T^zg78t&m77yfmc)B=- zRLpsM^&lsM0S}Wy>zj#xw-*UpyJ&w|_~YC|?Jc}4)(u=DKV%lXeNyXF;n2v$@6|4U rsD)ibtrx; literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn2c16.png b/Tests/W3CTestSuite/images/PngSuite/basn2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..50c1cb91a0171e9f34991b079fe932f5f0bb16d6 GIT binary patch literal 302 zcmV+}0nz@6P)NTxus~-YE?|ew94KIo9tHTv?hhRR zwrA%J^h9UxCeRmyPjW#d?oxNFL9(uFDZ1gBle+D$rIj`J+5;}Xa zfF63WfGT3xy1iYa$zve>zUI)9x>;M1&07*qoM6N<$g8PGj A5dZ)H literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn3p01.png b/Tests/W3CTestSuite/images/PngSuite/basn3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..b145c2b8eff1f4298e540bfae5c1351d015a3592 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnL3?x0byx0z;SkfJR9T^zg78t&m77ygJ1^9%x zzWcAFl=eSI>XI5zMAXy8F{ENn@&k4zHj_up0tD0@h%3W?AY}Lt#0>va?X`CSX(dk=$B>FS$v@Vz>816FsF9(VN75txh7sS~8e>Vez z3y|e3}y1F=z>r=LEEca@LnZf*~BA0ROZ5~$d#4)lIa>n+tGAx#s~NCh;!h=Q?&7t5~~Lk>mL*|1x+L`Ivp6mn?kJ^kK$c6a~%|NrOteLPR)ru^*4 zh?oc>ipx)wHw!xP<||VqG2mh2yNQ1IZKr30Xr(I7PBXU z(o_;ftk^?X5O*qmM)+A^aUR*s!>r3PlcI=3mc_D63M-aHQVj83+hHDKi)~wG8A%eb zMRFVzAa0kL4aW(lxy(-(A3@r7{KRdCcI^9^ zBwSWlMY4uMp(p@%T`0C7K$rnonuoRmLY9xP#5bTx(RKJi zCYfG^*s^*-{Ro^e4Kgw{Dlmv)JpjQ5bKwF@CLI|%59=nhA>e#HJh5GNjRLr(&Jco- zL=roU($L^w70~)&xPh+uFV&-K!K0w3W-9Hy@g@HWXL3ML4|%5ULen8 zlT@|D2@;VI*iada4446_ptp_#Sul*Cx7Y6>PlSiq8TyN-q=y}cXZX&@20)p=ihIP{CfA$Z*4W@ zEr$zzJ<~t_(0G1&!T9U{_Iz>DPFy@Dgq4(i*+1}U*ZiG1m)32#<4sRFJ5!AP>yZ}L zzdq~5lB&|C6*=qgy?nj!is#SN$*Gwo6M?qJgKJtd1_tvb_xS3qJuRh&eH)f1f0J@< z)4uq(Z_li{H~+s=+3L-xjU7X)ZvEUC-CLA+t^7d7$jI)tsK~;c&XdnBOC5Txp}1)@ zusm-vWl2G`{dnN}K>pDE=;yi{rVB@Y3B-HrtGOePxNz#}j}FD`z3|nlwikX+ZZ56= zAY&lKTUG9w&2^VN89D}o5=^>%~&6ID5>`0fk%7K&zZcY&F#znJTW|E zB5&cFwM~ly35&;HdZq5*>W9rM<&V4Wr%mNt{B`@CxYpR8I;^7!?Tc=wu6t&Du2Ec< zKIiz-xXN3dttqGahAW20Qo6MzgSk7e_{!(?CKyw`*?j|NY=7wG%F`JaWZ(VOm8CUr z$$no_)1uMK%W6)nN!IrL6EB>puUj#i+1xg}<&qUPnY6#j4&NW^MpZNn{t+Cq+^l@L JEAySt{s-!kV`~5a literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn4a08.png b/Tests/W3CTestSuite/images/PngSuite/basn4a08.png new file mode 100644 index 0000000000000000000000000000000000000000..3e13052201c9f8b90172ea2491b18d6d121c2786 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtq=#3k+XOiwE*eJzX3_ zD&{2rIe*{)W9ys@6GNprI`<_tn04&i_AxF_G>~EoF-$NKa6jCj#n!|2C_^IPFayJV XErr@6uUk(54Pfwe^>bP0l+XkK+-D@M literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/basn4a16.png b/Tests/W3CTestSuite/images/PngSuite/basn4a16.png new file mode 100644 index 0000000000000000000000000000000000000000..8243644d0743ebd1fdacb7923069fefbb01dab0e GIT binary patch literal 2206 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 AY5)KL literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bgai4a08.png b/Tests/W3CTestSuite/images/PngSuite/bgai4a08.png new file mode 100644 index 0000000000000000000000000000000000000000..398132be5faadf83e159ac59c212213bcd43a894 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE!oa||uB7QDki(Mh=l@|1T-)pTTjSfo?;6Ga8{R(IDkmelNXRj)ZH9oA|PM{kg$m&gMT07S3iqx$gt>#1~b*D~%?ISJ;?`E{!%Qxx!#mpQpGpa(A8H z_iZ|MVh@5=q!mUuvSsYMxvKp95>weV2Kff8ej5&Q`t30L(azh))$_*RmQyw|G#2PE N22WQ%mvv4FO#oeUP~QLm literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bgai4a16.png b/Tests/W3CTestSuite/images/PngSuite/bgai4a16.png new file mode 100644 index 0000000000000000000000000000000000000000..51192e731106e77cec52a3acda3d0c3cd54a16d5 GIT binary patch literal 2855 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 FV1na*GhqM# literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bgan6a08.png b/Tests/W3CTestSuite/images/PngSuite/bgan6a08.png new file mode 100644 index 0000000000000000000000000000000000000000..e6087387639b9cefaaafb696e29a8bd910ee0680 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+U~W1%@xC#RK{Io-U3d z6?5KRGvsP8;BkAXo|56e@Vk8|OTXfgyGLCsWP@G=X#A1))wtQkXb@LjH|PH@<7U}X zR(Ix8Y%6~9Ml4|WGnG@SZHQ?Kc`Uubi9hC!9z&%<$E5#{7BHGEsCHnVVk5wElR+}T f%%Pr9`U69dg47%_{vAF*s~J39{an^LB{Ts5$SFGl literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bgan6a16.png b/Tests/W3CTestSuite/images/PngSuite/bgan6a16.png new file mode 100644 index 0000000000000000000000000000000000000000..984a99525f5246cbc5d7083dd79006c7efa0ab0b GIT binary patch literal 3435 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 AY5)KL literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bgbn4a08.png b/Tests/W3CTestSuite/images/PngSuite/bgbn4a08.png new file mode 100644 index 0000000000000000000000000000000000000000..7cbefc3bff08a9d91666d6b0f8b5cb1c896b7987 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UEa{HEjtq=#3k+XOiwE+VlDyqr z7#LRdDjNZLrk*a2Ar*6y|C~Q?fU$K>hKZrl9G&};8q7NOZTlD(CmKkxg%~E72)G|^ k&|>Rhdz2v&aF~JNzLrAmk=Ly!fCeyly85}Sb4q9e08Xzba{vGU literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bggn4a16.png b/Tests/W3CTestSuite/images/PngSuite/bggn4a16.png new file mode 100644 index 0000000000000000000000000000000000000000..13fd85ba193369dbd84a0dc07f73d3340485fa6a GIT binary patch literal 2220 zcmV;d2vhfoP))?Z7@1GU()&K|^FGh>0bpfeScg5Q zVAO&a&cd+)IQ~b-4#C+!!^K_j-evgc3Haw<;qG2ozb?Ob_sZEvPslSDcgg=`hvYMk z4ajGXTJjykx_l>qW@VvfTe+?o@D-uE0$LFQyCHB0^d^MfhURr>7s1nDV+1ouL#<%toKz$mb>Sfw9$NoD zuRm}G@SOqQg}(RtLucx>YCvShv8{A1qgh$$yvv2EVP$$}{d$u=YBv+<<$> zz}W)TgRndc{U;qe;zHjHm@&lxtq9sLq;uaKEX`V3-=m=IgJ2Bwy%W850@T-__AjWmVEHyI&BE5vnjOu6RR!~1=)I3XU^n=GCa`N` z;CmDn3z4kv4ER5Q;0hQe2%muUIyBz`Zv{55N&()8oUQv|^#s&Q;Jg6KM`6i?#R3eZ z9lJjPkqnrxK)47!^9q5$AqbRZ=Ke3GbKe=Lm{wMcLvRp`K?o0mH3*GCXzzi}pcK$9 zL8Am~C8+-$oDwXT;6Ej(lp$8H*;_w@XaM?lK=@nenE~T33IV+d`W_*ieo zO65pa(?Hjuw-+o6To+m`=yarjR!h$6b*NThX$dM7D3xI_?${64p??Cb3WR?RJ!vqC z5Sms9gx-eGE@69UQDz=okTDWGOUB@SPF0`qa$JzcYho`!)75RHPl z0=;Pn{Q>l6Aovdm6v2NV0Z)VWYa%kO4`tQX>q0oo64?7{V3c7l9?3=$Fr0u!LJC;C z2LHYdbGKn{*|B#%3EM1)rol9!rw*Ys=wlH0IryIke-SiKA+Rw58`nhPywkGh&9{W@ zt}8R&vQ0XVB;e|8D;wVrKRqf1e0~nDz7GcyHG5YXVy7T_7s5ke7@&U#!B@e55VYf< z-GuHL=)R>8=sXJ@L*#Yiu!xMeBCFPF3E|vPfqggu@%?b_d?Y(QE(M%B4==yu*pHWC zpbXYD7_*=+Kp+7A1<=yay<3UhFGc=+?4Mpnn7YQ=m5Rv)f6IrzbiJJX*S!NE>`GEvny$wzr zcK+&nYq$+UdC*^jKvS(@O0A(|ON?rTRG9FTrJfLDsa8c^7d{q|*;{t(U5f4cH&VdB zKIzm|r1R#46x<$$Mgv?E+`KZQHzT}wcx9w z?OlokT3+@%loz&}1(|uXAf0#8(okm}W>PYu^r);W8@8JR^Rt9T!*Y8c_vY7KIBmWzUV9!uD`ZX5KDJ=baoZPeI3qP6{?` z`0=l1jx86($c$r0QtHO?uFCB*D!mpZ!v%_xWV+QwwyP)w_>!XS{*)+OFe!U(B!%s* zl+4^qO6Qw1;G|$Pt2kg~YZ)socQrF6H=--;jDE40000rKjw}eL#0B;r2mf= uFq$o>c3_`kBfxT#K{CM1p`KCt14EF4)EqJX9X>#-89ZJ6T-G@yGywoV#zE8o literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/bgyn6a16.png b/Tests/W3CTestSuite/images/PngSuite/bgyn6a16.png new file mode 100644 index 0000000000000000000000000000000000000000..ae3e9be58a823cf7c6535b1cadd96c45f15cca8b GIT binary patch literal 3453 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 TFaLS`e*&EE@`;w61 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ccwn2c08.png b/Tests/W3CTestSuite/images/PngSuite/ccwn2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..47c24817b79c1e2df8eb3f4fe43798f249a063d6 GIT binary patch literal 1514 zcmV004R>004l5008;`004mK004C`008P>0026e000+ooVrmw000Gb zNkl1!`#jIX%gn1pggd$P9Zd(E8@>1o|NOaq`y>7F!|ZsTJzwK126G#Ly6%XM z@b-^5>QWhU%dqD1!_57RBTumVe+8~Hq9eTb8gGRJAwh?*OV}a2z_~^C|CZMU`+s$C zf=f^GMjIPqJ*EzYFsfNGT)Lap?PPm7_!7VJ=-g%pukx;sAJU$c-=j0zF+ofa5q!)a ze#6rhquT+FvGf6bpLReH((V#=343&VbR#+uVMHe)7;@qr4%Ccq1-RxEz0QX|?KUbv zg-D3?a5PfW@#w_lF{X>|p$bm?jc2~d`wI6~f#a;6WITuOqXKjXI#{2ULDi%_otUzR z>7gTt5je5J^Sd~Dle2ye@C#0R_#V2AZlgm~2OH2hsG43tH)a~4d#D*O2R?ta&G)tW z>8Ar@roZFTCSclIO*Ag1ArI+AG!Z7+1hzr17QOyU)Mwc7+NS`==$DuP*T?vqO>|IQ ztcPnUI`m>BLib<}*@i@om~~+l){c| zVM7=SBVi=G`3mjN^Uzb*0scX@ir!A!MZ4%0+DG}A03D)xh@t5bN9Y)dtvG|t!e{A2 zVJr-VH(rqM{a!t^`;)+*NnHXL-9oj{tt~?bm>$Z7h&)1VrgJrYXc=0@ma%1G8KuoD z&+_AUoChDj1~`crIu6P~xu_ZAq5Z4pRfm`!Wn^(jTpi2MGMYsT(bw1_m z-{DWcW?RoW2Sx1%q6`?p5#3d|Bp`vxK|FMT+rjJ7PN`Fx6q_I^ zHsSO@o_kdt`-!tWMURz18H)xjXp0u5EYvg!dKD%@(vVc71xZelk*1^>Sw>ormt<42 zhFmB#g+t{FiXi4}-?><#$4U#@DlI4r4PvoVssT2+X;jvbP04Gr zio7B#DN2fhGApO!Ash15FNBNxItO+uXX|?4s1n(L1}xIhR7?x<%j`IhKSXD!3`rZZ zhRl*T6jO>R>MU|4RaMv=y0F$9} zR4$TPn>VItC~Z@fNxj~;XU>`>Z{Pj*Eq?Q{1ADY{!yAorm%^@LYwChBA?vgK9NhuV zEWJQVYm2(9vPpCPqMTgf?}Pc|ffx6F>Cg}2g?nz4y9M0qW3N!>6l2^z@iOrMH$#`G zQl@pW(kx$*<@%1VVyS645OM(au{s2+Lb!Cm*v-(Kz~fjhVU4fw3PM64Z& QC;$Ke07*qoM6N<$g6Hha`2YX_ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ccwn3p08.png b/Tests/W3CTestSuite/images/PngSuite/ccwn3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..8bb2c10981594a83b7a8981436225d0b2241d27b GIT binary patch literal 1554 zcmWkudo+{@9Q~wiYbxpxyQH*PvQk+jg_3M0kMUetMjk0^ibC6FT8+ng>|mu<;>-?$ zm5gBE76za z`V2rL-V2)_s6XvdI|05qg3CyUFdEKU;xM`LGPZ>qA>#tN;_w)^vQv<0j}{EP(no$i z`mo0!AQSgK>Bh#O1Uo1c%9qgC08SDbT*Rc~7NA^cjuaHHr)sr@p!{AFnbKlF+h0Dke2lZ=BJFa3_1Pd-&6R(7q2>7?e`@` z2+zSi67nJu@aa}f)U3dTH8`j}NbZC|_wRhnwqpDkdIZnq^Mw#AAXh1rk|hC1a$`e# zV-YlQO+>2x#2+~ArqX?p(+hMM6oVzgAuTW+d5|lVcJnG(%P3BD)?#ZSHf%!Zby(CP zbrt$P!C~!psuiF|p!y)PNs5DXbQ*5lJ!*k+RpmZhEtn@Gs0a|;pZ zu~mOaE5qA45~jygEACV%-f(amkFH*arp)TM<_{!(td=Z&Rf=QC&qd6qVjPAfD<3nC zh_J^_V+ezxPwstYijw1t$B&EU&4{COWt zVR8e2Z{dXU?a)tyb#R1Iirg-^pTWKhiHJp<1{^AoqaTColG2eP?A-^hB^piMsr0bp zJVwAA0PXX=m^&{c!SpeNZ7$J;AsYN{&O*xN0eV#q7~bv=)=g+*8hLJE5TG$3=Ore@ zlDBF%NJ@Yi>YMI%3XnaBS#bVnhFOQ!p^C+C=TZ+i`hL#|-?g9Ev8Jly(eTN>(I6qk zs-@Z6yPEsqewkrTVN==Wzva^UFWypuE-|9M5ejGMwBbk&+nr}rsz)C=6Mg;7!p`W{ z*3~{qezB>k(KS802c-H%MJtOML$`!vXDrv4dA&B^?EA>Laq)wJ`AA9-`)?bXpnYtZ z**8#nC9r6}lYe*V7X^NmwdatS!q&aTv2GK}t$pbuI?lXOqlte1o8O&f1YZsfs{L&1 zZoz%=oa51tY^i+zB#M=_j$sXzMB?(7N*Xj(?)<=@b}om6+jNTRdt1f!@iLHfQk z`Im$Q_8Q769>r)~P>^hRDA_iy_5h*$Kk5ptj>x+)kf| zUCti|wcqQxc@1b(iexLF45xdH9&YI{Rtz*|(b+mwZY$GfOU5Nji;Hn)EvInIyw&H6VI7pV{6m$_g05>{kkUx-_69w3hFaYQorBj zDX_=;D|R(DV{iZR3fwcX5XUT6UNQ*_n^{<5*q_TfRA5^dnUj}yFa2X1o3rN@lnb*< z!|vRg*cA5kc1HTa*M$`o>FG@i|HPJ@sFVg?HagxLeoW@3zx4@sz5b)(>a_fdH;*5O z)i?OfjnGg^KQwW7n2!*3?6#5{%QaA_=g+OQ^R1n-BcAPeo8I7%7X;;=;1%j1i zZ)bCl8v&97rVft|P_iC!Ccs>)Nfzav-)4vs=ljCt>^(xPQBFB!f~}2 z33c`L-70SCvR3s|4U=$oHH9TFzjO1%!~RfY+0z-VM(^3 zbZpsM^d4*^09(kX9^w*ZmI5XJmB^)Ql!H<7e6ZY) zc`+QeUEqwtD6lI*MoSDvI5{}WC480&PtuOH*-2AVaV?E<`JCD_tpv-j#9PIaBFEN! ya5NvsJwe(+v{{WEX}38N*-?K$b^NQk+{YgmGj*nOAn>;U0000d_tM6?Z=$-SxY}-ICRK&4y|1 zVwc#f!dHA1xV88oBj*}@g$RWy_hMZ-KIm-D*-?;qSET3(i^4(8Km2Jkn4dfq@Se&3 zTKj@moXkY~bFu#0PPnZ(e1e0$_)enlnWhXC=IqbUUkI-WEMadnm^fjTNZTC0CDs-P zO1_Hd{`ll}k%^K0x`I<0XS2iy+u$b!SFTK5^fGI1n`4Un+K*`hy-NEv><+L^T&{2S kcJ9aK_IoSqvM<+joQ+wPvG4a1ptl)3UHx3vIVCg!05sc)VE_OC literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cdsn2c08.png b/Tests/W3CTestSuite/images/PngSuite/cdsn2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..076c32cc082066dc870e1282b97c15ec22192407 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^mUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFgaybh;B8!1EBN+Ru9=Qf&RC~HOhE&XPJr~G($U(&AVsKMqdZO+XCv8UV z2nJ4tMy~^h!kDxdYA>9+p~j^3=S&}?ojYTl4JO=Jai&15=FGw*d!IX*;+1!`qwm#r zn`WQ%3^IuS{KD+pZL<&+b@wcnUV-Cw0nJZSYySkqa&Hnkl_)Oke>c9oU4*NKQEP+# V1@X9R>wwN+@O1TaS?83{1OP3BOWptg literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cdun2c08.png b/Tests/W3CTestSuite/images/PngSuite/cdun2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..846033be6b4fdec08cc010aa0abb35428b6659d0 GIT binary patch literal 724 zcmV;_0xSKAP)9p$>iIc zM9BG}R?-GyZPG$D`^%XGf`^qAr06IYS+9p{fK&k*ZoATR1wD8|WCM=~607$j`vY7L zV8zwkB3t?J3uaPidN3!<*KK9Z0BA!^-Kg`Xnb*QIyQ{+A355#ayA z0cpp|nK|8N%npZU=nH)H(bhrG@~;!&M3?XV2(`}^e@baTp03|x0oH!)@bHo=j4KQ0 zuY|$dbUuo5Y|+T(H30UBc@<4A(dF}I3{b5$!14M1g8c&!K-bPLY`YQw0000Vz>816FsF9(VN75txh7sS~8e>Vez z3y|esg8)MVP)qc0!95k9*}y}5sLX|@B3D-GMbkBlwnNjonHwIy z9EcJJF%{78L==oIJhA+`7;;cFolQHd7RYGxEQK6edY*pw@2LCip7ZW~-{<*#JkP!5 zYYTEB!lT29C?YRceiiRU!SD1?JmuDki+F_~O=B_)K_Hn((}+hbb3KVH`hCQ#8wM+c zbFwxPsNG;gO(S62+sIEOu%KnpUADK`#I{M2L=HJ6NYwOv+-H@D_X=#9?oI+MS;V>y zl^XVO2yC09!Icb&nREm`f)AWc25B~!P{MT$qI?}Geug!qSF%UJX^=e(A@Tsq&y_e(IV5N zc2ombmUg;9iHZVhFq;*ili#)pv6lr^Wf$(E5sCtE*M(vW0)!C2(rmO95VCxjCB6Yo zimt;CGRgER#Fo_!>WATkX^@enQK3N$>j4Nhm?Bc~Cc@4FTut;EC7;Rd?q$9UQBAH#yE#JE|Q0|h>!DU_)gvGGGRzl1C&lfZjR|WWg|k-fq8#JmDTaBI#^STUG9+W$DsWo438O zx%khhimTsDdcDtYX^8l8`@k~2aals#tw5h$TvR^EzC~aJtyXxM{*Nd)reoq~rm{KwpXnEYf zqB*0lzd&-2CvWIFQhLa@dP&k(Dd*Pij(dA}O2xf7|D4KEZ$_?Z8(4n($A+lx;)H8u z)fq!W+gl8UebBY<#K*_xetq?5tDJr_srucF zRWSz=YaUiV+I4>B_%&@-PtL)FX`y5J^WLm!j19!cj=uCt?f&G4P0QquI_{@U+1wXV|N8?-P52vntW^|UZqc(l!@kKG^x7(XjPW24#8yrdL)E4&VZN1_vo8296 zO!#K>^qsN&VVBEKXIzkd_mj&@tKO3RzQo4)w=OTPI2+x=IZaHg(y>8-4$mKjGb gSyRUo_cYqm_AGEC_tp3R7W~7>%Px>RvflahUvG13wg3PC literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cm0n0g04.png b/Tests/W3CTestSuite/images/PngSuite/cm0n0g04.png new file mode 100644 index 0000000000000000000000000000000000000000..9fba5db3b82ca7725816efca47adfb44d61292f0 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk^Bp4a_!xt_BxxKPq}K;y)F)+dv$%Po8B#%=u~U{}NXebp5O&tsV_+x6KC z`n6Ov-e|q7d~>yV!S#P~w_ZMf;qcvgkAe_q@|8lddEI`uLzP=J4Gp*J^)`wY2|W3b o#w`BCU_;}R^bC!qjU|5>nikk@kH_`o5%P%0-tcHxz2242t zZVAjc7P#3?WtxA)Gw_j&*7KvKZ>J=PsTO88@_NksIICmj$1M%HOyBFza{Sr);QoBh zi@mlwB0JLF_+GF!ImvlsMh zsc5{>dRh7AYV(5Y|Kx7HeE!1WyYn6eA`4jdmiWEU!L;8G5Gbb{58QQCkh zC%`R%`Nje_+o??Rk9Y_%RXc^_wWto*p8A(!cU{aKDbTOZt? z&v~)eR!3w<+8cjwuIKCvE|l~g&^Ym)^~t2`a?9Sjaa+F#*wwIpUv)*n^H^rfc767O zek~P^H(D<%-&}28aQ&a$t(VVVIDB{BqaehYe5FuqUbo-vP~{d)L&NQQy^W$p0#81q oF^fMj*wFYSJwsz@W656zxtoVvfBf&v2KtG?)78&qol`;+0Fu^nQ~&?~ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cs3n2c16.png b/Tests/W3CTestSuite/images/PngSuite/cs3n2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..bf5fd20a20445fb7c9cf5d38a6ac4cd0fb28de29 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq@N1SHpV7(M_}Ea{HEjtq=#3k+XOiwE+Vi=8|} zczJm*nD-t8a_c-@978JRyq$iK_lN@rGdt(YQy#z8YiT}?Tf!kXZS7nxn;(ocNRJS_ct9{9$oSsu1^4G$9qOxF^ITqWf!_v|1&zuJmL90#Z}{$h z;X$oW3rB}@4oBt#ju#pq{&7g{v2S8~pRDBMFgMZFh1uQVB)dVdT4qdrSvt@q44$rj JF6*2UngG#&N@f56 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cs3n3p08.png b/Tests/W3CTestSuite/images/PngSuite/cs3n3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a66237bfb3a113b7874d569367932762cd0ba8 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtq=#3k+XOiwE+Vi=8|} zn3vvNsN)kh^hn zQh3OQxBHhXtGq91lkmGBUgcb!!F~1uvkcz_zD4pSt$G)@WaeGq$X&o%(w=ugNaorF hmc0uYt(@e4Fe^D2KP>;UP7P=dgQu&X%Q~loCIF6>U!?#5 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cs5n2c08.png b/Tests/W3CTestSuite/images/PngSuite/cs5n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..40f947c33e477af3d4c13e3a56efcf32e6871be2 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WSkfJR9T^zg78t&m77yez7dv@| zu(GmBsNHi0a+5q=978JRyq&sHu)%@n@Dyu(NA}wKUA0-b10Ep zFS_6slkGtcsjSnkCm!EZ->w_6&B5QGsqfG`#!m_?Kf_rn1^#&$H05(u3N+bpIQ|n& cya`qx_w<}dzJS2a44`ccp00i_>zopr06uR!@c;k- literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cs5n3p08.png b/Tests/W3CTestSuite/images/PngSuite/cs5n3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..dfd6e6e6ecfcf1d0be69730fb34292c8b6561376 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtq=#3k+XOiwE+Vi=8|} zSXo&m)b2S0xd{P2A+G-=8Jzwz9R1J0@V}bj|6Ydw{~3U6Ab;uq|M!3d14Huv|8p1^ z6#xH^0;;k4Zv_-!cm`I*@IOisq;U=dQ0cS(K&=cd|AA%zO#~X&0+Nz+*Khp_w9DJm z#WAE}PU}Hd#sdrt4F>Ptz55$&$0R-3;cHXa2ac?Rsv0cq2_h{`K_9r-92Fv1Rz46e wX^Ir!40F`E!P1!^p3)Rkz@>FiH{%HZu|hk>x7R-I1{%xY>FVdQ&MBb@0QH?@PXGV_ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/cs8n2c08.png b/Tests/W3CTestSuite/images/PngSuite/cs8n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..8e01d3294ff71ea83918aa7f99589c7f88da81c4 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WSkfJR9T^zg78t&m77yh6c)B=- zRLpsM)sdIMfX69t)`R5F>$8F{b!Pm_R9NudWu=&O_QeBy0tqv+c5v)_Q~Q&J!@#%m wUE>4C4G-c4A22Uq;csH)Zz^SCk$A@V`i@Ax+rlTSfaWrIy85}Sb4q9e0Oq;wP*-)CT0@c;jQ z2B6XdAldyud4`1l|LYkT9R35fGAR598n(G{b288_Z%-G;kcv622U!^p0CgC=d-v{d zv>lW5Rt15YCienPzJp3LSeh3I<}^i2;MQ`~516SSqSE9Pz!h~+uY+af0^y#f$PHY6 d2X!ls@@qb_WBltft&4Aruj!a10Ts~ zJwICdc1nVnYGHOGugAQPvpQCO+|rQC^u7Kp$Dgea?$77E*lVjJvLo${zc<%&_5~M8 z`VMHEc+dJ|(sj9IZ{4`9Uj*!GSii5jqTqQfvt_$JdqKaJipCqQmz8g>HZQpTPwv*s z=Pw+-JMU2t;!M6$C^oO#?{=tii>9IBcD>$4(ISB-AJUk`pBQXte3G7_v9z(|FN568 VL#{vmcV>h9>gnp|vd$@?2>`oyZOi}w literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ct1n0g04.png b/Tests/W3CTestSuite/images/PngSuite/ct1n0g04.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba110aa764ff4e5ee642b7c0788229a4924d383 GIT binary patch literal 792 zcmYL_OH30%7{`}afYlm95ECCT0X3y5D?Mmv3<;G|C`zfeL@oq|?R0nSc4yh0QW_6Z zB`Pss;_F}x)Pp8ol!HcNj8URV4;m%W;Nzf@CWQndoG|e@TZkTZXTJH*|M$)JANBiM zE&Mi~<2Z}A&3%-u!2Al?kGu3WUCWk2$<^WF^3J3j^H+OWy@|GT(;%h_;{2)(`~)QFCN!|B{t=iEQyFKl3pA11?%3{l4##YE*?fOXKY0?i7L zFo3{7)ZE}Gl#l^L9YKmhfD%BFK>?K!KL~Y9VoW0n(d%eJWA~VYNr1%#!bFckDgdu4 zDzOmrLLKq_3KS!I;xY@vzGk!o4JwE-xE;hXl>t;V83H!9sv>3WjHfzO4UGX*F|iId z1mIE>(2r?d2x(L{m{B2dvyUheJ;X-m&DXNm7#b4I?m*L#fmAAVlv*Mz2B#TAfP`tB ziCpvgh%5jIe5gBU(6u;n^MRPbh@e_iqm*c>R4p7Y3ndt&JeMUlL>pcHB)>|a4ucs$lG3@ulPNE1@BXy#w+=g z&%HGh>bR@`vHY&O>~* zIQ52(KeeX66=g2YR^D3jY&bCQe>8me$%!E?+f(2?ySG@oVB2L~v@IkS-pGsyV*?Kcce{q!`rdz)M R88w6Bye&TWor8U+{sI?(Ab literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ctzn0g04.png b/Tests/W3CTestSuite/images/PngSuite/ctzn0g04.png new file mode 100644 index 0000000000000000000000000000000000000000..b4401c9cfca842537838cec131e416ce9d7b0c26 GIT binary patch literal 753 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk^Bp4&$Z`J6 zNzb#P8s2AuIsDFfoH=tXkmKALZ-1Q=`d*<1Teg^7-D<+j(4EM?Bq(Z%5YVvQAj4cz zi<65o3raHc^FYSw_HE=lWWeL{z3!;5&(i+~S|SAYC&V}_-LdfE3H>h@z9Dj7b$L0{ z?V!z*(zQ3RbHvuze{%AF`9ST7(P3V_yAM6v__yY~zu>c0ws!SHZY7mF>(Xu3=spqF zYyE1=?(N&QTWCLD_9?x`{4#-_N0n=i%(89VqQ<1I<@)8j^q#<%rc7M<{~y>rT+&tj z?Xk|)VE%yIyVWz+p51BFUYon-WoSjdd+w#BKfbWae+pyylvLFL^o9e-8^QT$CFO}l zso)^d^YYd4^bI_5KG-AVgLf~7rkwsp-f`cTpI5{UVGdHyeY?`*0udct2*HvZ)!BFOeE9Eakt zF(>xoL0({Ru?EO%IdFX7kX@*}flE2$(Fs;VMri}4oB+23<{Jy#Y^O5KKjInqNJi`V z(bBh562w#svm1Fm=6#&ivGU`VhFqra^=CQ$Y<+NlKIg?=TOE-dX>a_!xt_BxxKPq} zK;y)F)+dv$%Po8B#%=u~U{}NXebp5O&tsV_+x6KC`n6Ov-e|q7d~>yV!S#P~w_ZMf z;qcvgkAe_q@|8lddEI`uLzP=J4Gp*J^)`wY2|W3b#w`BCU_;}R^bC!qjU|5>N8=ISR z4CLwk<95#Vg>&ou?4IBK-OKf4I=h+Q-Yu4^`-jJ;=a<*F_w~o;*Jiu>-k0SMV?!`9 z1Vck`We6?}!N3q)7=l6z!b$|W5>ORnBHWgrk_!4FAm#v-gL4rOlDZRAQhFl5C-ouJ zT{shgf4PuS-IlHh@Hud2s6Ob305=7HTh$nC5#jVOMRm%l2)`fuP_1(!!tE!01i`Tg zNcxC^mI$IC_VFh;N<~=u^=Vc`@;_)KBFl?^KZrv^P&WiMLvUaSEP*Ak#4p5s%2-gQ R&b9ym002ovPDHLkV1h+qhR^^2 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f00n2c08.png b/Tests/W3CTestSuite/images/PngSuite/f00n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a1ffff62eb0f1f1dcdb4ba2b1d30473d3adacd GIT binary patch literal 2475 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f01n0g08.png b/Tests/W3CTestSuite/images/PngSuite/f01n0g08.png new file mode 100644 index 0000000000000000000000000000000000000000..4a1107b4637642335b8ec7b8e1856dc0ba7dab70 GIT binary patch literal 321 zcmV-H0lxl;P)}T4b;N0E z3!a!0=lJ%5$Eg%oz?c7nM_Pz6fDfO-!!(E~0KEA*c%UmW2WDfu_({31E3v>N-{Hyc z!o4_%Y@;b2{kGgyCmt~K_ux)+Vvc)%F>XgE7N{D;Epg%*RfD)GPQ0RO5I3R|@2DEY z_29%Oss?dQ2JwUcSEewBLHsU3nZgtbQQmYZ7(-i7*cJ?I3zBU?bOg~6L`VDql~F8% T6Mw4;00000NkvXXu0mjfmy?8r literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f01n2c08.png b/Tests/W3CTestSuite/images/PngSuite/f01n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..26fee958ce7e62a59843205ad34f86a525718595 GIT binary patch literal 1180 zcmV;N1Y`S&P)Qj4`pI zFjkU)u{F?Akfo*B!a}174J9nsV(#3X+5PQ?pp&O~&o{|^n{V!Obi%NV*_mQj=dbpv zm_B(tFHYo4wlii|=dbiix4xT4UZ{eGTtw$J**>tSy6N}n|vqif78L&$byRK9f1$SzrLzUf{!*^r3k$774rXm_7!8f1Q2+ z=C=8j8BA;b>93ttmB!R4Gqr2#)Il4ngL#p|9QHl^o9+4V^!;`CWzciKaJiBz*2s-A z%Q~e~hNeLo)I~S+8N27*(|0^}KLTZc)b*DYt70WpQX@6;tlY_+JY<94KKc3jyKkHx zc~$=bes_90V0+^67$}#lCtg&T@Kv!ADxnb@aaQcaP8xdm`scunQ;gUj^(pYH(^C;! zNn5y!L|KC#`k`FGPq->y@fF|j4L>V%d?yTrfgi+0@98t($EU{=wvxAS)ubd$_PkV3 z!A+>5imOt?H8kTouFDPFK!bmL?KbeO)596d+rNC?VU*+1#52gCK!FJ=R8*lsgBd#N zFko=|Nq}~GkP6E2D88M@l8GXUm_!xTsfy-kVs>rq&*Z3{>ZqRPX`b1u2fF{_*^dDC$unBQ(Ew)&lzW^YzR^hz^JI^CidP9to*K@y zNDItSJ$~`R-vM{)Cyb~i-{XO3q;i~yCk82yJm$&k5=WK56seJ#sF9XvnK_+adK+*z zf5tFI)>7;!5IcJyUb1-f+PNSFERrJ@DN!XcC2FQ7s?jpdPCtJOaPPm$D2$0wv{X9^ zWaZ)t@yIozCq+^qMJ$rnCC-%0l&Qw=-{Go9xBkqiT4p;6#CFmU*E%r}BWWdJiJY-a zF^Vx6Z~f)!f}4M1bjGY@*ij%CA&7a#dtxL;QaWQsUcZ|{DNGZ!QmbmEH8z2;34}4U zEce==fUtrOcu$DLNKC}F#?F@|D_EgSluD^gm7PG?1j0Nt7TXI1ibI5i_qeUYM`9wZ zHAc+m{muoO$dyvD%1$6`0-+Ag%UwbcF5n#U_<-~Hh>wJXPsDV-gPixfkS9{*C=fP* zFb&F3UG{zuavL5Oa2^-&5ueTk!)M~U--S34D@TE_2?QJDp|V`eAXY9N+By{R372qb zf6pNl!i29J1;Qo}(jX4E_qp%Fz4^!GobzySIy|o?)B5V>_Wt4V>G|dL?fv8P>$@@5`4A$18fipC zj4{?)>#TR)dmloGF-Am6L9i(ZNIDP1wql`V1IXeb3GF@N^}7L$OLT?eW035 z>s-(z0SrY%YCz?nO#+xF1yoYnBznj5E`aJnr^KQQpxV+di7ue_plgdhP^rb}TH<8U z-_)#002ovPDHLkV1l$} BmFfTh literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f02n2c08.png b/Tests/W3CTestSuite/images/PngSuite/f02n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..e590f1234816946731c677d0b353e2db5a08d71b GIT binary patch literal 1729 zcmV;y20r-x*}n2M`}#}vjc?j3 z-?s05&wlVj`|(fh7r(S$|JMHaC;Q7^?O*?~d&{=IVSD>_5?Nc!ER3!g3n}x;oHDCS zE7M9tnNlW|No7L0po}Y{%BV7;)RZA*NEuWHlu$uIF{MyCN=M0+Oi>NpMWV~bQp%#T zpv)_?%8W9jOe<4Ly-ylf#ww|%3|Gvc5-LF-)9o>#n>V*ev}9aNS<tNOUgyIH` zG-q7aJ|<;Bs%p}n(NLyR>cV6>o0KtOR2fOBDK%kO8B8li!+3&t(p()kWp0LO#<-$= zOvf4WkAB#DDgP)1#^?QNplUNhH+K4K#)MH}M8lng?S#!1>#?oI+;=QHd&_Y* zvQ2ag-A04p0Z)8E@cI#Yj2@#AdWt&Kp)E8)6V#)Eh6mnu6Sfn!T5QC&9<$>3pR;Ah zn~`mxSA%AGv*B#jvEq6SSw}a}hv?(JmFIitK6;2Y(MP>%q^zct!qYa9w`0$dr1uwhW0Zhu#4`YC3A2lof%qhmB?1mex?MvA0uiC*F<|9wjtewjbMGY&*`j zoNYQ=i;4%x3bKm)ELbUlhe-cy&Q~LkkWkfBOvHTK5^pVU&KE8zqNF%!6-RN=jJt=f zyYIStuDcy|)=2IKN9FDBuxB>$Tlj7K4t|&RE`A?>fIq}HX*X$yq{F5)WCR(dJ%%60 zUobyOQYUH9nkJsLcn-IKTf$xH1ii7(+IyZFAaXuHLUf39$aL7GW-`)eOjt5$$&|Gk z7SC8bXKudx>~4AcfL#|Bg#}?=m=$J(8L0w9n3UeL9uLU|&_U86bQr0b)M$_5M@xoe zf}~Ds%Hl?G{lDey;l^hyT6)`NFITQS5g;L1KsJC5kPe`O$dJh}?HYch$0Xw<6ZZU{ zd$-?t0XK_VuxLS_2oUXUsK?Ay2?S&T8dk=j$q?;fe2=lO{-L*jZof!e$2D-%xH*gF z^n8Gvsp5t2h@l@X8zXow7$3|f20{E)r!yT=R8p8tOF$?p``zg4{drQ+FJ#q^ho zXy)BBQMAcvVzRW z3^h_v5Ric9p5w+1ZrERCgI8Y-UVAOLeLHyLjo{85+yt&}QC+$AHbz)d7DMt5 zd6zUtb0njk;WJuFoZ^&7I1!H8G(892_Pp&Rww>5!%hqFCjqSd(WoK`>;%;>AP46PR z$UY&RE}af}mn)!IyrepUKyIwR{8>j(~{{02>UU6F*}Ye$EIT~(g*w> XLp~IzS7kjt00000NkvXXu0mjfY;#J> literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f03n0g08.png b/Tests/W3CTestSuite/images/PngSuite/f03n0g08.png new file mode 100644 index 0000000000000000000000000000000000000000..ed01e2923c92fd8b8786524c6d6841365a44b9de GIT binary patch literal 389 zcmV;00eb$4P)4Zd45D^U_MS@TiGz2aVLCXUNp&Fi;&<&!6t`aRYNwm-e(L$HR7llUs_2v2Lp?04i2#w>5 zCjFHgoS}>OqWhKs;-;4%0XoyCYd;H{ChLTAkL z`Nnmc1cXl84@#vy84@~$6^JKJlZ=Ubk`d9uF>y~YB0kwMamU0Lt#&uLFSbqGG0ztr z+6kZrX%qLj_#)n+{rCF=MU%cN0ReDq=R?P^VtFOGwjP)u6|4v*CxG_LFwq4OLVH6N jD*7N)_#jLSK#2GUV`p4Ky#5P000000NkvXXu0mjfx;dtp literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f03n2c08.png b/Tests/W3CTestSuite/images/PngSuite/f03n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..758115059d78260f7485521b83a864d4a930be84 GIT binary patch literal 1291 zcmV+m1@!ufP)=&S9{TIAi*MDSax9$V&z4Gt?ul6?wozPIOm-?GqbzHVVL0@-rxKGKhOL8k5O_q zSFpv3t*o}I*V_9Zvg_8{M;@~qp0pb`*{3(#=eF8yFWQ%0wy%ua*LT{9H|_38yXP&t z_Z_?MUHjhq_P_`B;30eDsQu(qd+fM9al)Sb+AZ}0v>o^z(58vARqwd=u@6n@Pmke1XD_3x{N{!lS^S@Mz)_} zdJOa7^M*h)z+aJKlpUap>FUU*babUGt;6i!o}sK%&_Ml_0}Q1o&Mu`O$?Cq66Q@JT z3RxIYM!*w1@Du|XA%l7Q)eI$}3>DD;e|4H6l$4TCgo02|@B=KrQ z@Wkm5Gr226kv_(nB^X7=$b&B_9m1$G>KKWRgkdJ$$Rs9|g_2{8Ez5|#T1H2TVa9h$ z(j;+7%SwO->aXp@3<>@U&;J{qzZIUl8J_zyJbOJn`+IoiYIx>K`1Q0sy`|S$qy4Ql z0v=}L_DlonP=h(73bQba+*O)>Gz;H^EtdX#W}j_9D|OAoJhWjRA~5T>Ndu`v9p<2x zV$3LYKl;cP4%*<5UG=dYJ8U03Vjuo4ycMs0P50HI0S#zE(=pl(GY{sz&C+xa)e;>z z1~aNPzjM$1t-?9LR-*64P#mG-1*D8@fZ(*yqnYop#)_J&`RW&@^-8p-T}(?iQxc|RDc*( z<`4s3eE1|ejyabvT}B)cWe8L&9Y4_UCg9tx=>U_B7``SQ&NPmDBN;&XQlhP3n_*jascABYwWa1geh;>x-+i4(U_Y8$pQBrmp@_v#) zgF2F8aQOzn)E_eOLYJ|y`CQzx3-$nmLD=V&A(sP5g05dja_!i}_ zgIDirr|I{mZhX~}7YtBA6@@6ph=h6QI6&Kt{O(YUr$lPFM|Gd{aIa#L7cd2c1x1(E z(Q=Gs10<^TF-)&&>U0cv)zz`6SBo;LJ%(}H?`NdF>L`))0fxOAVsvH`hUsg)nABw~ zucMi=tL~(v8Fzi|4FCoh!(J`gSItz-2XxH%{{y9tm%W$Hmi_<$002ovPDHLkV1gMt BbC>`C literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f04n0g08.png b/Tests/W3CTestSuite/images/PngSuite/f04n0g08.png new file mode 100644 index 0000000000000000000000000000000000000000..663fdae3e7d906df7379d92621a7a951313705cc GIT binary patch literal 269 zcmV+o0rLKdP){e2x4DAd1)!+NJ)f5B{T9psOdMM) z%F+|8FY)0+3~^>3vs1_&)hG|SqQp{zQhWvt^p*^yfsjOBNTM$!(HFu%2m|o|7A8yw TA(>!-00000NkvXXu0mjf-K%M) literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/f04n2c08.png b/Tests/W3CTestSuite/images/PngSuite/f04n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8b5116e72a63a3de8e0c1892c147071d0269e7 GIT binary patch literal 985 zcmV;~119{5P)hvyJ!8utT1VEc>UN*1Tj!qJPN}IY>N=sRACLdrt)_N=Jy&nmRP0foi1T3q z1vs!^NS8tnTiC(|3Cm|k`D(`N4+4W;;{3xH5HR3=UuuoS4K!$rOa`(R z?R*&X`GvfR1n&u#ACUWVNrjF@+CUA>kh2DD{mP;k>FRtL8*-Oa0-8az@Zi?_D?6u0xgjeiedR*>(yJr`MN%ucekr3 zWi?2)HMNKXi#p_|&$f}^7s7eRdN|{jt0Vw}4uOnAlX>OyYx{;(h32S_hezhCE(Fab znDm|v`WGp9zt{od@3wLWe5y}twl%v9eNEpS4jt=K5jm_s#Yobzz%^iBf5O6mQ4IVB z1gSS#SEq}Q@Y^iry7D|7u$1$9vV7%>V~{k^6C{`$4zP=FjwZm`$rGS zvDv1V?}l%U4QyZyYY4D{53qy=jUGER5T*mg4DDFWy$X8(2FG?szK8L%=^pMOKo~6M z$j~Pc+wCNgX-nw*aZjf2VMtF87IxrAsgQ{`|D+q<6)@}&$53fBJv+1hHpj`E}Y00000NkvXX Hu0mjft5eU! literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g03n0g16.png b/Tests/W3CTestSuite/images/PngSuite/g03n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..41083ca80f964707b6b89e1cc1266e381710175e GIT binary patch literal 345 zcmV-f0jBO$x#=5Cz~@tXf4-D8*gDQ#65;*9uNSx9chJUE%)%R{#^#^^XN{toLo}DWI?N<>C;~ z04ksXP5}*|#RS)@U%=Ob*$h}N)l>-ed1V5+W2XZEdA?ey6A(g5buxi@h4uQqlhPtM zpG^V)m`*nvwSYxHS5VI&O?NvOiV039lVCCd(iGV5g^==n1tvHiO#xM<`sZb@9~=`L r4yJ(5#RO&P7r+GDZJ=PW2opR2brp<;D@5J500000NkvXXu0mjfFu#U? literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g03n2c08.png b/Tests/W3CTestSuite/images/PngSuite/g03n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..a9354dbee6f36cf88f7b6277d3fd43b6cabfd84a GIT binary patch literal 370 zcmV-&0ge8NP)yO^U)m5Jsyp{zL>36n8GX#CQmg>mm9SE(8}cf*52*XGY_~ zh{+_6px=OtfYFFnf&gIz^!p-! z4E~_M*AoG%LANUc)ER`K2v7|=9TA|;pxqV$s(}np4O%S`KnAq|RD)(y1iYU?5QqRW z_=SEnxIkSs2+80F>Z$=A5dp}6`d>Z+8Ssq3bn47(xy-IHGcz-PeHq)$ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g03n3p04.png b/Tests/W3CTestSuite/images/PngSuite/g03n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..60396c95af19fc5f14aff9f83d391331a32b3dab GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+SzD9ea;@ZUFM-0(?ST zfi%Pa|Nj~OGn_cFb}hr*yC5EjfA|0Ywf_xwDRcl8Bzw9zhE&W+)?jB+RWM*uY zOI4Q~40T|+ae#?Kl#?gtjDxO+)}>1i-Z_XV1hX;(T`t)BOm^#Pkb^v3{an^LB{Ts5 DR8dIo literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g04n0g16.png b/Tests/W3CTestSuite/images/PngSuite/g04n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..32395b76c9c0e1cb962743e8a9c8c41f319a26bd GIT binary patch literal 363 zcmV-x0hIoUP)k zMP!AUF&SCLg{ApYo}a%I2W<;z1p%J5#`A86=diAEu-(Goq6aWQ91jDiarl1YV72lz zSS}q6C}6R0GJYI*6ZWZ>;Ot> zZFbS1yTa-8J$*mz%z(DscaWy%bDwwTTMVko4oH&Ag@0}_C`%l49mFv}k^p3xQd%q3 z*T@Wt!e(&2nptb1gFLri;n!jYw;K*dqhSCu$TClZ{oV~g4L&I}i72HGV}Jkv002ov JPDHLkV1oB;ijV*R literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g04n2c08.png b/Tests/W3CTestSuite/images/PngSuite/g04n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..a652b0ce87ed2824e2320154aeeb92915dab7be4 GIT binary patch literal 377 zcmV-<0fzpGP)=$qmFdR}P2oOfV zU|<4VgMQxxxCU`-0$hV$&jh#zHh>I1V1Ku30$c+d;Lf1aF#%*iSJZBs0Cxue-@pdA z2CbF}AcGU^M}sfOy9O~C5WqFSD>^`)3~T@e862Ae{Ka543z8O#a*afilwMz5gDA=u z(`i^Pv*IGJo|YG6Kr_1mR;%nWd2jp{WI%v#Gnh=mdi~I3QXrAR9su`drSUjyHa}Ju z8`J_uqi|tJ+HSMFZgOR)ZU*mlfZeWqG%Y-fK?ZMifZqlgyfy_OgO{cNWI%t*O&Od4 Xkxf^INQ0u+00000NkvXXu0mjffu*e-u`Y1b?z zzWXd(t64Wrb6MRl-MPm3%bnSi&5lTH;%2!xfw$vO?LWcx>5tgDx7P8NE*G2%a+Rm6 KpUXO@geCxuo>m_K literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g05n0g16.png b/Tests/W3CTestSuite/images/PngSuite/g05n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..70b37f01e2b9e13a30a6e9d3c51a114a2f0953ca GIT binary patch literal 339 zcmV-Z0j&OsP)?t@NnF8DcSAbJ+I4}jD4==ze*zcJFZU7PBBkXpb0$0HQ1>69qAc{N%IA9o<0{k+y ztwZpB+XXm)2wVYpI0a#74`2wgEYEeVl>WRDLD#JdZnwEs3P4|pU@M>~u2)?HSOmDs z%O>jDD!>8DCayJ<2$}{h$mxDQ3z4SJr&0jRBM<=&(7Tr9be|rZe{e)l*V{)}8$|GW l@dAjTs?dUD3LXzX!4K_Ugk}Okv)}*#002ovPDHLkV1mh&gfRdB literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g05n2c08.png b/Tests/W3CTestSuite/images/PngSuite/g05n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..932c1365364fead1166e4772f29dcb7657f73f39 GIT binary patch literal 350 zcmV-k0iphhP)yIS#@w5JksQ*g`}>M?;BdsB#iGXl_D}xBv~JKVfNIcci2&6=2B-$jrU)Q|6XY8W5%7NoGC(z`*F^vs1lyuu23P2l z!4dKa0rt=jWC9bvghS52BVSt=-A}B^lR{o z!EBZfhpyn1c^lB7D8J-F$KT*fK)J|Z=K<*ToSF6eZn4N8k6hj>3?mmdm%hv(n&R wWU%o7coi9}As&7nsP&a50$ri)KG u9IC*rureVboiWQXC@_w%oP86+Of7~h92M4HZx@7u9OCKf=d#Wzp$PyhYDC`v literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g07n0g16.png b/Tests/W3CTestSuite/images/PngSuite/g07n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a47c2d5746fc93d252900c0b2286878b14a71b GIT binary patch literal 321 zcmV-H0lxl;P)ic&7(nC-rHzraP|afnxc^RYsd`d`5u7poSz$l82kp{Tq3Z6JE6!C z<~cx~GsZc95JJcub)b0oLy=wE_B`cklP8(MI6l9^UC0cE!3;nQ`rgu@>+B3Z0>z=! T&@6K-00000NkvXXu0mjfZ=Zkq literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g07n2c08.png b/Tests/W3CTestSuite/images/PngSuite/g07n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..597346460f1999fb225a46c941751a063ce744f4 GIT binary patch literal 340 zcmV-a0jvIrP)Ec1Z7JAAD^)rl zGc;g3%p!~-&*xWAO~jWXaK$Npe&EOP4FJlLpC7?~0$d0v3LyXpLqMLRlR!xgvP=k& z8i)Z>gESQaqy}ODGPs5U>}G%fNg@Ow1N4Z*fS)rkMhK9;MgMOA0e3K$8Wd6hG8n;r zXmA1Z-7-K1S_=WdAR39-HfGgLqn?XbwVVOhUIuloww+K0g9o7Nrm9jK0F(g&e1^=# z-V(Wa{fz-XY1a&35Di3ZYyEC(6%kphw4Tp(^SMg{u4DAwEbq7P7ygd;HOjyT;8iGt mb0`2ZIE4Zr1N1W+%HRPOfLawl;h_ou0000jY(XgVYP$Ug2i0{3Ntua3PevZO<6g^Ah?s$m6bVyVK1BpBEle`W(ImUKs7M+U~W1%@xC#RK_!JzX3_ zD(1YMYRK23AmC~*&8=hG7IXO0C1yqTPaJWFFL_6JBpnoMIXcsY>1ImurhiOn%Vt#m z5fC`n=)o~7+xK(flFC$FU60NsKN=pf&Dn9QJZi=3cwrm4I|rNBb9(vyap&(_JYhlR zCEhOE8{3?ktnW4_&R8ZOEj;gf4*xH^W5+UNujMpVzT34~{@9PX!h3Wk|Ka$Mox;Fy ze2R(Tv5(acSr+AHDoQLDVbJLg`uAs{=eP4));+&@o#p&$o;{4OIA-jB`e#}P$b+7) KelF{r5}E)9`D>*B literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g10n2c08.png b/Tests/W3CTestSuite/images/PngSuite/g10n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..b3039970c10e786659f9752913c41b8a26b1179a GIT binary patch literal 285 zcmV+&0pk9NP)@();|)eY}Flu=NxRyTwAba19zW zNcaI2oGKYjCc{&aErrDdt_X+yXV}i(ARy1f{s-JoAU8t`q60wT=m4lx4WLj1#Goi5 z0}g9&GjO^Y?CP)v$sk{c!58?k4IU`q1^i?TP{4Hwg$wQL5H j&i)?k>vRoL{Z;$`)U8ca-rtX&00000NkvXXu0mjffk|^a literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g10n3p04.png b/Tests/W3CTestSuite/images/PngSuite/g10n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6a6be2ca571956ce45bae5470c03cd2266fd89 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+U~W1%@xC#RK_r0X`wF zKzij$28RFt|F8NV62kBw2K)ELwKW(gS)7nLjn&=f#?aQDJu;O{JayK!wx3QIX10fSyM0LA|{qo zr@2pEmRO+mfXPAELrdbu&4xCml^Xi(yO|>!d_)=C9<`pFX(h-9w2r~k)z4*}Q$iB} Dmq$l3 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g25n0g16.png b/Tests/W3CTestSuite/images/PngSuite/g25n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f6787c7ab50968e37514529f53a6249762ca17 GIT binary patch literal 383 zcmV-_0f7FAP)$PJx&n)kH3|svhZZ(r0ivJ>sO?q;pvG#q^Pdnj*zaWkW*`MH zgTvuZ0}6;^p~3Np8;yq0Knh?6r_-MX=QC+2p~2;X8_lNB;Cht-m;nW}T0(={4L90t zp~3y`2b5*NfC2^sT+`Rg3?2{M=yd!5X7GIa0W_Ea1$4W905hON>h)}1tpH{-dv8qr zYh?yig&X}o0Kj6ArtTUrpa891&a%3ygBrvY39Yr(8X(K&^KXDL&H#scy)e;z2g~Jm zWsI8yn*n_$yCu)3Q-D0T+mfUnB%1+k42L$a*EYNPyBsudfL{?b7>)b@WOU@^z{4wh)7YG#lngB zpO4to4PwXAUtl<^EZyItpI$A4c0ho^z$dGfn@-I=c}&df(}j0HTdM#fvR(&W;o}K& zG9bWk2p1G&K>eeU5^p%h%I3sGP!q+00000NkvXXu0mjf+0UW; literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/g25n3p04.png b/Tests/W3CTestSuite/images/PngSuite/g25n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..4f943c6175f31c3609bf4458fff9d3c591f112f7 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+W8#6Mlqr_yhTJ0X`wF zK$<~Um*M|^0Re{pF+l47e;^$L6aWH-pup=-feKPQT^vIy=IlMUk+;Es$0ab@YvMKS z4NTlSPH?R`z_n#cTw`u=ph~f+$IqufMW?aPJ#nF}g1BpBEle`W(ImUKs7M+U~W1%@xC#RK_qo-U3d z6?3j$GUPg7z~dZf8U4Qg*qsHF4`@^yUDaY)e6!!)qG9=taAD!(1y)T7vK%uR?lygM zIK}cp><*ign#1-5wiApPcd>47oWOZOH-mqPPlA0u`y2l+k{0Ld8N_aQ--utQJ^wn$ N1)i>cF6*2UngAzTID!BG literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/oi1n2c16.png b/Tests/W3CTestSuite/images/PngSuite/oi1n2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..50c1cb91a0171e9f34991b079fe932f5f0bb16d6 GIT binary patch literal 302 zcmV+}0nz@6P)NTxus~-YE?|ew94KIo9tHTv?hhRR zwrA%J^h9UxCeRmyPjW#d?oxNFL9(uFDZ1gBle+D$rIj`J+5;}Xa zfF63WfGT3xy1iYa$zve>zUI)9x>;M1&07*qoM6N<$g8PGj A5dZ)H literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/oi2n0g16.png b/Tests/W3CTestSuite/images/PngSuite/oi2n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..14d64c583db347908d4e107b49bdaf88e3857b8d GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq>1BpBEle`W(ImUKs7M+U~W1%@xC#RK^co-U3d z6?3j$GUPg7z~dZf8U4Qg*qsHF4`@^yUDaY)e6!!)qG9=taAD!(1y)T7vK%uR?lygM zIK}cp><*ign#1-5wiAr3HXJYpnk5G^i*Xn0_QnaE7j!fDm-r;u=d-`@{~~E|zMets XhWCy5O;z!=K$Q%hu6{1-oD!MJY5_^ zD&}0Bc95&tK)_}B1IPN)b=&{0{WeXGjd@a=TH53@RT6EkPi(I(=ofHeu+x7q>wQX5 zah-&%x^euuN1vn0w==yySE5m{$awnax1S1PFES>4-qaZX;>{9*dzc{lpeF5*>&z{m79Ma`yb}T3cx+N9l7QKY_b21tUy>hHS zj=$rVW!RSfocD`M`g^qt@_T0=(DrKPRwV_Ejec_{h{I9JdPiZ{w#YI8t;GR^e@i0d|ndJLIzJ) KKbLh*2~7a%CxW>E literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/oi4n0g16.png b/Tests/W3CTestSuite/images/PngSuite/oi4n0g16.png new file mode 100644 index 0000000000000000000000000000000000000000..69e73ede311c4a846a8f818330708658a1e0fe77 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq>1BpBEle`W(ImUKs7M+U~W1%@xC#RK{Bo-U3d z6?3j$GUPg7z~dZf8U4Qg*qsHF4`@^yUDaY)e6!!)qCI!=eVEdQwQX5 zah-&%x^euuN1vn0w==yySE5m{$awnax1S1PFES>4-qaZX;>{Y_l!4PL3!@ULbQoiNtWY z=b;I!`Z?mk+pi~%T4uHFkQ%qs0PKuo=U#gjgXq@dQ#YX;uR zyDEzTqN3i8Ri+t9;=Io`4iKjuJ*jdoASoRATB86`e`o#L4-kt!*XOIIkPy|$Z!G18 zk=$_R1cm^jDHwGE*;OPH+pecw0=8F|cWD7)9r{V(>YZh7s}#xX@Y-V@a8$R# zz7Nzll=T^a-D91a7GNOU#!3RDRppIxfH+g4`7VUA7;JpD{z%Gl^hz`rR!C-7WjBz2w=IKp0oL zbO>k?lt*0#RAuh<9{?e*sV()uX|32M9JssnY{osHpuWUu5cv8Oo7WFKnf5e90$&!U zD|&#%lN#4PfLz=wKl=n%AbF;bH~a_iR2$1}rLn7htMc}f7XqbjYTgrI+dp1QF98{q zx~>x7qmaPfO~8-eOc`>46CZ0QegN!tCr*3|kka8h&MF@x8JDN?qySsUVf_vKy0476 z9%wM?M@--UJ8OATkeUmSDcRFHm6nLa%*FSV76{aF1);#sVqI_>Kql)G-?4S=NapNh zVg_*djmhC=Ag9J7dkM%L^-MbokZB}6AQ$H>b5|DQ7>`=5gAqs{oMFj;fyD8u{}=gK zMu71K5`$&sNDOfBa_Q}rTV!=k^EBM^c>q~R=6AduZXuc8qS|W*kl#6Wnxp&)iHoCb zXd@uZXIuUPD6CbzZUDK2+Pw*)4M@m|&Mp?KwVGjB$JzxnI1su>k|SW z;K-2xP8~qD0I!0IuDeLqZiu^T&h0G>BMn)Ym=lSRkOKQt;)MxF$jp%`={{CrJA+}Q z0NGudCGHuG7?!!Lm%ady&A}>J%1A4M0{%q_gjthe+%dX`L1TnYm#8ctAc9 z@}pa>>=HU6*)gvdIs;@`N_gX0SxCrj<`CfL)P#i0DJdZ9W{Ka!FtV*beIQ<%iDapc zzwQpuzunh$8PLB|-d+oAxGoVK2OOgUZCC)=Ex%&=XT>2Qmra%!>Ggb-Hfk2fkY^() zKsHtKl(~0px+MSwNPBxOXxkqksf(TP*$R+5i!_m(4oOIRA3ry`IR({7L&)Y`5g+dy zjA3LNm(5d>Pa+|cbrc|HP1XT<>~@^s)UP}#S04qW zJ7f!3yE~lF1UCm1Ag?RrHNta!r8Eu0$jtfWu@_WGT8_ru{1AB9l%}=?3U3!0mB7Z| zi!2)ef4yhpK|nM&HhOB*ztD(3v5YRNcL0EJE literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/pngsuite.doc b/Tests/W3CTestSuite/images/PngSuite/pngsuite.doc new file mode 100644 index 0000000..7da918b --- /dev/null +++ b/Tests/W3CTestSuite/images/PngSuite/pngsuite.doc @@ -0,0 +1,520 @@ + PNGSUITE +---------------- + + testset for PNG-(de)coders + created by Willem van Schaik +------------------------------------ + +This is a collection of graphics images created to test the png applications +like viewers, converters and editors. All (as far as that is possible) +formats supported by the PNG standard are represented. + + +1. INTRODUCTION +-------------------- + +1.1 PNG capabilities +------------------------ + +Supported color-types are: + + - grayscale + - grayscale + alpha-channel + - color palettes + - rgb + - rgb + alpha-channel + +Allowed bitdepths are depending on the color-type, but are in the range +of 1-bit (grayscale, which is b&w) upto 16-bits. + +Special features are: + + - interlacing (Adam-7) + - gamma-support + - transparency (a poor-man's alpha solution) + + +1.2 File naming +------------------- + +Where possible, the testfiles are 32x32 bits icons. This results in a still +reasonable size of the suite even with a large number of tests. The name +of each test-file reflects thetype in the following way: + + g04i2c08.png + || |||+---- bit-depth + || ||+----- color-type (descriptive) + || |+------ color-type (numerical) + || +------- interlaced or non-interlaced + |+--------- parameter of test (in this case gamma-value) + +---------- test feature (in this case gamma) + + +1.3 PNG formats +------------------- + +color-type: + 0g - grayscale + 2c - rgb color + 3p - paletted + 4a - grayscale + alpha channel + 6a - rgb color + alpha channel + +bit-depth: + 01 - with color-type 0, 3 + 02 - with color-type 0, 3 + 04 - with color-type 0, 3 + 08 - with color-type 0, 2, 3, 4, 6 + 16 - with color-type 0, 2, 4, 6 + +interlacing: + n - non-interlaced + i - interlaced + + +2. THE TESTS +----------------- + +2.1 Sizes +------------- + +These tests are there to check if your software handles pictures well, with +picture sizes that are not a multiple of 8. This is particularly important +with Adam-7 type interlacing. In the same way these tests check if pictures +size 1x1 and similar are ok. + + s01 - 1x1 pixel picture + s02 - 2x2 pixel picture + s03 - 3x3 pixel picture + s04 - 4x4 pixel picture + s05 - 5x5 pixel picture + s06 - 6x6 pixel picture + s07 - 7x7 pixel picture + s08 - 8x8 pixel picture + s09 - 9x9 pixel picture + s32 - 32x32 pixel picture + s33 - 33x33 pixel picture + s34 - 34x34 pixel picture + s35 - 35x35 pixel picture + s36 - 36x36 pixel picture + s37 - 37x37 pixel picture + s38 - 38x38 pixel picture + s39 - 39x39 pixel picture + s40 - 40x40 pixel picture + + +2.2 Background +------------------ + +When the PNG file contains a background chunck, this should be used for +pictures with alpha-channel or pictures with a transparency chunck. For +pictures without this background-chunk, but with alpha, this testset +assumes a black background. + +For the images in this test, the left-side should be 100% the background +color, where moving to the right the color should gradually become the +image pattern. + + bga - alpha + no background + bgw - alpha + white background + bgg - alpha + gray background + bgb - alpha + black background + bgy - alpha + yellow background + + +2.3 Transparency +-------------------- + +Transparency should be used together with a background chunk. To test the +combination of the two the latter 4 tests are there. How to handle pictures +with transparancy, but without a background, opinions can differ. Here we +use black, but especially in the case of paletted images, the normal color +would maybe even be better. + + tp0 - not transparent for reference + tp1 - transparent, but no background chunk + tbw - transparent + white background + tbg - transparent + gray background + tbb - transparent + black background + tby - transparent + yellow background + + +2.4 Gamma +------------- + +To test if your viewer handles gamma-correction, 6 testfiles are available. +They contain corrected color-ramps and a corresponding gamma-chunk with the +file-gamma value. These are created in such a way that when the viewer does +the gamma correction right, all 6 should be displayed identical. + +If they are different, probably the gamma correction is omitted. In that +case, have a look at the two right coloumns in the 6 pictures. The image +where those two look the same (when looked from far) reflects the gamma of +your system. However, because of the limited size of the image, you should +do more elaborate tests to determine your display gamma. + + g03 - file-gamma = 0.35, for display with gamma = 2.8 + g04 - file-gamma = 0.45, for display with gamma = 2.2 (PC) + g05 - file-gamma = 0.55, for display with gamma = 1.8 (Mac) + g07 - file-gamma = 0.70, for display with gamma = 1.4 + g10 - file-gamma = 1.00, for display with gamma = 1.0 (NeXT) + g25 - file-gamma = 2.50, for display with gamma = 0.4 + + +2.5 Filtering +----------------- + +PNG uses file-filtering, for optimal compression. Normally the type is of +filtering is adjusted to the contents of the picture, but here each file +has the same picture, with a different filtering. + + f0 - no filtering + f1 - sub filtering + f2 - up filtering + f3 - average filtering + f4 - paeth filtering + + +2.6 Additional palettes +--------------------------- + +Besides the normal use of paletted images, palette chunks can in combination +with true-color (and other) images also be used to select color lookup-tables +when the video system is of limited capabilities. The suggested palette chunk +is specially created for this purpose. + + pp - normal palette chunk + ps - suggested palette chunk + + +2.7 Ancillary chunks (under construction) +------------------------ + +To test the correct decoding of ancillary chunks, these test-files contain +one or more examples of these chunkcs. Depending on the type of chunk, a +number of typical values are selected to test. Unluckily, the testset can +not contain all combinations, because that would be an endless set. + +The significant bits are used in files with the next higher bit-depth. They +indicate howmany bits are valid. + + cs3 - 3 significant bits + cs5 - 5 significant bits + cs8 - 8 significant bits (reference) + cs3 - 13 significant bits + +For the physical pixel dimensions, the result of each decoding should be +a sqare picture. The first (cdf) image is an example of flat (horizontal) +pixels, where the pHYS chunk (x is 1 per unit, y = 4 per unit) must take +care of the correction. The second is just the other way round. The last +example uses the unit specifier, for 1000 pixels per meter. This should +result in a picture of 3.2 cm square. + + cdf - physical pixel dimensions, 8x32 flat pixels + cdh - physical pixel dimensions, 32x8 high pixels + cds - physical pixel dimensions, 8x8 square pixels + cdu - physical pixel dimensions, with unit-specifier + + ccw - primary chromaticities and white point + + ch1 - histogram 15 colors + ch2 - histogram 256 colors + + cm7 - modification time, 01-jan-1970 + cm9 - modification time, 31-dec-1999 + cm0 - modification time, 01-jan-2000 + +In the textual chunk, a number of the standard, and some non-standard +text items are included. + + ct0 - no textual data + ct1 - with textual data + ctz - with compressed textual data + + +2.8 Chunk ordering (still under construction) +---------------------- + +These testfiles will test the obligatory ordering relations between various +chunk types (not yet) as well as the number of data chunks used for the image. + + oi1 - mother image with 1 idat-chunk + oi2 - image with 2 idat-chunks + oi4 - image with 4 unequal sized idat-chunks + oi9 - all idat-chunks of length one + + +2.9 Compression level +------------------------- + +Here you will find a set of images compressed by zlib, ranging from level 0 +for no compression at maximum speed upto level 9 for maximum compression. + + z00 - zlib compression level 0 - none + z03 - zlib compression level 3 + z06 - zlib compression level 6 - default + z09 - zlib compression level 9 - maximum + + +2.10 Corrupted files (under construction) +----------------------- + +All these files are illegal. When decoding they should generate appropriate +error-messages. + + x00 - empty IDAT chunk + xcr - added cr bytes + xlf - added lf bytes + xc0 - color type 0 + xc9 - color type 9 + xd0 - bit-depth 0 + xd3 - bit-depth 3 + xd9 - bit-depth 99 + xcs - incorrect IDAT checksum + + +3. TEST FILES +------------------ + +For each of the tests listed above, one or more test-files are created. A +selection is made (for each test) for the color-type and bitdepth to be used +for the tests. Further for a number of tests, both a non-interlaced as well +as an interlaced version is available. + + +3.1 Basic format test files (non-interlaced) +------------------------------------------------ + + basn0g01 - black & white + basn0g02 - 2 bit (4 level) grayscale + basn0g04 - 4 bit (16 level) grayscale + basn0g08 - 8 bit (256 level) grayscale + basn0g16 - 16 bit (64k level) grayscale + basn2c08 - 3x8 bits rgb color + basn2c16 - 3x16 bits rgb color + basn3p01 - 1 bit (2 color) paletted + basn3p02 - 2 bit (4 color) paletted + basn3p04 - 4 bit (16 color) paletted + basn3p08 - 8 bit (256 color) paletted + basn4a08 - 8 bit grayscale + 8 bit alpha-channel + basn4a16 - 16 bit grayscale + 16 bit alpha-channel + basn6a08 - 3x8 bits rgb color + 8 bit alpha-channel + basn6a16 - 3x16 bits rgb color + 16 bit alpha-channel + + +3.2 Basic format test files (Adam-7 interlaced) +--------------------------------------------------- + + basi0g01 - black & white + basi0g02 - 2 bit (4 level) grayscale + basi0g04 - 4 bit (16 level) grayscale + basi0g08 - 8 bit (256 level) grayscale + basi0g16 - 16 bit (64k level) grayscale + basi2c08 - 3x8 bits rgb color + basi2c16 - 3x16 bits rgb color + basi3p01 - 1 bit (2 color) paletted + basi3p02 - 2 bit (4 color) paletted + basi3p04 - 4 bit (16 color) paletted + basi3p08 - 8 bit (256 color) paletted + basi4a08 - 8 bit grayscale + 8 bit alpha-channel + basi4a16 - 16 bit grayscale + 16 bit alpha-channel + basi6a08 - 3x8 bits rgb color + 8 bit alpha-channel + basi6a16 - 3x16 bits rgb color + 16 bit alpha-channel + + +3.3 Sizes test files +----------------------- + + s01n3p01 - 1x1 paletted file, no interlacing + s02n3p01 - 2x2 paletted file, no interlacing + s03n3p01 - 3x3 paletted file, no interlacing + s04n3p01 - 4x4 paletted file, no interlacing + s05n3p02 - 5x5 paletted file, no interlacing + s06n3p02 - 6x6 paletted file, no interlacing + s07n3p02 - 7x7 paletted file, no interlacing + s08n3p02 - 8x8 paletted file, no interlacing + s09n3p02 - 9x9 paletted file, no interlacing + s32n3p04 - 32x32 paletted file, no interlacing + s33n3p04 - 33x33 paletted file, no interlacing + s34n3p04 - 34x34 paletted file, no interlacing + s35n3p04 - 35x35 paletted file, no interlacing + s36n3p04 - 36x36 paletted file, no interlacing + s37n3p04 - 37x37 paletted file, no interlacing + s38n3p04 - 38x38 paletted file, no interlacing + s39n3p04 - 39x39 paletted file, no interlacing + s40n3p04 - 40x40 paletted file, no interlacing + + s01i3p01 - 1x1 paletted file, interlaced + s02i3p01 - 2x2 paletted file, interlaced + s03i3p01 - 3x3 paletted file, interlaced + s04i3p01 - 4x4 paletted file, interlaced + s05i3p02 - 5x5 paletted file, interlaced + s06i3p02 - 6x6 paletted file, interlaced + s07i3p02 - 7x7 paletted file, interlaced + s08i3p02 - 8x8 paletted file, interlaced + s09i3p02 - 9x9 paletted file, interlaced + s32i3p04 - 32x32 paletted file, interlaced + s33i3p04 - 33x33 paletted file, interlaced + s34i3p04 - 34x34 paletted file, interlaced + s35i3p04 - 35x35 paletted file, interlaced + s36i3p04 - 36x36 paletted file, interlaced + s37i3p04 - 37x37 paletted file, interlaced + s38i3p04 - 38x38 paletted file, interlaced + s39i3p04 - 39x39 paletted file, interlaced + s40i3p04 - 40x40 paletted file, interlaced + + +3.4 Background test files (with alpha) +------------------------------------------ + + bgai4a08 - 8 bit grayscale, alpha, no background chunk, interlaced + bgai4a16 - 16 bit grayscale, alpha, no background chunk, interlaced + bgan6a08 - 3x8 bits rgb color, alpha, no background chunk + bgan6a16 - 3x16 bits rgb color, alpha, no background chunk + + bgbn4a08 - 8 bit grayscale, alpha, black background chunk + bggn4a16 - 16 bit grayscale, alpha, gray background chunk + bgwn6a08 - 3x8 bits rgb color, alpha, white background chunk + bgyn6a16 - 3x16 bits rgb color, alpha, yellow background chunk + + +3.5 Transparency (and background) test files +------------------------------------------------ + + tp0n1g08 - not transparent for reference (logo on gray) + tbbn1g04 - transparent, black background chunk + tbwn1g16 - transparent, white background chunk + tp0n2c08 - not transparent for reference (logo on gray) + tbrn2c08 - transparent, red background chunk + tbgn2c16 - transparent, green background chunk + tbbn2c16 - transparent, blue background chunk + tp0n3p08 - not transparent for reference (logo on gray) + tp1n3p08 - transparent, but no background chunk + tbbn3p08 - transparent, black background chunk + tbgn3p08 - transparent, light-gray background chunk + tbwn3p08 - transparent, white background chunk + tbyn3p08 - transparent, yellow background chunk + + +3.6 Gamma test files +------------------------ + + g03n0g16 - grayscale, file-gamma = 0.35 + g04n0g16 - grayscale, file-gamma = 0.45 + g05n0g16 - grayscale, file-gamma = 0.55 + g07n0g16 - grayscale, file-gamma = 0.70 + g10n0g16 - grayscale, file-gamma = 1.00 + g25n0g16 - grayscale, file-gamma = 2.50 + g03n2c08 - color, file-gamma = 0.35 + g04n2c08 - color, file-gamma = 0.45 + g05n2c08 - color, file-gamma = 0.55 + g07n2c08 - color, file-gamma = 0.70 + g10n2c08 - color, file-gamma = 1.00 + g25n2c08 - color, file-gamma = 2.50 + g03n3p04 - paletted, file-gamma = 0.35 + g04n3p04 - paletted, file-gamma = 0.45 + g05n3p04 - paletted, file-gamma = 0.55 + g07n3p04 - paletted, file-gamma = 0.70 + g10n3p04 - paletted, file-gamma = 1.00 + g25n3p04 - paletted, file-gamma = 2.50 + + +3.7 Filtering test files +---------------------------- + + f00n0g08 - grayscale, no interlacing, filter-type 0 + f01n0g08 - grayscale, no interlacing, filter-type 1 + f02n0g08 - grayscale, no interlacing, filter-type 2 + f03n0g08 - grayscale, no interlacing, filter-type 3 + f04n0g08 - grayscale, no interlacing, filter-type 4 + f00n2c08 - color, no interlacing, filter-type 0 + f01n2c08 - color, no interlacing, filter-type 1 + f02n2c08 - color, no interlacing, filter-type 2 + f03n2c08 - color, no interlacing, filter-type 3 + f04n2c08 - color, no interlacing, filter-type 4 + + +3.8 Additional palette chunk test files +------------------------------------------- + + pp0n2c16 - six-cube palette-chunk in true-color image + pp0n6a08 - six-cube palette-chunk in true-color+alpha image + ps1n0g08 - six-cube suggested palette (1 byte) in grayscale image + ps1n2c16 - six-cube suggested palette (1 byte) in true-color image + ps2n0g08 - six-cube suggested palette (2 bytes) in grayscale image + ps2n2c16 - six-cube suggested palette (2 bytes) in true-color image + + +3.9 Ancillary chunks test files +----------------------------------- + + cs5n2c08 - color, 5 significant bits + cs8n2c08 - color, 8 significant bits (reference) + cs3n2c16 - color, 13 significant bits + cs3n3p08 - paletted, 3 significant bits + cs5n3p08 - paletted, 5 significant bits + cs8n3p08 - paletted, 8 significant bits (reference) + + cdfn2c08 - physical pixel dimensions, 8x32 flat pixels + cdhn2c08 - physical pixel dimensions, 32x8 high pixels + cdsn2c08 - physical pixel dimensions, 8x8 square pixels + cdun2c08 - physical pixel dimensions, 1000 pixels per 1 meter + + ccwn2c08 - chroma chunk w:0.3127,0.3290 r:0.64,0.33 g:0.30,0.60 b:0.15,0.06 + ccwn3p08 - chroma chunk w:0.3127,0.3290 r:0.64,0.33 g:0.30,0.60 b:0.15,0.06 + + ch1n3p04 - histogram 15 colors + ch2n3p08 - histogram 256 colors + + cm7n0g04 - modification time, 01-jan-1970 00:00:00 + cm9n0g04 - modification time, 31-dec-1999 23:59:59 + cm0n0g04 - modification time, 01-jan-2000 12:34:56 + + ct0n0g04 - no textual data + ct1n0g04 - with textual data + ctzn0g04 - with compressed textual data + + + +3.10 Chunk ordering +---------------------- + + oi1n0g16 - grayscale mother image with 1 idat-chunk + oi2n0g16 - grayscale image with 2 idat-chunks + oi4n0g16 - grayscale image with 4 unequal sized idat-chunks + oi9n0g16 - grayscale image with all idat-chunks length one + oi1n2c16 - color mother image with 1 idat-chunk + oi2n2c16 - color image with 2 idat-chunks + oi4n2c16 - color image with 4 unequal sized idat-chunks + oi9n2c16 - color image with all idat-chunks length one + + + +3.11 Compression level +------------------------- + + z00n2c08 - color, no interlacing, compression level 0 (none) + z03n2c08 - color, no interlacing, compression level 3 + z06n2c08 - color, no interlacing, compression level 6 (default) + z09n2c08 - color, no interlacing, compression level 9 (maximum) + + + +3.12 Currupted files +----------------------- + + x00n0g01 - empty 0x0 grayscale file + xcrn0g04 - added cr bytes + xlfn0g04 - added lf bytes + xc0n0c08 - color type 0 + xc9n0c08 - color type 9 + xd0n2c00 - bit-depth 0 + xd3n2c03 - bit-depth 3 + xd9n2c99 - bit-depth 99 + xcsn2c08 - incorrect IDAT checksum + + +-------- + (c) Willem van Schaik + willem@schaik.com + Singapore, October 1996 diff --git a/Tests/W3CTestSuite/images/PngSuite/pngsuite_logo.png b/Tests/W3CTestSuite/images/PngSuite/pngsuite_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..205460d8287a90ab9c9b7372354d8b7a8b5317da GIT binary patch literal 2262 zcmeHJ>rYd682+8Zt)**0D(iv+w`s(Qqq+>OC~Z{+5(6%qnTmzN6wwJ3B(&vn+9ME% z$;M2`oUxX6SvJ{LZgE(pYfl$48L3>BAs`jn!dzvgE%XY#oUZ#H_GJlQ-sgFrym>!7 z@AKik@j*c@IW{R406@+=k^Lb6P?$o10Egj^c-DRZ2-3Xlqo;*;t@HZ@Q#r5Yl#aH? zcE9=U==N90iDYu(+rMppQbYQFsblv$Nrwz&Z;_X1Hft0A(#HlHQ$;yYdhUs6aav;X z-bC;No^_L%t}~Xe%LYci5FyMPF*k#OSdaiRgy~HAe zCb&BR>_i_C(SISV!M7z~cNjM1O;7%#K>YBkw$h9r<_w6V=0!*Dt`5zOS(dj9se7u_ zsunB3c%dG@nu%G3g$UedZ$ekMn9>-}Y%ry7;=VwjWQA5z0q@?K$$WETg$jQT4*nGU zGgaGwCo8B3(lzkhTHhNWtG$_;Lc+8_!l314O@l<_Ij0f>AfzeJ9R{ zTWz{~_T|7y=(%Co^Vh;c$}}b}tYr1t3qaY#S7xrb9&=?aI-$?-L)y{QDOm(({#QV; z`1u5opnXb|pQEFhkgJEru2liwgV04VT^HKQJ3o_Hk)}R2r`J0rq}c^44~elfPH<=V zM^$2dU*8$J&IEgvDK=YCJ)SdTaFH#g&6mW8ATC=cp`EsGxLoPmvc9f6Rk+60xRNJ> z`it#OQ@+FHyS0z<@VwZ^YaJ9QZ(%F$7yTO1NlQ^^k~roWzkJ-;oau*JPVvfN#xAr= z^d3-4L&)L+uTzEfFb8o5M&(2ZUw+zvU17Rgiz)IV(T4aF0-C^{@eFKpfQpGO=}>!a zbcvq7q_7y=K2Pc|?QXkLGm;Bv2Lsd+muyFy7*#kulRE{W_X;!@&#Do8VHna)UK>y9a*B)r?OBPV{brqmKchudQ4-Y;0=gviU=PM rY~5@&J@{YdK%svyris3PB}g(vec36=rM?^fS3utT1=+pFN}B%xoVVtB literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/pp0n2c16.png b/Tests/W3CTestSuite/images/PngSuite/pp0n2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..8f2aad7335206d0563ec5e8546bae83e16565080 GIT binary patch literal 962 zcmW-gPe_ze6vgk1W+4now6M&vl?^RQyA>2zjg8cRnT4C8a-ev#F_0RlCh$*z86iP| zaVyJO7(suuAQvVX1O;6NThywBgyle%p;kiF?Y!^7%*UPg-nqYX?l%`38+JvCR~8dd zB)L1WAJ5hPQxeAagYN1HJPOnCJ#h+k^;hS6n~B2RjrC1+_??J}9FY(yk@yB>bT*DpgTKuCNOVY>KHEazxSy09-hZpy3u#A`f8V zHsSyi48tL)AqHsN1Qs~Z7}}6FKO%n`+o-V&6GM>jhqkEH%nvXazo!T$>gO2@$wLLX z`|$=*dd46fKkdM#M|Gt4gY=kt2bIyaHXr#UDa%9SKVaIhyKeYwX|*h#PykDCr-AN)~w;?+^4yN zr-s8{bD3D{UA{K=ZMOCByHINGNoR9@dNzC}GcY)|Ju@)5BDQntP)ot4{Pc$K&wPET zb0n|#)BTaYxn$Ykj&#Mk)P>xtSgI$wXyNturRDT2Jr$Wxq-QF}D@JdO#pYwF-{qy3 za({X@R~7V)9!N#APsdv3V~y=a8^^ai{@Af>>)D}>Xm+S$ZFc#a+o9u`9GCs*$lY49 f5Z_z){0_hPQv2`7;*nR={=b*3Ye+n*O`ZD>%pJzM literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/pp0n6a08.png b/Tests/W3CTestSuite/images/PngSuite/pp0n6a08.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed7a30e4d16e0527c2695bf0493ec1ba156d8c4 GIT binary patch literal 818 zcmW-fy=zoa5XDDVMV1W~5)ehSNEfm%xBU z2&4*#Vrk)5qd16#e?&m+j8-!K=3aRF?(EE*Ip@rKwzzO@s(ZRCB2&ZbgJs_5>p6am z-v^V)Z(c|4^l$d%(39=C{jFOfho3IqSefU45fw2J7YUK9NLAECT{J|qlBQxN=3*h1 zRqHBl;w~QIS*@WGCgBnxkswK`q)EDDND_bzG*~oKoi(S9sk&;YW{o8>Q**UY%VI&& zP2JT)J&P2zVH&Ox8VN^QHBHksLzAhn1`N`$gcdmlgAFuTG-nB_nB!()mZgueMDFHc zo+TF+B*QJjB2f=1YAxL|ERlyF(4-qX&<_a|!WuA0!;(^XFc@s0!OC*3(!`u_&oUBy zj3tWjNPI;uEJ%8WCqCjd2EdDQj7BY1;s-S8#tt|k7=^F~4AOK$3myyx8|bVRRW)g1 zPO>qKL?2^`BC{6Q)?X~zMr)sKNkyvpUh8dE7RTmJZMz9B%1uKpztJiMZ4%IY4r~eY z(8Q?Quih^4C60%K{>u7`U*G4t?=SSOE=^ya`TK7B-cIk^kKIxK>$!`kdXxRvvtNF0 z{=1(CZ$@{A&yUj9`FybVvBPCeK0F$)bCK1Jv!jQXxa@3n&V2eaJ~@4&3S>CHFnD=o G?eTv$Q+DJ4 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ps1n0g08.png b/Tests/W3CTestSuite/images/PngSuite/ps1n0g08.png new file mode 100644 index 0000000000000000000000000000000000000000..2053df2ba3aef44cc8cb3d1405a97f1f0b916767 GIT binary patch literal 1477 zcmXxkv1^lI5P67h^UVm}%@?3v@ zZegL-<561(tFjuavqr5#BQ!!IG(saZN~1JNqclpRG)7}IMq@NaV>C|VG*06*PUAE| z6Er~+G(i*92rj`Ttr}_7NUJ76wc-+7f=h4-uDo3hF2N~a5 zt~{g~T#n0eIWEVQBUFRSaXBu><+yUdYH&F&$K|*jSB_r|F307#9GBzDr5aq0%W*j_ z$CXJo|6lbR3|xULaODPdA6MWCT!AZa<@VL!3S5CJa0RYByc%4AD{uv_z?Gv_gDY?a zuD}(za`0+!1+KsqxB^$QvN`yE^<)0y4TejDyF2ez$D^}tw)^GtRHw6dqI==+@0ly3 z-TBkA^ZPTe*T)}rA50zZ?7jN4e-vL2U;N(epUiK5yjdGhw3S~+o0oomyI+5t^i@K?cA*KghDQ=n&_4Yh}2+n!G!^i)7-{*I6&Utt1 zmS@{qA8Rd&qHS7kM#bSRf`@0ZUWlgNcnqw6jp%EIP5gMUU8l_Ph zrBNECNi>Nj(IlEglW2^_XpF{ajK*j(O{U2-nI_ZZXatwwk|G)@qLCsR2gQm@a0xEK zCAj={G`Iwp;1XPd%O8pcm*5gyf=h7umeJr6T!Kq*2`)b{8eD=)a0xEK<>PpxxD=P- zQe2A5hm8i8;!<3SOK~|R8eED?aVajv%WxSkA0ZlChRbjnF2m&m zMuW?687{+RxP1I*a2YPcWw;ENFVWyKT!zbV87@z}`TrH)!Hg^8%D8-kxQ{F2%D6JF zjLWx=23N+Fab;W?mmeMtu8b?=%D6HvA1xYO8CS-Yab;XScr>^&u8b?=%D9~6P2<<~ zr~Mc2_rXf}#l4^WJo$a=p`P~2>6!BW%lpp%^X2`?&P6RBOsvokZLDKr>AnEv38{l)vwLHyytxLt@>zb_%k^+_s8AgSFbiz=e|BL)R?{7{PyUn zv(xKFPhEeswBhC}+gnyQX8W4&H8wXLxX`fAYg28<=LVOaU0+-NWc6_U@ly3@=fVd+ z{`v5-;@jHIw)sl!_KGXZFMT{+nlDxVTGsJi{qLh|dRmTOda2qu_RaM6`O?U2L65Rp$k9E#vj1o M#x0ev2C4`D17zK%(*OVf literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ps2n0g08.png b/Tests/W3CTestSuite/images/PngSuite/ps2n0g08.png new file mode 100644 index 0000000000000000000000000000000000000000..beeab8ff3d70e4570ae780c62404f0abb376abdc GIT binary patch literal 2341 zcmYk4K}(cj6h_}bV+f@L7ZE`&3Th#!LxHQ9FiI$qh#&}()R9(cBIve7Aqci97-$jw zfHwV!kO8+XT0~H^Y?mvi@9=b968zq0?l0fUjm(tqbT<_f3e7Zfky!B+YG#5;)J%6^fJ~2Hzdu?)h zYI0_#oB?nC202Q*rfyBWn))>j{-t(h+m&q>*>;g_7g;)_Teq^^%62Q;t!%fl+#9x6 z*Y00G^-N7x&(vh~%p|gUrY5UrYOD@=+N z`}%vPW?wy1vu~z`%?wHQ)iZDHtLIeGSI@kY)iX6&J?DjwzL`JCnf1(D zXV!Dh%&cc_mDMvfSv^yWE6B`D3QNk&q_CvSOp?_zU1jx5O;*pDE;s0zIc4=sO;*p@ zC#;^?Ojgg-Wc3^aVfBm)Sv^ye)pMNvzjgMP)iX|H^&HC$yE}6Dwei-OpX=P;ez&}` zbg_)LK7Se+9^O0Mx^ndA!u6${sq^Dg2V<|-RzB=J8aX+gUGv+2+l+ dH>)c{W%0-H#?|j%9yXVi`I`%KA8#zZ_zRf}P_F<0 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/ps2n2c16.png b/Tests/W3CTestSuite/images/PngSuite/ps2n2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..c256f9091b225bad679fa39cad703da386d45ee7 GIT binary patch literal 2505 zcmYk4Ur3#G7{_0AGm&I6y0C3Juj~-GsqYdD_UE`WO0YFzH;pY1t(`-#Nc=-)FtxxY zV+AZwwngs9W`^6m2@!T0w)&wD<<=XpMy zsY3^!s;k{n8%0rF&(o>r%4f6w>nqF8&ri26mX8hD^U&i!T@)5-$WkSk@ln<%&Uy1`82R4pi z;|Mm6VAa9hGJ(wmHWS!PU^9W$y=HTP%>_0W*j!+9fz>2t^MTC=HXqo0VDo|1>}K^O z;i?qaQeaDg6)8fd%qp2xvMVLKQnD*0SZ8r~)(MMe)nM_gZ_yXes=?w}HCR0BURXS< z28(CaVDYR;VDYRPES^<^)oE9F))u(Jvp(Yr&)!y)wsl`6vr6u(WLC+2mE2c;VDYRP zES^<^b!Xl0dz|QtXPxxLv)_4UJnLJqcvcM-&%Vtpo^>xQo>hazv-_LXlLU)rZ4HZO z)$B?Wn^iKaWLHXNmF!9h7SGxi7SF1|;@MU-sjSeK-?M7;#j|Sk_0(cLgA;x6the;V zvn%e4XT5{Pvudz-_8n&RB*EfY94wyo*{;;ptddzJ@2g~1$@?n7;#m{J;#oCVJbN=u zs?F$&XVvJ7XVvJ7XSsmo_pBN$o>hbO#_H?&otPQVddtjs_UW1NtXpC6tQstyRkJIR zo>|GPl4n*jtK^xLVDYT3uy|Gt7SEo}H{e-w!s1yqSUh_lvv}5Kuy|Gt7SA?d7SD14 zi)Ynf@oZ=R-`e}b;#p2$@odXwcIx3<3uSLV_oR}CM?SbSeY5thw))hki^;L?PtE=P z#UIm6)m7&wTQcwDM;j&&Ebabr_FR2;v}fnyd-q=&7(CUm`?0vM@YCv%*XAmJDGVk0 zKZ)O6{dJ}P*bf!y)vqS{ipwjNuMb_gG{1M~!qTIO{r8TZta_rj+)??U*jq7it(gBT zJ6kui+Ozf2zU=lL>9-5p66v!|8`r=6ZBt`(HG8jaEtS3Ba(nxY_vaI9iS(b14QC2} zo$YL^nz`|Ox@q*v{K>V%p|R>+x4SMbjBkGOjmzUrqnF1YAARJzk1AdnD#TlVA1{1Z ivz~l*!}X8jukUvM^TI>dzF96W9Q7PHnEJ9i{pP<&;-=I9 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s01i3p01.png b/Tests/W3CTestSuite/images/PngSuite/s01i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..6c0fad1fc982e54aea994e12efd3fe3584cabdbc GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?zc?q{RR^Ea{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y0;s*GHxH2&O@2a>I4&-uqx;TbZ%t=lFvY8kdJ=QNN1hN=BUHx3vIVCg! E01FBk(f|Me literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s01n3p01.png b/Tests/W3CTestSuite/images/PngSuite/s01n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2c8c78261e509e7ef2c352306618963954a84a GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y0;s*GHxH2&O@2a>I4&-uqx;TbZ%t=lFvY8kdJ=QNN1hN=BUHx3vIVCg! E02xdg0RR91 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s02i3p01.png b/Tests/W3CTestSuite/images/PngSuite/s02i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..2defaed911a29507f745bd7183a9819b29cc53de GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n2%)r2CU%&n%ki(Mh=)Kx2KC^NX4Aw1O`S11~vx9e?93ZfWi!(u6{1- HoD!M4t literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s02n3p01.png b/Tests/W3CTestSuite/images/PngSuite/s02n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..2b1b669643540f182c425fb67869b7f97fe75f10 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n23?w}&=BEQGmUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFgaRYopTp9lVmyFR@1#)>jT^vIy<|HR1Bmj9V42<8zEkc1T22WQ%mvv4F FO#mnG8JGY7 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s03i3p01.png b/Tests/W3CTestSuite/images/PngSuite/s03i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..c23fdc463170faf97e53fccb4799386700b21a15 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^%plANBpIb2ie~{iEa{HEjtq=#3k+XOiw8*-J9&n% zu&|W>*t!_VWee~Lab@_=@V}g49;WoqQ$(6ld^s L^>bP0l+XkKxV;@Z literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s03n3p01.png b/Tests/W3CTestSuite/images/PngSuite/s03n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..6d96ee4f873baf1df3652a8d70994eeea799c30b GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^%plANB6FUp{{d1g>5jgR42*3H3|~x(2T2w?d4{mC zu$2GUx){i13-AeXW%$qVzno#?)1~u)B7B}Mjv*Cuk`odN5)y#?V+@X#hCJRt7K5j& KpUXO@geCw&86D36 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s04i3p01.png b/Tests/W3CTestSuite/images/PngSuite/s04i3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..0e710c2c397e371e4feab66add6a9f9763ce0c27 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFt%)r3-#KLAZh?DN<>&U>^w!rYkw0Iz&x!B1w zgoTBr{KwYCKrUN=Pl)S(hVuXa8D@QV-U$>D@pN$vshE?Tk-%_}nTL-@Si+8hL2?}n Uzopr0P-Lp3;+NC literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s04n3p01.png b/Tests/W3CTestSuite/images/PngSuite/s04n3p01.png new file mode 100644 index 0000000000000000000000000000000000000000..956396c45b5103d3c38dd8906be14002e5bee48f GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFt3?wJp^Voto>5jgR42*3H3|~x(2lAPVojgNW zSXjz`Y+VfGvIY2rxc+A-|Noz1)_3QfKoNdV7srr_Imtf`7%+0!GcfRQFf%r7-v+XT N!PC{xWt~$(695jV9kT!c literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s05i3p02.png b/Tests/W3CTestSuite/images/PngSuite/s05i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..d14cbd351ac11022eefcfa3bb2af528c3aadae41 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$9%)r3d&i3yCki(Mh=b^8f!C{x5dr%K!>0dAc};RLn`vNXST-!El6+N0&!i n!bU<#VwswOk4HkpRtAR1>$j<%)r2S&bt2^ki(Mh==jv*Cuk}VDtG(2QH%-+V! svtII_@t;Hw#zXcz;mHztXBa0j9DK~v7~1r+6R3f~)78&qol`;+01$C3h5!Hn literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s07n3p02.png b/Tests/W3CTestSuite/images/PngSuite/s07n3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..6a582593d654c8d43aa8c8dfa8f6516e4f24c8c4 GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j<3?z5j>~{cCEa{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y08<>}%WQZXm_$N%<+Sv-f=TJo4b eYw%F`{a>D;u##)1Tx>4LCI(MeKbLh*2~7YjwJ1CQ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s08i3p02.png b/Tests/W3CTestSuite/images/PngSuite/s08i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..acf74f3fc4132609443b0555d56e5b314644bf23 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ%)r2SE-kGO$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vj!0%z$e6&;s5_~hX3XN8U8actlAYR0~A;Fba4!+n3J5qz{IFfcOc>T u0@fwp4bCJ+99*!q$#Hv=FS$q5Mw7orX>_}}cf hovEdPM`3y+BZF-itL;x80b!sr22WQ%mvv4FO#lIoCTIWv literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s09i3p02.png b/Tests/W3CTestSuite/images/PngSuite/s09i3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..0bfae8e45678282b23bed2760c0dbbd736be9df8 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4^%)r3->c>4%AcrO0(btiIv2B6ji)rydK69~? zX9x=mOZktji-BC80G|+7hW`u<<^TUP{QqCh@IQEaktF()~}fr+~zg1bjT rBF;F5J&BF&_kSLqX%_`}QkWS^|FgS^^-Kp^#=zj|>gTe~DWM4fSkxz) literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s09n3p02.png b/Tests/W3CTestSuite/images/PngSuite/s09n3p02.png new file mode 100644 index 0000000000000000000000000000000000000000..711ab8245189b4d5118b4dcd49ef9771bf924fb8 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4^3?%3Nf7cA8SkfJR9T^zg78t&m77yez7dv@| zu&}U{|Jb@1$mI#}32|lk&%jXr|3Ab3|K$w-!x&P4;_{v@jv*Cuk`ox1e*fp;30o~G lp|iL#LdvQ6heDwO14Cvi>)|ZtdS#$e22WQ%mvv4FO#lN*C*c49 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s32i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s32i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..0841910b72779aa7571cce45e56447eeb3de4520 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF%)r3-EjT<7$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c5&pba4!+ zm{U7pFJF^^h?~7@-J{?g64%>Ss_=bq+ht{1xSCJrO-tjMmhSi` nkfZu#wXNcYdz+%H|96_V1YK&G^7e=_(2oqBu6{1-oD!M>$PW;WtqGsLq6}$jpDV7@>y0l)ibBXvN}dz6L`X{!W|QK qt4`9uP~=9WliB7OneY3z7cem=9`<-$rKSgT2ZN`ppUXO@geCyfYFs4% literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s33i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s33i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0dc14aba444d3f59f0bf77808ee7ee78ab5a48 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^iXhCw%)r2S>FoPcKn_c~qpu?aW7`757t`W_eCA>& z&kz9yJIm7?|5Q?Gve>sQ=2z#A&*U>UfA#bB(&kXT4uKE5vkQo zUQ-!gbN(`3qRGqhce6z7%EakmS0Y8FPq}6+_@ir6xO2`=y*VFuJPs^Aejwdi=Zl4) zY)`yQC*Lu~AJ4vKi$Bd@7qys2yXwnUHmtVq{n7=4!I#bZtC8xk9FB%)(-P6#}_whaYKv zG;#N1*N-P`3zt?rkunQiXB;>sd*S~OJ*$Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c1LAba4!+ zm{Z%gm#f)8#BG1p-0Bz*xXo g-$=Io|APMvAEo}ki@M*T3G^LmdKI;Vst0JTexR{#J2 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s34n3p04.png b/Tests/W3CTestSuite/images/PngSuite/s34n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..9cbc68b3b9d5f263eb64bca9ad8bdfeae8205f63 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U_3?xrvihTr9Ea{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y00D12$B>FS zQ_pYYZBP(ky%4X^8GYlzZKG+@7dEqqPBxHOE~fV1{h+qq6V*Svna^1j^)9?Ct99+6 zN12I`jtXnzk)}u!%RD37KjJGY{QS1{OXvRBqt2SFsin;wQV|yPQK!t*<5f${SKY|E by&mjqj=t@%(q8BXw3xxu)z4*}Q$iB}CDT{I literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s35i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s35i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a5e0a6595f100edc1f79a3e0864ad6ea0d0121 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^${@_b%)r1n`@_6HKn_c~qpu?aW7`757t`W_eCA>& z&kz9yJIm7?|5Q?Gve>sQ= z+doX6Y5h};;jD1&3&kR*!|w$e_FSCK!TZ;uv#nAtd0y%gzGN#yUNMtr9o7cw{d`v} znPPXp_t6M&TexoXtroF))1FRQrM1j3tI<%mZHpV5tekks+WAwqdfa)ug=wLE+m7oy zMQ7hT>LK{?oy%sWdO^0lW9vk3*7N!L?zPr!EpIN@4l($9_RGP?h0kp-%f1)C*BQ6t zSkfJR9T^zg78t&m77yez7dv@| zu&}U{|Jb@1$W;&U32_C|{~5{|{{M$i4CVjJK};YYC{Yd)E(fu`?q{2n^e{*@3Z79)POXW#oDtF1yr`=+itVv=OktFdG6g{K)mRoAX+EY7>z zmhXBt<&Eu!6r*o!cV_nNo&Ccp*=?%nxjo?-PXbeTw3r{SnJ?StNM`T3!o6nKZi}v&Xt(4rKl7t^ V?&lUg^#FQ_!PC{xWt~$(696v@lAZtn literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s36i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s36i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..eb61b6f9a325db7d967bd796d3a65494bf6b7754 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|l%)r2yqPf);$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c5&tba4!+ znA1CPFITgHh@1WGUzfMPP>Mb3d2r#rz};nBJ2KhD%L@z2iugh<9M4MfUF6B#_T+KJ zyS#u&i*AX_`$J4FwOGR3+lYu(xyz9^Us?I$Nzg8@_uT%B&fwPAv<_h$1 zKV4X~uHW!2nO zw^mgdcYZzlI&jNId!5cjyapMo+SY3yv3S|MG5=1ghQ&wM_et*;#P6@Vu`=r)^ENJ> nM6Fzb-Rz~M-&QV*`e$h`)grF|l3?zm1T2})pmUKs7M+U~W1%@xC#RK`w#ZI0f zEG#VLKejFga@7NTLR^9Le}-~~|NkKrL;3%55EIA;N|b|y%R#KK``N64bh)RCV@SoE zeX02TU7fN^(b&f@AC0IF4)lp>A zamtZ6X3lW8^&N+fpX;N5a1N0dE1b9+oO)I`@yuDpE^(oyK}Bq#(;+7|2{WUFjT0Lq lq)!ST`XV5f-^|R;z~ISp;_}2b`+!bh@O1TaS?83{1OP(LROkQz literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s37i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s37i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2b1e9b79ba8ded32f713506b543f95c8720615 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^svyk5%)r3tu$^}qki(Mh=sg+HIV-2>Eakt zF(-9`wNR6RK-+&o*^hxQcxC(!_~<1(WXyQ8cE!t#;Gj#lmM+`0{Ul?NhPm`7gP#(U z&TKlpT{>aX1vlpoG2ywrj9K?;d1~@l8+XmqNYD|GnW?j3_LDi&_Gk5ZpVL(C5Y*hb z;_)GkI~OeSB#!?*!4ts2={s4)Kw+AwsIZx0;sW~{6Jr*4M-?k-J?sdRs5Q&mv0%AZ zytIqJyc-jCPuY6yD{r}_O<9KFm9UNB@vD7vZe722&ATSp?!|BMy_))a()awI`Eg15 zcb}IZ6e>9H6slHm#xw|b7U^#ds^C5mec`FsvsuL_-L{JOW$W&>5V^;FS zsTXzmnjHk%9_laj{iXhZjaU6f3%5cQ1CLzmy47pf9C;MBe%0{;2EMB|HJ5HS=D#U8 zTcE<&;mf3XHLadi$}J7S6KsC%TdZ8VLMtWoP@;^%GPWsSI*kflz0dEPDy4JU==ewT z$8HrlSvDN~XJuI*Zalg3>X&(%0bi?r*mu~p# z*kbkGd%RM6vU;~}yPmpD-2FE9?b`>wofE(7z53qT-=ZIGukYz~KPva4hT&JMP+%DE SUKyZ=7(8A5T-G@yGywpP!HFRN literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s38i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s38i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a8a140ad7ec7f78f5b8cb398f54233e790fe7c GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^Y9P$Q%)r2?D{_Pz$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>Vjx#Nz$e5NNdIRjXZZggLNS#8F9$J!e4s=*NVput`nsRZ8c5&rba4!+ zn6q@EJ$I9XOxyf_5svYTT%(q*Y;ODGw$)5_M`m;PZW9x8Q*O>*8?9X5^PP9_c=!F& zj}P}&avWz``7H13GiA$f!58}0_y?X%x||YHuGu}U@%Fz$#r)47t&6p-nF}}c@lTBs z^1PZ{v*FFH8(9sEQqM(?B}LEJyE$O3_FS z$q5XNhu)=5Tjidh!fa-!aP~lxV%mWM7U!NuQRf`SX00}f3tT>iIb{)A35DHSJCk^B z9JyieHiKao|6$!5cY4l9TNo}lec>oiL(-j$qysxN6CA{uC#7^J8uHKH+k8^@!3HLV YPnp`y=hnD91lr2r>FVdQ&MBb@0IdL5LI3~& literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s39i3p04.png b/Tests/W3CTestSuite/images/PngSuite/s39i3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..04fee93eae400e745534756b48f5420cbe4a1d91 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^>LAR*%)r3N*;O+E$YDu$^mSxlY+GRXVp=?q&s^-} z8N$NCQvPG>VvyPZpAc6d{hy(n;s1XK#Zdmg9K;0jffD5);c^h`>wY$Cpuv)!E{-7; zb8;sb7Bw3PxXwR5nPsxbIbI3B13h{Zl-LU%&pWl%I?8Km-rd09oy#9GScQZM32{6% zJn&)b?*IA=s?&@YhcsVH;1O9g(`9z%6oU2EhY-&tz!*HGHjC7g8ZRKA?r5euu=`tFBX7AyHo&^hw&tWyi;3*RQj<5NC7 zD$9QAmr-d~@vfp^>g%_&3Lb_R^iP%F$ND|O^6>H9g zXp(yF?QYZiJMI0h)x3XK|Fr(u@2&iL4zKdoR{mw=nP&Qp=ij3Tz`$bgboFyt=akR{ E0PqU5-v9sr literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s39n3p04.png b/Tests/W3CTestSuite/images/PngSuite/s39n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..c750100d55fbd07d216bcc5af538a83b9f7772a3 GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^>LAR*3?%D%eb|5$OS+@4BLidG0>c;6;(>hTVkgfK z78aKBA6plL)CTy3xB}__4CM^}|3fH-^8e)^CXf%5Crf5MCykT z!yOH&Kayq_xt_}isYhMd#%sHX&9!mIgr_sq&#dB<+^ar$Z{X$9)vls_k8f1|*}8bi zpB=vzEdR6P)rUoYc6jZ*eQSQo)o-o)F5h}-kYN6lt?pKC%J$H%zv=qU-|SMRztaeP zGf~`5;@h^18+60tYao5g)5S5Q zV$RyWja;A|lo{eZ(@L`p} zS{LWU6$LrdObg}*USsKY346=g=`j6{lFBTGU2~>go4o6%r;zgB(0Rug*KVDo#;EA% pAydNHT#*-Kd$uF{lI;G>I4-d)zk<)z6+mAyc)I$ztaD0e0ssYck!}D0 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/s40n3p04.png b/Tests/W3CTestSuite/images/PngSuite/s40n3p04.png new file mode 100644 index 0000000000000000000000000000000000000000..864b6b9673b3b331f2956ad2299b7854210cdb41 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NV3?%C=ER6$FEa{HEjtq=#3k+XOiwE+Vi=8|} zSXfxfe{5Y0FS zXD@8zZ7|?*x#--bqd09rVn>dvna6z96-Ml=&4Mcg{<*&Jc=+gKnBVfCtuiaG{Fsq+ zN5I`d(XC(dB13ART()`KdT#Ey^-ixof4?!Sz`}fsxz-Y$_FSPy%NW9)eC5gyx=V3r k20fUwfvE$HuR_SJSS z55Et?JTvoPh0AulLIih*akytD27~Tb;Xe$LE%nD4!n3xHfZuZ4Pj*<5|d*T#H!ESYk7m-HU8@5jnVrEpCx9QzA>j^IKr#L|fDVP9W`Og2!1Mm~*q* z55G_oeZ|SW=ug`&$i3kho&-p?HH33nlfnslU>nkL46N&>6^EB7TYn&gqWCOVz#0Gm N002ovPDHLkV1ktEtrY+O literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tbbn2c16.png b/Tests/W3CTestSuite/images/PngSuite/tbbn2c16.png new file mode 100644 index 0000000000000000000000000000000000000000..5abfbbb3a22dd31dd032db371468d76418369334 GIT binary patch literal 1994 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tbgn3p08.png b/Tests/W3CTestSuite/images/PngSuite/tbgn3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..42db2325b1fd049de8ad529c45afd4c6a077c1d1 GIT binary patch literal 1128 zcmWkt4NOy46#iOxVvBF%IroI>-mn#`bXr_ltXty>zM=?aqE?YGpp~>v<~l5c&f)A> z%P7*!8VdDi4KmXy$jXnS*>tXHm?K#wYDOYvW*KpX5&tr_x!IZQdVkKj=iZa^o$s7n z_tuh4v{)hrKo@T2w-KHBbk9#Bl0VaSg{Wjpo<0wPmhQDPomGG^Woz*c-QmNBL!nS# zUmpWVrLfs>{P^)w8axl5k1St24zJhi@pw!$+-|qojBprUmc)aNCjK_7)!N&O+S*!+ z#WE^EEC$R04=};OU@%xLz-^S4mf||}dVQROS`CE3(lq+8lZHqH_y8~9fl8%PlA%y4 z6hI@InjoQ|kP{>*$dwfrS;*ybI}Mpk1_KF*7zYq30S#zGuv!5n)Qp^A7@DRH2EB*? zFwl!YQ512SngR$S1(ONEV6dmBClClYok$=tF#!hy2aQ?G8VuwWal{`z!W5=d6k1zb zCo$=CIwKM^HbSGJ#>U`qICv4sv*{u(_M$h4ASa?sCQ|@`6F4y^MP+3rfyI54mzUqZ zjUY={dPqc;B1F*2z-|XdVTauYn-x}`)V&vD9JE@k8D@=!a3Vwv5(#p1b0-N|C!woH z6LipNG??W`*QAVwQ9;FVTtW&7ape&TK~AOyEX#7>XqHwgNwxro>(@y=7#egq92P-D zff^nj-k&=vBOMjgZ!6gjZTzPBsbMPG#0$--O*Q2FMY3;pns1B!AHODB)K`DHc5gkezC~`=Rm4 z-E-sPm;Wjme%t9<%<2|}ST@j7!w(IFzcS>GJs(>WUG2X5+;)f9X-gCHF4yW~TlVE; z|6D)apT>^gOMclRYd^Y}{abZ*p>UP|Op4Sp8WJ8`_%0RshZ$L!LlwRqaBr(em#{i;Cycp2@DtUOKaPgZ`H#HS%rRv5g*oXu*M#ms9+T zwxu1JFGPnI7yC0WMNERS@|#PtMz$;~P?xOpuUbI$uN0?8f@@~{D;A{ucUHVS(hzGY zYOGt^EjW7han4&wm9a}n?K!`0XuYtX9XbEKn%)-`mM&edEV7^YVqoBt^oHF>8FpSY o;3`)CmXU5x+^L%`9AFfKZXrCQwxOY!Y4ZJmLR|^}Wqx(@|Hr$35dZ)H literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tbrn2c08.png b/Tests/W3CTestSuite/images/PngSuite/tbrn2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..8c214746d5b9424137601faaeb2ab90d479a3e89 GIT binary patch literal 1347 zcmV-J1-$x+P)37aOzw^yG zIltfUYq)*;Hb;Wn?FL@HeAzn8c(m-IDBit$x4*x?ySw{;CJ;q28jU6r2|!VlCr_TF z)9DuRUmQNQ-EL2%{>=g*%XKYkpEM08zG6adC7 z0233ets%>}-7G9%GI8q`Kr|YyOl>n7r|86q6QNM3VK9Eo5$R-fiJ2L^UKHhT|HK6G zIE4c7c--&z?@REd&*!VPGntI#`RXqn*o+trWXqI6E%V)1=sIgVJbHx5gdh+Ma{W4E zV@SH^CO4nvo{o);y?OJdRf`4(2bY$XQdUQsk${DJ0^1UCD`A0^0y6?XKV)>2?rtt# zq*!Fk<+!K*I?wz%>#{5>)zS_k&~<%#d%L~8J(QypzR|F%JkV)_ixxVKOj%f8XL6Fz zxJ{awThlk*^ZskTUSI*3o11I?C+Y|`H#dP)Dz#;EB#TU2$V03^NXM%oswBz)Q%ogD zC@7(k4I5@Zuf!FI*Rkdm=iqhHFul)oG_yJrXfD`_p0e84_ zgBt>Z$z<|)JRXmySS;>efu?D-=I-vU<&K3}u);Igggkr;mO6qo=}TO)Ic%szD^92Lo#$ODlS(F&z^PNGYLnDm z6@I^eWo4yQDpfuCd|nU)UDq+eFt}k8%rFeSNRlK7LMoLi6bhAikH=%N)D>9QqSvoq zU$}6g)}yMb&1M4_fGwy@Spi$p=81cBU6*CKnjP@@d=0O3<8A8q`^{!^ttXeuiK56k zhyjSA=yW=Z#iA_Bx?VSAX0y4yy}cn}BSAWy4g>Uq3(cXvsqu>Cul-4nXDehW}G>5=1>H{`1p9OX*3!$nM~~|X~59X zP$Uxh`0-=&r~PG1M@NS!iq$@Jb#*o0VimYtu3#`INzy?I?7%nq^5x6bwZUL$4zSzp z;cz${4uAOYp@qIXkYH$NNRp(=dT(#9_LC@z)6>)U@893s+xu7PXlS8L4F*Fv9F`<0 zm&@hzc|Z_^U@&<6`0>_BYtc$Nx?C=&(`hssRaLcEEP+7a{Q2`68yknuPU{MQW53q;T7w>hMpe;(lP6D}J$v@kr%yXOJ4eV4{00Ad@{jMg4VwS}002ovPDHLk FV1i`rcrpM0 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tbwn1g16.png b/Tests/W3CTestSuite/images/PngSuite/tbwn1g16.png new file mode 100644 index 0000000000000000000000000000000000000000..dba2cbb6c300e3699eecf8410234e5394ed2161d GIT binary patch literal 1146 zcmV-=1cm#FP)>4oF>(I9$@K1>Lh)Aul3ZUO9UUI#xNsN%#{sO? zSFc>IvuDT05#;)H0K1(eiwO#I#}^kLJdjFv?C9+s7#JF=sUgX)UoTz^g(^hQ)ipAL zq6mWHN+pW2Y$&w6eDL7Yr{BKy_O`V#jMb{uHa33w^7E(1Q!#?Ny0Ni+`{w5f;`M8{ zJC&-hSE=OkY}VzPoc#DvDm{ES9De&Y8U^tAu3X8-ut|_iIvlYWhSk(;-yRCBtOSD$ zL(@FJw$|Q$;)KsPH>cBiJUkD;ajmUYo5|l)SQa3aLJ*2F8f$9>TQ-Xz7cMLGCOK+2v(}LD1j4>FO$~LTBgbsGxZ~9UUz#O-*h$O-G{&h1Z+U_{>aC z4^3}u7z`>^I$cBn5D17`BJuuxQ^{PykOddEu)0vFmiNzd_*4FB3it6kX$IHJ} z2n6JEq2mA|k^TE!E}EX2QYzzd9PjJX>$h$5`2h6#h6b7r1ORT_;JA_qES8B0Az1*c zt0>BGRaIK;{remzm1?yZMi3}U)2S2yKu3p6R+dD+zo$pkycL=RV><103Jq2$r%xB2N+!~!OQMD#3{%(x zf|yLh!^vc!rDUw{+J#}iegOdN-Ahr$KBKX}pCC%tOW91kd|7x(B!yPB+GexaR#wWl zQyGEDL=XS~JTF=>?B>mf4|%@wYLk@jMv25`BM6pVT?IhV{{DuBNhPy z$S(1i&X0CT+)_Rog0U;ixE&dHO-{Y&#LMgC49N5AqOx2bJw6}*|MT&?|L_0%KleDd z7Hwk05-|WKf3vWS_~fT^Q6#ZKck3nMqD1jW*UcTR0wTm)3rlhv8yo$8e{XLu z3#6pLV!`p_$BP*V0^Dvg+%q$1Z*OjcFx?mX?+& zOxf-BQ3>knp;lAlYylouuabJO446P5K!c`0 z4Gj$~EG!iKe2Y{aqW#;7wnH;>-S~84DA*+QCmVvx$@-6cA-lwSYFG7WR9jnVR6BN7 zt*HDxU9W!-ck0^d%7UZ06K}lu>Bd*OgRiTbd0H?8z` zs=DHaql`MRLAuMKJwJ72ccR6(c=6&u%{k+a=wtM;)IIf`2i!lDCqxZ~FUPmp&Np=q zWIWs2lv8*1%-whNdU@8)`_bWtIGQ;5cs#GKqWWI)Y{?NWwd+Rzr9{)T_t-V*sn)w6 z>Yv;_J27$bucD#1?2e^e?h-%8d7F0&g9CxDbeZGNhth*HT#-KKavKUDqc%RHoSXldj|Jx%rs+Rm&uc3WEJx zMTZhmd(!t!;peGWat^+x*9#rZ|9-Tja6aytw5qhExjk9hUzhEcZPSczbb0)-`%Yer z@yJ_~I+B+Mhn5z4k}r%JM5X1|m!%GGS&^qITJKpCOZBf7Cye^i=RB)oWBxlMUO8G9 zYA&d+UDqi(eED(4n~{~F3z2OZx3XH!zs(KzeXnBn1|y1-HYf_LC%zaM_#~mO>@dqk q2fdC$)o+Oj*6{7x+57=ke$E*I*O+B+aBi0TKp;Q2Ncb|Ry6J!TiGy(f literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tbyn3p08.png b/Tests/W3CTestSuite/images/PngSuite/tbyn3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..5b2c6cbbaa6689fd89132fc7568acf8e791393d1 GIT binary patch literal 1131 zcmWkt4NOy46#fc4vDN2z%sruKhpkwp)8fiv-5Lh^sv?w$QWfF~t)z9Zt-~_t9FC3^ zMv-QgP^`!rWTaDmRs=`0>0Hw=*JPC_kwnbQGU9+4{K?qnW@p^>{+x5qy(i~8-#NLC z-32>nflvT|&fUrFAv*QhUK~p#*V}T1s5n!OCI`Hx?oD$Yr9g~ecYcw&zP{e?_xJbr zGk{nOiv_1nohqckad5lIa?i}b<#IWlP6G{x!(lWc5P*v%@nE5ezr}1e_w}K&veINS zjR_Hn01LnaOp2h@YE35KHVO+1aUB|sW<~_15(t2$Y4l?s4L%=m11`V`g+d`GLnfEW zfLhemK}bO+B}kBwD>E*#kV>Ui8WM>FS`rWu5kRC6G@#n`GAANqXoiTISkVDQ4*iOvNvbUGb@#eI~Nl-#}z zA4^y|Nko<+M9|E@Y6Zq%h1CL!8D@^uy$@j#va_>|Fsf996CtV<3Xz$aIYr3Y30)29 zpoUtd!d(&RnwU{B3MfP(QB({eapmCmLrSI!EX#@@qFGulC)olbT)$50!O)-sfdC(T z3e?ER$kV4V-dN@%P32YZDcFnbnVZIEh9PeUH<)S&ts>_?a=Dx$YuBN&U|ehKfjAfT zm#)_RzEQ7#kkB=8Mwi#29)I(t&$hkV8+t?aUB2g&*CfmPtIsq&Z2u+{dcSI-BK^Rf zG}Xadjm6Z_Es{fxnhR6c%9Aa|B}6ZJlBBrd=+(ql+l7Yi zp^WER8n)J)J3IfbUN6hqe}7T*Av%&LABVRO94xz+I$PAnruEz!ypn91_MV)ObhXTX zq<=DhZhZXmUj-v?+Z$J~>g9fx^){7r!$X0uwVB};A{#>+99N&;YZKTl2?DOMaYNg# zik$SHt7iuj*ztRDFPkK-Cswe3E6ygytoQWBi%nzxn6||CsNg@$=(-Fl_my$phsy8y zJ0l1A?$TJn8vU`)w;$U4;#Brf!v~vwdh(~ctY(0ByjXtZhPM6O`Gxp}wJE~Id7;7G zyyMBJI_>*5|BJM1TaUf2*K_Sn|9-qYe<5L6dTIK~xx-nSUsB4Yd$PmZoF4zuBd0IN zdt@yu+f!GCMpoo|QZEG!yaOdSQ_@Cvt=_II*z8%qlp0(oNDBHk&Uw}@jsNegU`?Z;kjAz1A$z10r%C`vWEWwN%Mj; literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tp0n1g08.png b/Tests/W3CTestSuite/images/PngSuite/tp0n1g08.png new file mode 100644 index 0000000000000000000000000000000000000000..caad31deae31759bbdb4a4e7091179a160d04a23 GIT binary patch literal 689 zcmV;i0#5yjP)zO|M{6}M{!>G;u_S>3pA*1_%UGsJ{n5oJRTLwPMj?TWH!*$Ig5(52xMcPi!!i>Wf zT`oW68Y{C#5sFhp6<&f;Q)N03mR_2AH8QcJ1)k|e!X!8fCMp5S*Zg7ldL$Lx{UTuo z!V$9tpv(&3ovr}h)oiG!?gFe;MR}vPIi(YT;Rf4Ug(?)2=>}N(m{)Q=D{#oR0{Huj zQ%%+84HfQe2jDwsu?^WhuqYQ&v=0TDR-uvGf>4zuK60V~ zz^Otl2!!YTf++~pnd5F6(gD1RvQZSekVybY&rC4OryKzmiv*uC@@skBggRAX9@KJx zncUFGWGpFXlLEsP0I9#uF}(-J>?x**po|EIqg4+k*2C XKPlJEn&JD-00000NkvXXu0mjfM(;TO literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tp0n2c08.png b/Tests/W3CTestSuite/images/PngSuite/tp0n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..f26be44679c7613670ce3a895972db572be11cb9 GIT binary patch literal 1311 zcmV+)1>pLLP)37aOzw^yGIltfUYq)*;Hb;Wn?FL@HeAzn8c(m-IDBit$x4*x?ySw{; zCJ;q28jU6r2|!VlCr_TF)9DuRUmQNQ-EL2%{> z=g*%XKYkpEM08zG6adC70233ets%>}-7G9%GI8q`Kr|YyOl>n7r|86q6QNM3VK9Eo z5$R-fiJ2L^UKHhT|HK6GIE4c7c--&z?@REd&*!VPGntI#`RXqn*o+trWXqI6E%V)1 z=sIgVJbHx5gdh+Ma{W4EV@SH^CO4nvo{o);y?OJdRf`4(2bY$XQdUQsk${DJ0^1UC zD`A0^0y6?XKV)>2?rtt#q*!Fk<+!K*I?wz%>#{5>)zS_k&~<%#d%L~8J(QypzR|F% zJkV)_ixxVKOj%f8XL6FzxJ{awThlk*^ZskTUSI*3o11I?C+Y|`H#dP)Dz#;EB#TU2 z$V03^NXM%oswBz)Q%ogDC@7(k4I5@Zuf!FI*Rkdm=iqhHF zul)oG_yJrXfD`_p0e84_gBt>Z$z<|)JRXmySS;>efu?D-=I-vU<&K3}u);Igggkr; zmO6qo=}TO)Ic%szD^92L zo#$ODlS(F&z^PNGYLnDm6@I^eWo4yQDpfuCd|nU)UDq+eFt}k8%rFeSNRlK7LMoLi z6bhAikH=%N)D>9QqSvoqU$}6g)}yMb&1M4_fGwy@Spi$p=81cBU6*CKnjP@@d=0O3 z<8A8q`^{!^ttXeuiK56khyjSA=yW=Z#iA_Bx?VSAX0y4yy}cn}BSAWy4g>Uq3(cXvsqu>Cul-4nXDehW}G>5=1>H{ z`1p9OX*3!$nM~~|X~59XP$Uxh`0-=&r~PG1M@NS!iq$@Jb#*o0VimYtu3#`INzy?I z?7%nq^5x6bwZUL$4zSzp;cz${4uAOYp@qIXkYH$NNRp(=dT(#9_LC@z)6>)U@893s z+xu7PXlS8L4F*Fv9F`<0m&@hzc|Z_^U@&<6`0>_BYtc$Nx?C=&(`hssRaLcEEP+7a z{Q2`68yknuPU{MQW53q;T7w>hMpe;(lP6D}J$v@kr%yXOJ4eV4{00Ad V@{jMg4VwS}002ovPDHLkV1g65a037U literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tp0n3p08.png b/Tests/W3CTestSuite/images/PngSuite/tp0n3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6cf9e44c2eab2ce78201d1ee1d1486a8cb5299 GIT binary patch literal 1120 zcmWku4^Y!}6#oo1Y``!2Sxj%puK^cT1U{Wq4vTxr%@7=xkx%b}Zz3+W1x20{O z0)>G9sFcl$w}=+~f1mOvQqfv9NEBC_q)Yy7|l5KCMClh-|M~BU3qk+gs zuq+xH8dMY%3e?q+Q|ET0rl!VXvE)*ytgO^%V7H@20E5B6QUuTHbh@@S6ciL_wb}t8 zoK9dKn8PRowOXy!0xqajDhxxZRJs`?Bmi~@C<-=YP~h`{I-mxyKq{3=$P!D$VxSnM zr4aHUjsaMRiAjfE0b*ie^c13^qM#-L;bZ_Jg`fZ#A37Z%K>{5^(=(P&igNu8y==xsxr6;_7N%gxPgLQ^9e=OdAwolVkW7MYouE*Go< z!qP$_3V4JF%rx|RU;ujPS+F|j6r}HMa4?X|BmErUQHV8BoUN+KcE0t|+SNk3=`l-+LUgU za&`2~;!m>F&Z~K~YHF$2&|0FKa5cDod|c}OWxdaLf}L$(C9UaE1Jfe4J-Pgee_@4j z>z1Ius?(JA!%y~FIo&1RMsdWNp$p#TknhVUelJ>~AL;888JPabGxs(PR@ocYYE{|Y z34Bqa3X88wFU&RvM%+-v%h$-i40HO;J=#}0^1%F37YcRv$#UAj2C|87`T97j0af7+%F z>pO=B_jR5PkX(E1`FpL{ztkAMcc-V!X&ygPd8@zY<{vMma&L3f?|i*F;Nq>zgTt)B z<9P=6L$Y4+#lHAY-LleC)lcVjCOoKLTD*&1z2U`9a5y07Z) zD<8dgbC37HV4wWPa^~P<-1*?ES&Ifj_u$qxlV^ZJh}F< zqtp5Dc>A=uHwxpi3eBAgm(>=HmMc-q_stJUPk8ru{xlZ%?CRmlvjV*pL9N}!+GmS) je|wH6>P+8$>V8jzBlrubsxJLUfYB}}2w literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/tp1n3p08.png b/Tests/W3CTestSuite/images/PngSuite/tp1n3p08.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5fd6ec32b3f74e1af000f88b18f1771174d2c0 GIT binary patch literal 1115 zcmWkt3rv$&6#feQ;$QqXe#U;GxDKgUrPJcdV%-{6uyrCW6SWG20WGF=FxO!nbPi|7 z3ZqCfAr$Ll4KmUxkF`8Tv*BFRFxO<22pNf(nPtQkW_)FAbCa3u?mo`Bx%bQY&Ua3( zV|USO3}3(pz!dCM?IAw>|GhGnSXE!!RpR1IdD=YiT6(rDc2@#1@w+wq)F)1y@cDcL z0|P9OkpYVZXU?1{W}s5Rp%RsaT2&@h_;Dden}Wm$${bUH0f z2v}%oP!vT#^YZ{>-F~b_If-XyB*6|o}Gn_g^j@-+|lXCE24-#dW3n*%P6$A zw$5SBZnp;oXlQ^!L50Jx*=#DBiZiGK8Z;T6)9!C>&fa~5ZpGEh-bL1=LwWo2cz zZo$hDl}-|oqlgf+vani#NmyaEz+#43Me5#qMK{OGeI)MN=IXQDgtewc! zq7iDS6$;!DlCEX23RVW0P$*o^fPg?%@cAGnQvr_Sgb*?uBbAbD0U@TRNj+EwOdt@T zK~tbcM@J9mOo~WHc}MpY?S(RW!${7*7pU^~S@S=OX50kpmJ@+Z=3b{2Z`rr zE>skDtEb+0;gjtz_k~_pe4}xH^ol5X;OK>xhh1NVLhshi)MS<1&Qz4&Y%ZmaZ4*^D zYscoUA566v6A}^vwZq2!D^Am=GY>WN9CLkNmJ&Czd@ZTnHrCYR&wjeCDZl>G#k+6o z^^)8J_g5@GM0e`!`qpGBi@ z*_&5$>SQ0sd0GytM*M*cI{ooa zcT{hEeopCcdT+}QPyTRK)erJcmP(KOsO!2kycEB*K25N)Ff_EAcQO@q=e%EQKFhqG zfBaRwUe(p|&xgsHrNpPQDznxs9?I4JoOV#WM;YGkbo*8vId>)AEoocRmHu34bhXBv zemQ91m6Y8`%N*aec89!Zt9#=rYG?yLCFtF}=w81n{@;uIb;0^bOJPIZmLA@zYmc+v zjID@Vj&0BWCAW3#FgHHWIHkVy6w9p$d73ryUsF@8%eU(m d3jC~O*bxKgq-A7eae@3epg>)u`Xaxo=|74`e1!l2 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/x00n0g01.png b/Tests/W3CTestSuite/images/PngSuite/x00n0g01.png new file mode 100644 index 0000000000000000000000000000000000000000..db3a5fda7ed52e31e18821afa803ff8d46c78966 GIT binary patch literal 49 wcmeAS@N?(olHy`uVBq!ia0vp^V893>g+Dm%2U0BQj=qizjBN`HUrdV!0JdTYQ2+n{ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/xcrn0g04.png b/Tests/W3CTestSuite/images/PngSuite/xcrn0g04.png new file mode 100644 index 0000000000000000000000000000000000000000..5bce9f3ada0dd29a907356dec8710f02924a4241 GIT binary patch literal 261 zcmV+g0s8)lP)(o{Nm1e)D(A&@ z?UY~^C2?zk4M?8xnuw|Kw18~__kYa@{I%fUp9#^8JuDQsX6#Q(4GQN6pwM)Vz$nP? z1>};~9;WR^3p?mgx`3~~dw6i?T?09XF9&dsDkLcED(QLb)q|kd{vO)t=jcH9L%bjo z31if87M_bv+f^fkDKRm(E{%Z|auDS3W&;=GFtCB-XJ{y;fpq-<9@)Z0`2UG(00000 LNkvXXu0mjf)Z=N9 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/xlfn0g04.png b/Tests/W3CTestSuite/images/PngSuite/xlfn0g04.png new file mode 100644 index 0000000..1fd104b --- /dev/null +++ b/Tests/W3CTestSuite/images/PngSuite/xlfn0g04.png @@ -0,0 +1,13 @@ +PNG + + + + + +IHDR )IDATx] +0 P*@# + +#T10lPF`ؠF=IQ*u`%qk +H񚈩mߟ э=,fOK + +t(F ;P{xp]9/p*$(*yՃ@C  cqNU#)11.rf0gh(tEkIENDB` \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/PngSuite/z00n2c08.png b/Tests/W3CTestSuite/images/PngSuite/z00n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..7669eb8385172325c399f3229cfe834f886fecb2 GIT binary patch literal 3172 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj{$|z@zQy;uunKi&25+{%6Mj{~3NT zfY5g^iOI$zg{%daG8T~8Gz1(pwSa?x0cZixpELm=(-{~zY2*W_>0lpFKMoM4)4~E2 z)2SW@=%!OQ4zQR`#UR3NI<+joX*yLbz-Kz;kxamJ3L}}Y>68Q!QKpk^0kNi&7Y8Jm zPDUJ%W;&@sM6&55SwN2I#K!@drV|+lP)Gd0N=r*M+Cfdcn4n{+d)GIuBfe}0=haRfYbdY4|HeAW8JeNk!}u< z>b4FPx}gJ|u3eE@R|Qyfc?U*a*nwS_tjMJg1H3vP0MMC|F?z3LnBH6wQvU~l^-l+Q iz3w1HzgHBc=YRuMlTL2m+d~-u0000811+tMcYXzcm?aHZ#?gdL8ij-oNLTu@go{<42!=C2J(%l`2yyuQm;^LM9XM_s7MQs$ow Yp_Bdc41*5p0G-U>>FVdQ&MBb@0O=}Ly8r+H literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/PngSuite/z09n2c08.png b/Tests/W3CTestSuite/images/PngSuite/z09n2c08.png new file mode 100644 index 0000000000000000000000000000000000000000..5f191a78ee5601a45f1add2a3ad7a77b7b1ae0f1 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WmV3H5hE&|zdeNJ&K|z4|!mJGk ze#?uM?J%qpNVJm;SDAGELf+biOrjbV{C6uqc^By}RQhy!A*198PSpVRZwtidR0X(h zmlOPO>811+tMcYXzcm?aHZ#?gdL8ij-oNLTu@go{<42!=C2J(%l`2yyuQm;^LM9XM_s7MQs$ow Yp_Bdct_kk@3Uo4qr>mdKI;Vst043R2BLDyZ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/SVG-1.1-monolithic-fixed.dtd b/Tests/W3CTestSuite/images/SVG-1.1-monolithic-fixed.dtd new file mode 100644 index 0000000..7ddd73b --- /dev/null +++ b/Tests/W3CTestSuite/images/SVG-1.1-monolithic-fixed.dtd @@ -0,0 +1,1622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/SVGImageTest.svg b/Tests/W3CTestSuite/images/SVGImageTest.svg new file mode 100644 index 0000000..f20c9d8 --- /dev/null +++ b/Tests/W3CTestSuite/images/SVGImageTest.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SVGImageTest.svg + $Revision: 1.3 $ + + + + + diff --git a/Tests/W3CTestSuite/images/animation-add-BE-09.svg b/Tests/W3CTestSuite/images/animation-add-BE-09.svg new file mode 100644 index 0000000..7023456 --- /dev/null +++ b/Tests/W3CTestSuite/images/animation-add-BE-09.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test 'additive' and 'accumulate' attributes. + + +Eight animations have been defined. +For each animation, ruler lines and text are provided to help show +what the correct behavior is. +The red text shows the values for attributes 'additive' and 'accumulate'. +The black text and ruler lines help show the change in height of +the rectangles over time. + + +In the first row, a single animation which changes the height of the rectangle +is defined for each picture. +The height changes from 10 to 25, and the animation repeats (total of two loops). +The four pictures show the effect with the four possible combinations of +'additive' (either 'replace' or 'sum') and 'accumulate' (either 'none' or 'sum'). + + +In the second row, two identical animations change the height of the rectangle, +with each animation exactly the same as the corresponding animation in the first row. +Again, the four pictures show the effect with the four possible combinations of +'additive' (either 'replace' or 'sum') and 'accumulate' (either 'none' or 'sum'). +Because two animations are animating the height, the effects of 'additive' and +'accumulate' are sometimes different than when there is only a single animation. + + + + + + animation-add-BE-09 + Test 'additive' and 'accumulate' attributes. + + + + + Test 'additive' and 'accumulate' attributes. + + + 0,4 sec. + + 4,8+ sec. + + + + + additive='replace' + accumulate='none' + + + 0,4 sec. + + 4,8+ sec. + + + + + additive='sum' + accumulate='none' + + + 0 sec. + + 4 sec. + + 4 sec. + + 8+ sec. + + + + + additive='replace' + accumulate='sum' + + + 0 sec. + + 4 sec. + + 4 sec. + + 8+ sec. + + + + + additive='sum' + accumulate='sum' + + + 0,4 sec. + + 4,8+ sec. + + + + + + additive='replace' + accumulate='none' + + + 0,4 sec. + + 4,8+ sec. + + + + + + additive='sum' + accumulate='none' + + + 0 sec. + + 4 sec. + + 4 sec. + + 8+ sec. + + + + + + additive='replace' + accumulate='sum' + + + 0 sec. + + 4 sec. + + 4 sec. + + 8+ sec. + + + + + + additive='sum' + accumulate='sum' + + + + + + + + + + Scalable Vector Graphics (SVG) Conformance Suite + + Copyright 2000 W3C. All Rights Reserved. + + animation-add-BE-09 + $Revision: 1.1 $ + Release 3.0 + + + diff --git a/Tests/W3CTestSuite/images/animation-extRef-image1.svg b/Tests/W3CTestSuite/images/animation-extRef-image1.svg new file mode 100644 index 0000000..0651f69 --- /dev/null +++ b/Tests/W3CTestSuite/images/animation-extRef-image1.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + Image 1 + + diff --git a/Tests/W3CTestSuite/images/animation-extRef-image2.svg b/Tests/W3CTestSuite/images/animation-extRef-image2.svg new file mode 100644 index 0000000..d10ee80 --- /dev/null +++ b/Tests/W3CTestSuite/images/animation-extRef-image2.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + Image 2 + + diff --git a/Tests/W3CTestSuite/images/animation-extRef-image3.svg b/Tests/W3CTestSuite/images/animation-extRef-image3.svg new file mode 100644 index 0000000..408a479 --- /dev/null +++ b/Tests/W3CTestSuite/images/animation-extRef-image3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + Image 3 + + diff --git a/Tests/W3CTestSuite/images/black10x10.png b/Tests/W3CTestSuite/images/black10x10.png new file mode 100644 index 0000000000000000000000000000000000000000..2e95303a9d7667c15349a92a786d3afd142a509e GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl{SNcITwWnidMV_;}#VPNPZ}sFQQ{g=5}cn_Ql40p$`Fv4nOCCc=Nh6=W~^syw(|KSRiGMK zPZ!4!jo{>zgoGdbM_3qz9Yq6J7ju1V6S;VhnPHhYqwqE#yRSfn44$rjF6*2UngHEA BH#`6U literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/blue1x1.png b/Tests/W3CTestSuite/images/blue1x1.png new file mode 100644 index 0000000000000000000000000000000000000000..648583295a7af9a8290b844532e4f92175de9859 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2s6ii6yp7}lMWc?slj7I;J!Gca%q zgD@k*tT_@uLG}_)Usv{9Y|I>*x^MYn8-YTSC9V-A&iT2ysd*&~&PAz-C8;S2<(VZJ w3hti10pX2&;y^__o-U3d9M_W*5`OSAFfubT++1~cGfLab;lm-&Jub9LVMNba4#f en3A*JB0~+`U$dj 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/bullet-white.png b/Tests/W3CTestSuite/images/bullet-white.png new file mode 100644 index 0000000000000000000000000000000000000000..d4c4abfd8215b4d479f6b813aa7f4cf50a02f3d4 GIT binary patch literal 971 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&v7|ftIx;Y9?5p`5I2p)SNcITw zWnidMWngG%W?=aFA4orAU?|mNV0abJz+g3gTe~DWM4fL%KYa literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/bumpMap.png b/Tests/W3CTestSuite/images/bumpMap.png new file mode 100644 index 0000000000000000000000000000000000000000..1ac02a8da4f24b694fc9d92c854b6f9315f15e14 GIT binary patch literal 1998 zcmX9{Oi@~n8&|n2kbraV71^6UxB;^}Wm5_OlA9ld|A5?QPLU{Q695N80YGX2 z_~pNDoC2Ua3V>HT09bn(0G~gVx`tN*fZv*#mXcd@CT_fd2#e_%vY}Nznu)Qb{b#C3 zf@s2zM@ue09m>BkQ1HXtx%VTQ0CYrii8Q9j4r!SX|m-ucYm$VZfb2ReqG);rXhL9QG+~*e<@=ETD{QZ*`_b;-2MlkI%KE za-hCTm|J(Xw|2w#Lk?kfWf60!Q(h9p#@|AvJctPMcRks!69S0f(uc#3aPyVPhV)YL zQyV*Z)|RYRqo>&`9IGF z=}j;zrF7j0r2nl*nTU$OZ%9^5Oh>`>;rll?bL@ocyQMv?sA}%GAY7~sO?}g#y_YEp zgkFxRugKn>zz{gNOKHSh^e9>nvvI>gVm6L(yteChFKj9(j{$RVI4dJ-S2XQ~(Jo%) z4CtAF8&XLdCB)2>98%T3L>R=t3>BM29d3u&EnnmaZ=*cWH+ zjS$*)GB34$V}-JTmDtEFLDEwmFT>frM1d;1_xKR!nij%%qMhy0$d5xDVqq;GY+#_oN5Y)XELcakOD+1&exEXK; z6G>?S-bKo7T4Vlt%kyPam2QY=hukhbIkw(JNTwWwd2BgyuyQ=iw#>3OiLfW!KW#Xz2{Nc|7lJc+|%%$;5` z<)wU^o)6{h0G=?XvAIJ-=Jgi~l8!x+@+@$iU3Ld8dBIT8?1 zWfGW6n~2rL;m&07(~GF}Lknw0QFRTn9yNP0Tg*l?HlUY`R~o-2m`~8Ut7S3B8I!b= zbhVz8mu72=w~$-G{U%!cH`HT)L%#GY`!mHLlwt|IbvDSm;7#L9YmM7Fg!O>X2blLq z$0+^9O3g-oT(5v9J}z`!NoJRM@B~cwPR2V?yfaw>4=yB(V$rMWb>r7Y0iH zJ(WFny45p}Z(|*>tS1eWkbB|JEHHCbtQGKVRsT0}m4YB&Yo*<;Z+itg(l^ zQ|VlfcZ)BXw(d=e>vF_$%u|}`>(ZC>HBGhCVhLfegZ)ZRE066`!u124rGmn&`kf;tvr7dcK8e!XHFr#`Lb{2j=Viu7gu(-?%` zC%K9(dwPTYY7`=+p`dQ9bW?jFX}BdN+#odQ_)ykEfWo{EQl(ya2xY4Vd2pb6{TqHe zXy3|dyI(1ek(@&f+-P``A&7zvy7Ah+<mdKxz7gc zN_?5I78F)8ax`?S#6cu^N`9bDDO~lw15Pq^GAE=__SPenuQaWX6K8KB^Fm0>LrB|D%{nezQ(W1Oj4OE_no9xI449Lu| zSzy6Qzm}VN{7*R(KX(F*=V*w9l}PPEDSBy&mgU$@)c(4Yk;@$$R=d2sToV~t7c2m& zUZG2(?(?r&kI2tfH0yjQ7a7@W<#S`dg+hm}i4x9-;mDM;V7KSAEPeb&r;(zCCR{SYz4d zlbhYqs2WZcB;1D_ca?nyWg%Ki1DOOQoDf?2Anrj*q&f=$XwaMY{U@xS6JEMMWRRJj KmG*h6RP{gXQx#zV literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/bumpMap2.png b/Tests/W3CTestSuite/images/bumpMap2.png new file mode 100644 index 0000000000000000000000000000000000000000..1609323d461c897e95d34a54e1f4efb520b385db GIT binary patch literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^MnEjb!3HGr0)77gDVB6cUq=Rph~t0UA20#=3dtTp zz6=aistgPb%?u1b{{!h~3=E}u3=FU085pdlGcbtfXFfTi&A`AUBb6Uf%i<0Yy+x{Lu#}_=8BlwG6^_bG4hb^&~B_y6?o75$k?HV zwcqZR%!9l785LtW?}pJ+XIXgS}i^_QBsPVy);Xnf_+ zSi8QZ?Spd0iDsEU+#UZNKE|tj(_itYdd08cfWM7Xs#t)kF7jyAI!KC7d6w_&EcN8X zeGfT@rYPLE^N=*5-U*RZ=nZH8yGx3nW#w-3k z4fuSbj34N#M}h%+8MJ~NmtK_4&=CH_vMGI^^VitsS(9Bl-5HoVg!&t_ECc>Bc*!j= z`9ImE|4+-S-MpsD`-DKDrz-byYePucf~rT%R}zm@Ftyb?eZAW_>#{dUYsQTu9KiUP zZ37I&DHTT!CJ9W9VqgTC$`%R=*eMk(E$qH$`GBmdlnYz70__UwZ}_kv<1Z61T5Om; zpK168azK<^qv~eH*NPxfTc*Rzm(tle6rw6p9B@XqQ~`ScH#3U_LsZq`4_z6bEP-i? N!PC{xWt~$(696ET>%#y5 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/bumpMap3.png b/Tests/W3CTestSuite/images/bumpMap3.png new file mode 100644 index 0000000000000000000000000000000000000000..646f5de57be198b4c6aecb64af0f5a2c2ff5fe7d GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^MnEjb!3HGr0)77gDVB6cUq=Rph~t0UA20#=3dtTp zz6=aistgPb%?u1b{{!h~3=E}u3=FU085pdlGcbtfXFfTi4OA;p;u=vBoS#-wo>-L1 z5RjOeSEA?V8lq5UtY>Vt^7$j68H^I1E{-7)?#T%ftcw*5q?k&08M}EoH(4A1$(|;{ z?)UTjfe-R+jx`g0d@Xn%vdgL?*^n;;+je)qY9~ zWz$zYCTw7;@KvGKq+DjBSc8mn7yE^)d|c-nCb6$HYDf8Wz9WGJZktH! zhVPZM!wNXGYMu(mYREwy#n%VBIeP2Gll|Sk_}?^VctQe+6i+xZE#F{PnV(JDF@fX~ zbHlVv=13Qnvcmce>+|&yz8GP_hhWbwdlu^v-v@jV@ngVO(&KfLZvji|ni)`BuPd7M zhNLwkO$WL!ZQY@wYwDMzxVEP|-3)Eza=8rYtrmq=pM>RGqGOpGi1r`+2`k}UDGI5= ztu6|v_+>sCy{ssg7+8IFWW%jDd3^DdlT3ni?K(9Ogrs4*Y6Lg{Xd?s+bp5@JtDjs& z3vQroyT5)m@dY|N`>FS{hXoQqhd%zeqr_^iA26)9-+w>dFAfqjv~d_b;xUZ()vkAH e5yfKp7kQSc8pYezJkSItO$JX_KbLh*2~7YpeIjuH literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/convolveImage.png b/Tests/W3CTestSuite/images/convolveImage.png new file mode 100644 index 0000000000000000000000000000000000000000..f8fb85230a34c5a48fc30a3cf8264ab23925d0fb GIT binary patch literal 9281 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/coords-units-01-f.png b/Tests/W3CTestSuite/images/coords-units-01-f.png new file mode 100644 index 0000000000000000000000000000000000000000..4a075c71727246c17fbbf91577398a0ee0dffe0d GIT binary patch literal 29842 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Verify the conversion processing of percentage and fraction values relative to +object bounding boxes. This is used when defining linear and radial gradients +as well as patterns. + + +The test validates conversion for coordinates, width, height and length. The first +test defines three corresponding linear gradients, which specify coordinates +using percentages for one, fractions for the second and user coordinates for the +third. The second test defines three corresponding radial gradients, which specify +a length (radius) using percentages for the first, fractions for the second and +user space for the third. Finally, the third test defines three corresponding patterns, +which specify their width and height using percentages for the first, fractions for the +second and user space coordinates for the last one. + + +The rendered image should match the reference image. Also, the text may +show minor differences, per CSS2 rules for font selection and matching. + + +The test also assumes that linear and radial gradients, +as well as patterns are implemented. + + + + coords-units-01-f + This test validates the processing rules for converting coordinates and length defined in fractions of the current object's bounding box to user space coordinates and length. Note that this test assumes that linear and radial gradients, as well as patterns are implemented. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bounding box relative coordinates (percentage and fraction) + + + + + + + Percentage + Fraction + User Space + + + + + + + + + + + + + + + + + + + + + + + + + + Bounding box relative length (percentage and fraction) + + + + + Percent. + Fraction + User Space + + + + + + + + + + + + + + + + + + + + + + + + + + Bounding box relative width/height (percentage and fraction) + + + + + Percentage + Fraction + User Space + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + coords-units-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/copyright-documents-19990405.html b/Tests/W3CTestSuite/images/copyright-documents-19990405.html new file mode 100644 index 0000000..e65f61f --- /dev/null +++ b/Tests/W3CTestSuite/images/copyright-documents-19990405.html @@ -0,0 +1,89 @@ + + + + + +DOCUMENT NOTICE + + + + + +

W3C DOCUMENT NOTICE AND LICENSE

+ +

Copyright 1994-2000 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en +Automatique, Keio University). All Rights +Reserved.
+http://www.w3.org/Consortium/Legal/

+ +

Public documents on the W3C site are provided by the copyright holders under the +following license. The software or Document Type Definitions (DTDs) associated with W3C +specifications are governed by the Software Notice. By +using and/or copying this document, or the W3C document from which this statement is +linked, you (the licensee) agree that you have read, understood, and will comply with the +following terms and conditions:

+ +

Permission to use, copy, and distribute the contents of this document, or the W3C +document from which this statement is linked, in any medium for any purpose and without +fee or royalty is hereby granted, provided that you include the following on ALL +copies of the document, or portions thereof, that you use: + +

    +
  1. A link or URL to the original W3C document.
  2. +
  3. The pre-existing copyright notice of the original author, or if it doesn't exist, a + notice of the form: "Copyright [$date-of-document] World + Wide Web Consortium, (Massachusetts Institute of + Technology, Institut National de Recherche en + Informatique et en Automatique, Keio University). + All Rights Reserved. http://www.w3.org/Consortium/Legal/" (Hypertext is preferred, + but a textual representation is permitted.)
  4. +
  5. If it exists, the STATUS of the W3C document.
  6. +
+ +

When space permits, inclusion of the full text of this NOTICE should be +provided. We request that authorship attribution be provided in any software, documents, +or other items or products that you create pursuant to the implementation of the contents +of this document, or any portion thereof.

+ +

No right to create modifications or derivatives of W3C documents is granted pursuant to +this license. However, if additional requirements (documented in the Copyright FAQ) are satisfied, the right to create modifications or +derivatives is sometimes granted by the W3C to individuals complying with those +requirements.

+ +

THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO +REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR +TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE +IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, +TRADEMARKS OR OTHER RIGHTS.

+ +

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE +CONTENTS THEREOF.

+ +

The name and trademarks of copyright holders may NOT be used in advertising or +publicity pertaining to this document or its contents without specific, written prior +permission. Title to copyright in this document will at all times remain with copyright +holders.

+ +

----------------------------------------------------------------------------

+ +

This formulation of W3C's notice and license became active on April 05 1999 so as to +account for the treatment of DTDs, schema's and bindings. See the older formulation for the policy prior to +this date. Please see our Copyright FAQ for common questions +about using materials from our site, including specific terms and conditions for packages +like libwww, Amaya, and Jigsaw. Other questions about this notice can be directed to site-policy@w3.org.

+ +
+ webmaster
+ (last updated by reagle on 1999/04/99.) +
+ + diff --git a/Tests/W3CTestSuite/images/diagarrow.png b/Tests/W3CTestSuite/images/diagarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd284e810545d7a2dce6419157dbb59a6863b27 GIT binary patch literal 997 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&v7|ftIx;Y9?5p`5I2p)SNcITw zWnidMWngG%W?=aFA4orAU?|mNV0abJz+g3 + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/f.js b/Tests/W3CTestSuite/images/f.js new file mode 100644 index 0000000..a19096b --- /dev/null +++ b/Tests/W3CTestSuite/images/f.js @@ -0,0 +1 @@ +f() diff --git a/Tests/W3CTestSuite/images/fillChangeColor.ICM b/Tests/W3CTestSuite/images/fillChangeColor.ICM new file mode 100644 index 0000000000000000000000000000000000000000..dc99698e4a14112094326e4f362ea227c07555ac GIT binary patch literal 740 zcmb7?%SyvQ6o&s6F9ktdxO8z46pO7QxamgFsI`=8Xi8CcF-b4jT$oI&-TMeGeE^@p zl|F$AO2H@a8CDf8Wz9WGJZktH! zhVPZM!wNXGYMu(mYREwy#n%VBIeP2Gll|Sk_}?^VctQe+6i+xZE#F{PnV(JDF@fX~ zbHlVv=13Qnvcmce>+|&yz8GP_hhWbwdlu^v-v@jV@ngVO(&KfLZvji|ni)`BuPd7M zhNLwkO$WL!ZQY@wYwDMzxVEP|-3)Eza=8rYtrmq=pM>RGqGOpGi1r`+2`k}UDGI5= ztu6|v_+>sCy{ssg7+8IFWW%jDd3^Dd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Verify correct operation of the five compositing modes + of the feBlend filter primitive. Five text strings + blended into a gradient, with one text string for each of + the five feBlend modes. The string indicates the blend + mode. + + + The rendered picture should match the reference image + exactly, except for possible variations in the + labelling text (per CSS2 rules). + + + The test uses a nested 'svg' element, 'text' element, + the 'enable-background' property, and linear gradients.as + well as basic fill (solid primary colors), stroke (solid + primary colors with stroke-width lines), font-family + (Helvetica) and font-size properties. + + + + filters-blend-01-f + Overall filter effects test case. Extracted from example filters00 in the March 3, 2000 spec. + + + + + + + Examples of the five + feBlend modes. + Five text strings blended + into a gradient, with one + text string for each of the + five feBlend modes. The + string indicates the blend + mode. + + + + Example feBlend - Examples of feBlend modes + Five text strings blended into a gradient, with one text string for each of the five feBlend modes. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Normal + Multiply + Screen + Darken + Lighten + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-blend-01 + $Revision: 1.1 $ + Release 1.0 + + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/filters-color-01-f.svg b/Tests/W3CTestSuite/images/filters-color-01-f.svg new file mode 100644 index 0000000..b70ca61 --- /dev/null +++ b/Tests/W3CTestSuite/images/filters-color-01-f.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test which verifies the basic facilities of + feColorMatrix. + + + This test uses the following elements : a nested + <svg> with a viewBox attribute, <linearGradient>, + <filter>, <feColorMatrix>, <feComposite> + + + The test case shows five rectangles filled with a + gradient showing the effects of feColorMatrix: an + unfiltered rectangle acting as a reference, use of the + feColorMatrix matrix option to convert to grayscale, + use of the feColorMatrix saturate option, use of the + feColorMatrix hueRotate option, and use of the + feColorMatrix luminanceToAlpha option. + + + The test is somewhat self-explanatory as the strings + document the type of feColorMatrix operation that is + being used. + + + + filters-color-01-f + Test which verifies the basic facilities of feColorMatrix. + + + + + + Example feColorMatrix - Examples of feColorMatrix operations + Five rectangles filled with a gradient showing the effects of feColorMatrix: an unfiltered rectangle acting as a reference, use of the feColorMatrix matrix option to convert to grayscale, use of the feColorMatrix saturate option, use of the feColorMatrix hueRotate option, and use of the feColorMatrix luminanceToAlpha option. + + + + + + + + + + + + + + + + + + + + + + + + + Unfiltered + + type="matrix" (grayscale matrix) + + type="saturate" values=".4" + + type="hueRotate" values="90" + + type="luminanceToAlpha" + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-color-01 + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/filters-composite-01-f.svg b/Tests/W3CTestSuite/images/filters-composite-01-f.svg new file mode 100644 index 0000000..ca1433b --- /dev/null +++ b/Tests/W3CTestSuite/images/filters-composite-01-f.svg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test which verifies the basic facilities of feComposite. + + + This test uses the following elements: <path>, <use>, + <linearGradient>, <filter> with, an enable-background + attribute, <feFlood>, <feComposite>, <feMerge> + + + The test case shows six pairs of overlapping triangles + depicting the six different feComposite operators. The + first row shows compositing when both triangles have + opacity=1. The second row shows compositing when both + triangles have opacity=.5. The six columns illustrate the + six types of compositing operations. + + + + filters-composite-01-f + Test which verifies the basic facilities of feComposite. + + + + + Example feComposite - Examples of feComposite operations + Six pairs of overlapping triangles depicting the six different feComposite operators. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + opacity 1.0 + opacity 0.5 + + + + + + + + over + + + + + + + + + in + + + + + + + + + out + + + + + + + + + atop + + + + + + + + + xor + + + + + + + + + arithmetic + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-composite-01 + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/filters-comptran-01-f.svg b/Tests/W3CTestSuite/images/filters-comptran-01-f.svg new file mode 100644 index 0000000..3fbbf73 --- /dev/null +++ b/Tests/W3CTestSuite/images/filters-comptran-01-f.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test which verifies the basic facilities of + feComponentTransfer. + + + This test uses the following elements : a nested <svg> + with a viewBox attribute, <linearGradient>, <filter>, + <feComponentTransfer> + + + The test case shows four rectangles filled with a + gradient showing the effects of feComponentTransfer: an + identity function acting as a reference, use of the + feComponentTransfer table option, use of the + feComponentTransfer linear option, and use of the + feComponentTransfer gamma option. + + + The test is somewhat self-explanatory as the strings + document the type of feComponentTransfer operation that + is being used. + + + + filters-comptran-01-f + Test which verifies the basic facilities of feComponentTransfer. + + + + + + Example feComponentTransfer - Examples of feComponentTransfer operations + Four rectangles filled with a gradient showing the effects of feComponentTransfer: an identity function acting as a reference, use of the feComponentTransfer table option, use of the feComponentTransfer linear option, and use of the feComponentTransfer gamma option. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + type="identity" + + type="table" + + type="linear" slope=".5" intercepts:.25/0/.5 + + type="gamma" amplitude="2" exponents:5/3/1 + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-comptran-01 + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/filters-conv-01-f.includeimage.png b/Tests/W3CTestSuite/images/filters-conv-01-f.includeimage.png new file mode 100644 index 0000000000000000000000000000000000000000..f8fb85230a34c5a48fc30a3cf8264ab23925d0fb GIT binary patch literal 9281 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/filters-conv-01-f.svg b/Tests/W3CTestSuite/images/filters-conv-01-f.svg new file mode 100644 index 0000000..927e992 --- /dev/null +++ b/Tests/W3CTestSuite/images/filters-conv-01-f.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test which verifies the basic facilities of + feConvolveMatrix. + + + This test defines six filters that exercise traditional + convolutions: uniform blur, vertical and horizontal + blurs, edge detection, embossing and sharpening. Note + that the edge detection filter produces a fully + transparent image because the alpha chanel is convolved + and produces 0 values. + + + + filters-conv-01-f + Test which verifies the basic facilities of feConvolveMatrix. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Blur (3x3) + + + + Edge Detection (3x3) + + + + Sharpening (3x3) + + + + Embossing (3x3) + + + + Horizontal blur (3x1) + + + + Vertical blur (1x3) + + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-conv-01 + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/filters-diffuse-01-f.svg b/Tests/W3CTestSuite/images/filters-diffuse-01-f.svg new file mode 100644 index 0000000..c08fbcc --- /dev/null +++ b/Tests/W3CTestSuite/images/filters-diffuse-01-f.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Verify the basic operation of the feDiffuseLighting + element. The test shows three rows of 3 images. Each + rows tests a different aspect of the filter and shows + the result of the filtering operation. + + + The first row shows the result of varying the + surfaceScale attribute. The second row shows the result + of varying the diffuse constant (kd) attribute. The last + row shows the result of varying the lighting-color + property. + + + The rendered picture should match the reference image. + + + + filters-diffuse-01-f + Validates operation of the feDiffuseLighting filter + + + + + + Filters: feDiffuseLighting + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Various values for surfaceScale: 1, 10 and -10 + + + + + + + Various values for diffuseConstants: 0, 1 and 2 + + + + + + + Various values for lighting color: red, yellow and blue + + + + + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-diffuse-01 + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/filters-example-01-f.svg b/Tests/W3CTestSuite/images/filters-example-01-f.svg new file mode 100644 index 0000000..4943732 --- /dev/null +++ b/Tests/W3CTestSuite/images/filters-example-01-f.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Verify that a typical usage of filtering is operation. + This test case creates a 3D lightiing effect and requires + that several filters are working: feGaussianBlur, feOffset, + feSpecularLighting, feComposite and feMerge. The graphic + consisting of the string "SVG" sitting on top of oval + filled in red and surrounded by an oval outlined in red. + + + The rendered picture should match the reference image + exactly, except for possible variations in the labelling + text (per CSS2 rules). + + + The test uses a nested 'svg' element, 'rect' element, + 'path' element, as well as basic fill (solid primary + colors), stroke (solid primary colors with stroke-width + lines), font-family (Helvetica) and font-size properties. + + + + filters-example-01-f + Overall filter effects test case. Extracted from example filters00 in the March 3, 2000 spec. + + + + + + A single filter that uses a combination of filter primitives. You should see + a gray rectangle. Inside, there is an outer ring and an inner button with + "SVG" on it, both in red with a 3D appearance and a lighting effect. + + + + + Example filters01.svg - introducing filter effects + An example which combines multiple filter primitives to produce a 3D lighting effect on a graphic consisting of the string "SVG" sitting on top of oval filled in red and surrounded by an oval outlined in red. + + + + + + + + + + + + + + + + + + + + + + SVG + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + filters-example-01 + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/footprints.jpg b/Tests/W3CTestSuite/images/footprints.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ae7a69d3434cf273cef34a241db54fee0030a6a GIT binary patch literal 48928 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"znbl9EsfIsUm4| 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 Tq}mWMo~o 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/galpha.png b/Tests/W3CTestSuite/images/galpha.png new file mode 100644 index 0000000000000000000000000000000000000000..0698cdf8313e02c89191ca089026a78120d84e9b GIT binary patch literal 12435 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 RBhLT;002ovPDHLkV1l)>+(iHY literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam030.png b/Tests/W3CTestSuite/images/gam030.png new file mode 100644 index 0000000000000000000000000000000000000000..904c9721bd743bc54bc76b3ce7c482b2edffdb1e GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0y~yU|a`e8*l&#hMd-e2Z0nzx}&cn14F67|1Ecc3K)7k zT^vIyZoR!|DAdFtz;f{L|No)_A`=|s53o&7`q~mb`|F3b*~vGSZMZ74E!}EeV)Uht zqT9+%kFTBecwV1-ara|&+4Ik?+1q)UbBXIc6w-@1q#CoM#d}8q=kx*~_aTsbsMUK% j3-|N_PP__U*Z*ex94fNF{K)rykb6B{{an^LB{Ts5?7>u= literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam030b.png b/Tests/W3CTestSuite/images/gam030b.png new file mode 100644 index 0000000000000000000000000000000000000000..90e7184793575b1c6f6582c149436211a0619254 GIT binary patch literal 1029 zcmeAS@N?(olHy`uVBq!ia0vp^(}0+t14u9^GiPpPU|{;1>FgX3kda@KU!0L&py283 ztWZ#tpO%@E%D_-DCn+J}U13RKQL0cvf`*2cW)Xi;PftfrP{RHr2aYJ5IdFc#fdw;W z#Kb(1ej|2>fu-_iXa*wQWXBObae;9xiHHDgO&~Z?l!jd ziaPNyPV(+PrJ%Dx$&O8u&6bV5O`uJuO{`6nCtPBt1h0g!gt~!T;-7;{4o^8?(*07% zSiYFyv&b`RohY49o%D#%i0p{`4Kp|RCjLGscet*@xp{H_W9f96=bC!j>rC%>-6^h6 zsaW>0>*KixlON1Jy#By`CkOw8{srw1Oc(MjtUol_rNpJLL#^YV&}_9ll{(i&PC<^J zri4u0()Y!7Cg&!-P5Yl*JE5-8p*bfgCty?1uZ4S@m%3f`?Dc;;?H5Bo}39s4ussN8ASFxzXXW|`X*%j~}S@tO6d z`Kg_&(vw=}l~?r6NRDfsR-DznG&{Y0jCF|gu9Loj%wv#0aRg+J9nn<{r~*nx5JCvr^y-H)cr_#uyT32*ZIQv@f8<8U3#j$^ZJeT`uktj zy#6@%SM{my{q|?-bpAYfu=$SoCjImK^Xjtyy!+a|bN-?I1$DMR_I_CYZ2j$ewg1Kc z|H~^_aT=-t^8rh`qpu?a!^Xav-+_~Xe1&9>AYTTCDpdxChGqtapZ|gMGX{oIJqCtX z@eB-B(-|1V^E00u(FUsR_jGX#shAUT%8-vifx|g)$N$Vy0TGep$PK5xXPtMEa3Lau$a0twc+%bFR!36=6J)W4%V^E1;R=UtAuw?<8$PXs&?{Tf>dk(L* zIlTDJ;k9cXM(I6_nO2~6++e!%jp?y7PW@P$D`ECWAa>VD7J7^Cy0DZx q_Qj=Ey^@zs;=4)~a^sW!cbz?P{f?%L&W<#YlRaJiT-G@yGywpV|5q0P literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam045b.png b/Tests/W3CTestSuite/images/gam045b.png new file mode 100644 index 0000000000000000000000000000000000000000..9885e3392a5170e220a2e76c4834496d9c28ff16 GIT binary patch literal 1059 zcmeAS@N?(olHy`uVBq!ia0vp^(}0+t14u9^GiPpPU|{;1>FgX3kda@KU!0L&py283 ztWZ#tpO%@E%D_-DCn+J}U13RKQL0cvf`*2cW)Xi;PftfrP{RHr2aYJ5IdFc#0fqT9 zVqzXhzY#mcz*70MawU(%gWINTZUVKD;wfUwY~l{g;@KkMAw*5o9)FE^|_PJBuarOA8~Y;MAk4 zD|a5{npb(UiYLI>(c#iwjg6ZuEDhB|9mQ9~g&tJh?{d)A(74~lT$p8nLCc1HcN^P! zMV)vUCwX_DQqb9;WXC4SX3NIjCeWtSCe|j(6D~1Rf>%OVLft?v@z22}ho>Ac>3%6> zEMLs&0uPLxilPI^RWM0P~}hM60D6Mr9+J6zY{+`PE|v2?o3b4@+%b*6W`?i5$3 zR4n`0_3_+;$q!~9UVmV}lY@Uk|AO`hrVDu%)*qVeQsUCrq1N$FXtr9ON}cN>ry$2q zQ$nV0>HA_klXH{aru|Q@olw{4(3}&L6R;`h*TOx{OWm$|_WHk__KT}m$X8w0Zf*6g z)g@Uad%vW7v3oJ!C?f4f;*?aGgrqdB^kYfij{TW*RPMBEnC-Pxv&?OZWp>~E_{{p! z{M61>=}E2g$}4(jB*!&RE6(a(nw{Q0#=63Pm5im0!cEgy-*fF0`lU5T*Gch`nwHWo zm9(HY+jeAs{4W$b>CdFqLD!bt^L&1~;DpZUsHuMy!d3JY_OE^5AsD>T+0*&u!lGqd z+fVhaDmHc6T3G7+%HAZ(ywvP|PH3)np8Y+|yHoGi?g-zve$)SNF0Va5FW=yIc1~Gc z+tV{UH{X2ziunn z?N84g-u?IcojcR_{(pY(+u=p-)8ve8>VBj=Sh+mi>wMw-_==04E z7srr_TW>Ea3Lau$a0tv3-EsS_3|sRoC#B^dSr!~rn$Re8WC6SHf&=0aJHBh}c_UI rI8E0pS?Ddk>%vm*SbWl7_uKV9pL=KeM%4zO(-=Hm{an^LB{Ts5<@Q)$ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam056b.png b/Tests/W3CTestSuite/images/gam056b.png new file mode 100644 index 0000000000000000000000000000000000000000..32af5b3a93af7393d42e25ca1df0264fa66b3521 GIT binary patch literal 1059 zcmeAS@N?(olHy`uVBq!ia0vp^(}0+t14u9^GiPpPU|{;1>FgX3kda@KU!0L&py283 ztWZ#tpO%@E%D_-DCn+J}U13RKQL0cvf`*2cW)Xi;PftfrP{RHr2aYJ5IdFc#0fp%^ zVqzXhzY#mcz*70MawU(%gWINTZUVKD;wfUwY~l{g;@KkMAw*5o9)FE^|_PJBuarOA8~Y;MAk4 zD|a5{npb(UiYLI>(c#iwjg6ZuEDhB|9mQ9~g&tJh?{d)A(74~lT$p8nLCc1HcN^P! zMV)vUCwX_DQqb9;WXC4SX3NIjCeWtSCe|j(6D~1Rf>%OVLft?v@z22}ho>Ac>3%6> zEMLs&0uPLxilPI^RWM0P~}hM60D6Mr9+J6zY{+`PE|v2?o3b4@+%b*6W`?i5$3 zR4n`0_3_+;$q!~9UVmV}lY@Uk|AO`hrVDu%)*qVeQsUCrq1N$FXtr9ON}cN>ry$2q zQ$nV0>HA_klXH{aru|Q@olw{4(3}&L6R;`h*TOx{OWm$|_WHk__KT}m$X8w0Zf*6g z)g@Uad%vW7v3oJ!C?f4f;*?aGgrqdB^kYfij{TW*RPMBEnC-Pxv&?OZWp>~E_{{p! z{M61>=}E2g$}4(jB*!&RE6(a(nw{Q0#=63Pm5im0!cEgy-*fF0`lU5T*Gch`nwHWo zm9(HY+jeAs{4W$b>CdFqLD!bt^L&1~;DpZUsHuMy!d3JY_OE^5AsD>T+0*&u!lGqd z+fVhaDmHc6T3G7+%HAZ(ywvP|PH3)np8Y+|yHoGi?g-zve$)SNF0Va5FW=yIc1~Gc z+tV{UH{X2ziunn z?N84g-u?IcojcR_{(pY(+u=p-)8ve8>VBj=Sh+mi>wMw-_==04Eqk0>DQCD<6=2pzAlcN<@L1l42?4< z-#)Nl>mD8!FXKy&3d)9BQXEN#{xCZnxX#ORXKv2h0|$7RcoZDmxp}UH9(0IgWc6@r zkYMTHXl8U^Ff`=xVi0g>z7om6XyP%Kl`FJa-|$<&-M!h=W4UHgr|;9A#SnqqFPI+JdKi>z?rRrSNY{ z;hmPkw=9LHEvoj?)vWs(SEcM+rt6g~^cLTBVJUa)i%YF~B`=-Cca<#Uj@@;kRWJ61 e6CUYx|En0>FD6@aWO>Pe-0A7+=d#Wzp$P!B^G`wm literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam100b.png b/Tests/W3CTestSuite/images/gam100b.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e91e0ec2af87f59d0758cc70ff9e2920cba6da GIT binary patch literal 1044 zcmeAS@N?(olHy`uVBq!ia0vp^(}0+t14u9^GiPpPU|{;1>FgX3kda@KU!0L&py283 ztWZ#tpO%@E%D_-DCn+J}U13RKQL0cvf`*2cW)Xi;PftfrP{RHr2aYJ5IdFc#0fosk zVqzXhzY#mcz*70MawU(%gWINTZUVKD;wfUwY~l{g;@KkMAw*5o9)FE^|_PJBuarOA8~Y;MAk4 zD|a5{npb(UiYLI>(c#iwjg6ZuEDhB|9mQ9~g&tJh?{d)A(74~lT$p8nLCc1HcN^P! zMV)vUCwX_DQqb9;WXC4SX3NIjCeWtSCe|j(6D~1Rf>%OVLft?v@z22}ho>Ac>3%6> zEMLs&0uPLxilPI^RWM0P~}hM60D6Mr9+J6zY{+`PE|v2?o3b4@+%b*6W`?i5$3 zR4n`0_3_+;$q!~9UVmV}lY@Uk|AO`hrVDu%)*qVeQsUCrq1N$FXtr9ON}cN>ry$2q zQ$nV0>HA_klXH{aru|Q@olw{4(3}&L6R;`h*TOx{OWm$|_WHk__KT}m$X8w0Zf*6g z)g@Uad%vW7v3oJ!C?f4f;*?aGgrqdB^kYfij{TW*RPMBEnC-Pxv&?OZWp>~E_{{p! z{M61>=}E2g$}4(jB*!&RE6(a(nw{Q0#=63Pm5im0!cEgy-*fF0`lU5T*Gch`nwHWo zm9(HY+jeAs{4W$b>CdFqLD!bt^L&1~;DpZUsHuMy!d3JY_OE^5AsD>T+0*&u!lGqd z+fVhaDmHc6T3G7+%HAZ(ywvP|PH3)np8Y+|yHoGi?g-zve$)SNF0Va5FW=yIc1~Gc z+tV{UH{X2ziunn z?N84g-u?IcojcR_{(pY(+u=p-)8ve8>VBj=Sh+mi>wMw-_==04EAYTTCDpdxChGqtapZ|gMGX{oIJqCtX z@eB-B(-|1V^E00u(FUrW=jq}Y0?Z}9_}S{u&9&lXdA{vzGzUw!`ZZGq$K+HgjwR|W zO^ywVnK^FEmS}G1oVSZjAY;`D?S_UqA`%_l3mD=!9z1hmlgYWkAk4+Up`h00$jQKz lF~N#kp@D7XX3Cfc7@kQf9W0;u?hDYR44$rjF6*2UngH+E!*>7x literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam200.png b/Tests/W3CTestSuite/images/gam200.png new file mode 100644 index 0000000000000000000000000000000000000000..daa20fcbc4f2699517bb6b99a59cdcf1a55f70a0 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0y~yU|a`e8*l&#hMd-e2Z0nzx}&cn12eCKm*B&bKz@;@ zi(^Q|t+y8q1rI1NuxyZXZugrT*uZn;in!OxM)`<`Lfo3h5+}vKEMYaRY*ybHKJ{^I zj>~ktl7-&lyDlu{j(u^dRj=fwllZQZh1{{bF0|^!zHq`Ly{`E0yq^}wT>mNE0=df5 L)z4*}Q$iB}i_=Aj literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/gam200b.png b/Tests/W3CTestSuite/images/gam200b.png new file mode 100644 index 0000000000000000000000000000000000000000..2c337d8ff4250c1c0a978b8fb73c2bcf23603e58 GIT binary patch literal 1019 zcmeAS@N?(olHy`uVBq!ia0vp^(}0+t14u9^GiPpPU|{;1>FgX3kda@KU!0L&py283 ztWZ#tpO%@E%D_-DCn+J}U13RKQL0cvf`*2cW)Xi;PftfrP{RHr2aYJ5IdFc#0fl)p zVqzXhzY#mcz*70MawU(%gWINTZUVKD;wfUwY~l{g;@KkMAw*5o9)FE^|_PJBuarOA8~Y;MAk4 zD|a5{npb(UiYLI>(c#iwjg6ZuEDhB|9mQ9~g&tJh?{d)A(74~lT$p8nLCc1HcN^P! zMV)vUCwX_DQqb9;WXC4SX3NIjCeWtSCe|j(6D~1Rf>%OVLft?v@z22}ho>Ac>3%6> zEMLs&0uPLxilPI^RWM0P~}hM60D6Mr9+J6zY{+`PE|v2?o3b4@+%b*6W`?i5$3 zR4n`0_3_+;$q!~9UVmV}lY@Uk|AO`hrVDu%)*qVeQsUCrq1N$FXtr9ON}cN>ry$2q zQ$nV0>HA_klXH{aru|Q@olw{4(3}&L6R;`h*TOx{OWm$|_WHk__KT}m$X8w0Zf*6g z)g@Uad%vW7v3oJ!C?f4f;*?aGgrqdB^kYfij{TW*RPMBEnC-Pxv&?OZWp>~E_{{p! z{M61>=}E2g$}4(jB*!&RE6(a(nw{Q0#=63Pm5im0!cEgy-*fF0`lU5T*Gch`nwHWo zm9(HY+jeAs{4W$b>CdFqLD!bt^L&1~;DpZUsHuMy!d3JY_OE^5AsD>T+0*&u!lGqd z+fVhaDmHc6T3G7+%HAZ(ywvP|PH3)np8Y+|yHoGi?g-zve$)SNF0Va5FW=yIc1~Gc z+tV{UH{X2ziunn z?N84g-u?IcojcR_{(pY(+u=p-)8ve8>VBj=Sh+mi>wMw-_==04EgnPb0?Z}9_}T2IpO5EY@s6H!sX@W`#x+I`8C_EchhSGO z9u-#B0}b3v7B?m^Y72)lIxrX-@^~=_I5c00WMDM$n9E8Tla0YwP52d0l}8iMK@6U* KelF{r5}E)}-Lx(M literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/green1x1.png b/Tests/W3CTestSuite/images/green1x1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba709872380f8a4e0bf4d6a5fe7a754b9b4d8f11 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2s6ii6yp7}lMWc?slj7I;J!Gca%q zgD@k*tT_@uLG}_)Usv{9Y|I=|N}ab<6@WsLC9V-A&iT2ysd*&~&PAz-C8;S2<(VZJ w3hti10pX2&;y^__o-U3d9M_W*ew=4uU}9oqSfw>j9VpJ=>FVdQ&MBb@047T$tN;K2 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/greentopbutton.jpg b/Tests/W3CTestSuite/images/greentopbutton.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be33a3ce9a3f06b49c9b77ebcb5ced59dea4dd44 GIT binary patch literal 1111 zcmex=W=16jCP7AKLB{__7~~lk7+Ha?1vwZB7@3$^SlQS)IJvli z3bqO`FflSSGqEtUva+xMRo4RL8CV2ag%k}P*@OcV*_8@Kj2b5{ECr+Na zbot8FYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3Fhjfr_ZgbM1cClyVqsxs zVF&q(k*OSrnFU!`6%E;h90S=C3x$=88aYIqCNA7~kW<+>=!0ld(M2vX6_bamA3XpmPRw~H9)~~8Rzv}W< zThBGQQBR^fCz+o9_c_lhSw?35hh^vM%SD!nY~t5)f9ADP>mj2KyY7__6$@tfSZ!(e z&#->?xBm<-BJ*#3daU&9`F~(4a;kATG=C!{*xT?J43JAhztm<4=FJ?feC!qfb6PGwG

5`)USQTL*>>%>- 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­TKo}2f@((9uK1|r898|LNVEX*@{aZqcU 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 z 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�I;YIZ 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/image2_b.jpg b/Tests/W3CTestSuite/images/image2_b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9cf86297c23d0fa7de6c05cf0351a01ec916f3e GIT binary patch literal 6643 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/interact-dom-01-f.svg b/Tests/W3CTestSuite/images/interact-dom-01-f.svg new file mode 100644 index 0000000..90d6ee5 --- /dev/null +++ b/Tests/W3CTestSuite/images/interact-dom-01-f.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Verify basic support for DOM event listener registration. The root svg element + has an onload handler where a click event listener is registered on group element 'Start Button'. + + + If UI events listener registration is supported (and UI events), + when the user clicks on the button a text node is inserted reading "UI Event Listeners supported". + + + At the end of the test, the start test button in changed to pink, + and the click event listener is removed from the the start button. + + + Subsequent clicks on the start button should cause no effect if + the event listener has been removed successfully. + If additional lines of text appear in the document that say "UI Event Listeners supported", + then the implementation has not successfully removed the event listener. + + + After clicking at least once on the button, + the rendered image should be exactly as the reference image, except for + differences in text display. + + + + + + interact-dom-01-f + Checks if DOM/ECMA Script binding is supported. Checks that the DOM API +supports event listener registration/unregistration. + + + + + + + + + + + + + Start Test + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + interact-dom-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/interact-order-02-b-targ.svg b/Tests/W3CTestSuite/images/interact-order-02-b-targ.svg new file mode 100644 index 0000000..d5e7c06 --- /dev/null +++ b/Tests/W3CTestSuite/images/interact-order-02-b-targ.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + interact-order-02-b + + File that just serves as hyperlink target for test case + interact-order-02-b.svg. + + + + + + Hyperlink target for + + + interact-order-02-b.svg + + + + + + + + + + Click to hyperlink back to + + + interact-order-02-b.svg + + + + + diff --git a/Tests/W3CTestSuite/images/interact-order-03-b-targ.svg b/Tests/W3CTestSuite/images/interact-order-03-b-targ.svg new file mode 100644 index 0000000..e397414 --- /dev/null +++ b/Tests/W3CTestSuite/images/interact-order-03-b-targ.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + interact-order-03-b + + File that just serves as hyperlink target for test case + interact-order-03-b.svg. + + + + + + Hyperlink target for + + + interact-order-03-b.svg + + + + + + + + + + Click to hyperlink back to + + + interact-order-03-b.svg + + + + + diff --git a/Tests/W3CTestSuite/images/leftarrow.png b/Tests/W3CTestSuite/images/leftarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..07fb487bef386e7bf7e55aa148cd1d4f3f7b5760 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V3y@T|W;X*;Ea{HEjtmSN`?>!lvI6^cIffh|5(V@v=F6^u7RBfd^$%}=3eVK*BHUWma8+h0g TryLCfYG?3t^>bP0l+XkK(XAn` literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/level1.svg b/Tests/W3CTestSuite/images/level1.svg new file mode 100644 index 0000000..4157b9e --- /dev/null +++ b/Tests/W3CTestSuite/images/level1.svg @@ -0,0 +1,3 @@ + + + diff --git a/Tests/W3CTestSuite/images/level2.svg b/Tests/W3CTestSuite/images/level2.svg new file mode 100644 index 0000000..f8f7a79 --- /dev/null +++ b/Tests/W3CTestSuite/images/level2.svg @@ -0,0 +1,3 @@ + + + diff --git a/Tests/W3CTestSuite/images/linking-uri-01-b.svg b/Tests/W3CTestSuite/images/linking-uri-01-b.svg new file mode 100644 index 0000000..3356732 --- /dev/null +++ b/Tests/W3CTestSuite/images/linking-uri-01-b.svg @@ -0,0 +1,149 @@ + + + + + + + + + + + + +

+ Verify the capability to handle links to 'view' elements, and the + permissible attributes on those elements. All of the links in this + test case are internal, i.e., to 'view' elements in the same SVG file. +

+

+ This test is identical to linking-uri-02-b except that the links there are external. +

+

+ In the four quadrants of the initial picture are four graphical objects. + Clockwise from upper right, they are + a purple rectangle, blue ellipse, green polygon (pentagon), and yellow + circle. Each is labelled and tightly boxes with a rectangular frame. + These are identical to their counterparts in linking-uri-01-b.svg, in which + file each has an associated 'view' element, with attributes + per the labels in the initial picture. +

+

+ In the center is a gray box with four lines of text, each of which says + "Go to" followed by Rectangle, Ellipse, Polygon, and Circle, respectively. + Each of these is contained within an 'a' element, whose xlink:href names + the respective 'view' element of the respective graphical object. +

+

+ There are several reference images associated with this test case. The first + illustrates the correct initial state of the rendered SVG file, which should + also be the correct picture after the Rectangle link is executed. + The second, third, and fourth illustrate the correct images as described + above after respectively the Ellipse, Polygon, and Circle links are activated. + (Note. This harness does not yet provide access to multiple PNGs; the PNG for the + initial view is shown.) +

+

+ The test uses the 'rect', 'circle', 'ellipse', and 'polygon' elements, + as well as basic fill (solid simple colors), + stroke (black and colored 1-pixel lines), font-family (Arial) and font-size properties. +

+ + +

+ In turn, activate each of the "Rectangle", "Ellipse", "Polygon" and "Circle" links + in the gray box in the middle of the document, navigating back (for example with + the Back button if in a browser) after activating each one. +

+
+ +

+ The test is passed if all of the sub-tests have the correct behavior: +

+
    +
  • After activating the "Rectangle" link, the whole of the linking-uri-01-b.svg + document must be displayed; that is, there will be no visual change. (The + 'view' element has no attributes (other than id), so the correct view in + the frame is of the parent 'svg' element, which is the whole picture.)
  • +
  • After navigating back and activating the "Ellipse" link, the view must change so that it is + zoomed (uniformly scaled) and centered on the ellipse. The black rectangle + surrounding the ellipse must be just within the frame.
  • +
  • After navigating back and activating the "Circle" link, the view must change so that it is + zoomed and centered on the yellow circle. The view is scaled non-uniformly, however, + so that the circle is stretched horizontally ito an ellipse. The black rectangle + surrounding it must be just within the frame.
  • +
  • After navigating back and activating the "Polygon" link, the view must not change.
  • +
+
+ + $RCSfile: linking-uri-01-b.svg,v $ + + + + + + + + + Link test of the 'view' element and its attributes, 1 of 2, internal. + + + +
+ Go to Rectangle + + + Go to Ellipse + + + Go to Circle + + + Go to Polygon + + Click element's line + to link to its view + + + + + + Rectangle + + No view attributes except id. + + + + Ellipse + + viewBox, should fill frame. + + + + Circle + + viewBox & non-uniform + preserveAspectRatio + + + + Polygon + + viewTarget, no + changes to viewport + + + + $Revision: 1.5 $ + + + + + diff --git a/Tests/W3CTestSuite/images/linking-uri-01-f-1st.png b/Tests/W3CTestSuite/images/linking-uri-01-f-1st.png new file mode 100644 index 0000000000000000000000000000000000000000..60a63b4170d3269bc2fd3eeebd575f4b0f16bf34 GIT binary patch literal 8183 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 E0JHF + + + + + + + linkingCircle-f.svg + Some circles with ids, for linking tests. + + + + + + + + + Some circles with ids, for linking tests. + + circle-1 + + circle-2 + + + + circle-3 + + + + + + diff --git a/Tests/W3CTestSuite/images/linkingToc-t.svg b/Tests/W3CTestSuite/images/linkingToc-t.svg new file mode 100644 index 0000000..ff00d54 --- /dev/null +++ b/Tests/W3CTestSuite/images/linkingToc-t.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + TOC & index of linking tests. + + + + + 1.) linking-a-04-t: Verify basic links out of SVG content ('a'). + + + + + + 2.) linking-uri-03-t: Verify handling of xlink attributes on 'a'. + + + + + + 3.) linking-a-02-b: Verify links into SVG content and fragment syntax. + + + + + + 4.) linking-uri-01-b: Verify 'view' element handling. + + + + + + 5.) linking-uri-02-b: Verify 'view' element handling (companion to linking-uri-01-f). + + + + + [Note. This is not a linking test, but a supplemental file and link + + + target for other linking tests.] + + + + + diff --git a/Tests/W3CTestSuite/images/magnify.png b/Tests/W3CTestSuite/images/magnify.png new file mode 100644 index 0000000000000000000000000000000000000000..5713577446be74ce8e9746af4da5c05d4c48fd86 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIICa0X`wF|Ns9tPBWf4bLN>dXJ#@O|DQSYKSSF8|7kPR7=U~r5KUR?2GUs) zE3uVZ zL%Tu1St7>aWWzy^#zs?JU0p`kR_QLuM?5?_8rw?57VL6PI#yz`eXUFAp#uk89XuI4 zPO`AfR~22dL{{;^G`1ikVNdQGC$%rKN@VCd2r)2R{vrBd+otEWK&u%%UHx3vIVCg! E0QdV;#{d8T literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/makealpha.svg b/Tests/W3CTestSuite/images/makealpha.svg new file mode 100644 index 0000000..c284b29 --- /dev/null +++ b/Tests/W3CTestSuite/images/makealpha.svg @@ -0,0 +1,34 @@ + + + + + Makes a simple graphic for testing alpha transparency + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/myimage.jpg b/Tests/W3CTestSuite/images/myimage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16009ed17fcf58783f984b22c61b3dff154b4b58 GIT binary patch literal 4402 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 Jn(FQB{{c8?Gm`)S literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_bullet.png b/Tests/W3CTestSuite/images/nav_bullet.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f7c1f9d2a7df31117a2181a8afee2fa2c1e0c0 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>J@^oAmdKI;Vst0G}*O AMgRZ+ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_down.png b/Tests/W3CTestSuite/images/nav_down.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8fb8e1541566c26795b8c493089346afae1636 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>xdAc};RNPAX;V)xR_C~^iVWYtU zCO0=X4rYyBoqfg6{TdjOk`6FRNl9IBVPN7|9^}Iy;Gm+x%Ap`Mg^5LA*XP2OE7z}Q z=TK1dIlqW;ff5I^Lc@#?vw1_<`MH2v4?Px2DRls9@!4^wcNrfC15*d*YJJ12jEq2= s1mx8i7>^YF`B9kgM@V=L10x#)!-8nf2l|L!xorq*|_;oG6<%nN{qFnGH9 KxvXPsXDW386?QWnM44$rj JF6*2UngBF#GuHqB literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_frame.png b/Tests/W3CTestSuite/images/nav_frame.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb974abd5ed62ff5cf4ce36c2db08c70e1575c5 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^d?3sLBp9rei+F()Q%R6tFatx`?&t;ucLK6U32PxJ7 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_left.png b/Tests/W3CTestSuite/images/nav_left.png new file mode 100644 index 0000000000000000000000000000000000000000..818c5118ffe0c69c2ea7d6f0cc498260c0cc6333 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^d?3sLBp9rei+F()Q%R6tFatx`0@cHnD+* z8|Qj!IEfvbU7)1|1m?3sy3FVfCeyly85}Sb4q9e E0Q`$BzW@LL literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_noframe.png b/Tests/W3CTestSuite/images/nav_noframe.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5c8724d31e8b5320f3f8235a05dd430a5a12c9 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1SBVD?P>#3Ea{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i|7Q&IDco2b~Nt$0t(K(uT1>)jBiu4lk8bXo%SGi+Qy^BU1UxbRm#Jgix+l&j!%7~12lrc)78&q Iol`;+0Nn60IsgCw literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_svg.png b/Tests/W3CTestSuite/images/nav_svg.png new file mode 100644 index 0000000000000000000000000000000000000000..98bb21cbbf8d7195438f673d219cec4223b661cd GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^d?3sLBp9rei+F()XMsm#F#`j)5C}6~x?A@LBv|4a zQR1ARo12J7Wcm41e(F%>FVdQ&MBb@01ACBWdHyG literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_up.png b/Tests/W3CTestSuite/images/nav_up.png new file mode 100644 index 0000000000000000000000000000000000000000..bab586ca6e9b7c675747f153462994a4678f57cc GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^d?3sLBp9rei+F()Q%R6tFatx`uSMQq`X>ZQ4N3Xi|l|Gf1enfWogN4tbV-d7szl1 MPgg&ebxsLQ02`<^n*aa+ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_upleft.png b/Tests/W3CTestSuite/images/nav_upleft.png new file mode 100644 index 0000000000000000000000000000000000000000..44e568b8483923c0fbe70c55cd374c08fe1d419b GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^d?3sLBp9rei+F()Q%R6tFatx`8&&8v6HZx;tzKRr?Nw<54PA7~7N Mr>mdKI;Vst0MhC;Y5)KL literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/nav_upright.png b/Tests/W3CTestSuite/images/nav_upright.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc2d925ba6af1f34b8aec19a545b22901887d43 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^d?3sLBp9rei+F()Q%R6tFatx`U4IP`A!*^IK{r|#)#j5%gaUyu5!9{`%e N;OXk;vd$@?2>|L;G-m(+ literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/old-name-2-new-name1.html b/Tests/W3CTestSuite/images/old-name-2-new-name1.html new file mode 100644 index 0000000..2c24600 --- /dev/null +++ b/Tests/W3CTestSuite/images/old-name-2-new-name1.html @@ -0,0 +1,1178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CompanyPersonEmailOld FilenameNew Filename
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-add-BE-09animate-elem-01-F
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-inherit-BE-10animate-elem-02-F
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-motion-BE-11animate-elem-03-F
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-motion-BE-12animate-elem-04-F
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-values-BE-06animate-elem-05-F
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-values-BE-07animate-elem-06-F
EricssonMathias Larsson CarlanderMathias.Carlander@era.ericsson.seanimation-values-BE-08animate-elem-07-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpanimation-overall-BE-01animate-elem-09-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpanimation-targAtt-BE-04animate-elem-10-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpanimation-targElt-BE-03animate-elem-11-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpanimation-timing-BE-05animate-elem-12-F
W3CChris Lilleychris@w3.organimation-extRef-BE-13animate-elem-13-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.aucolor-colorProf-BE-03color-prof-01-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.aucolor-property-BE-02color-prop-01-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.comcolor-datatypes-BE-01color-prop-02-F
ZoomON ABOla Anderssonola.andersson@zoomon.comcoords-transforms-BE-02coords-trans-01-F
ILOGChristophe Jolifcjolif@ilog.frcoords-unitsProc-BE-05coords-units-01-F
ZoomON ABOla Anderssonola.andersson@zoomon.comcoords-units-BE-01coords-units-03-F
ZoomON ABOla Anderssonola.andersson@zoomon.comcoords-unitsProc-BE-04coords-units-02-F
ZoomON ABOla Anderssonola.andersson@zoomon.comcoords-viewBox-BE-03coords-viewattr-01-F
W3CChris Lilleychris@w3.orgextend-multiNS-BE-01extend-namespace-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-blend-BE-02filters-blend-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-colorMtrx-BE-03filters-color-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-composite-BE-05filters-composite-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-transfer-BE-04filters-comptran-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-convolve-BE-06filters-conv-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-diffuseLt-BE-07filters-diffuse-01-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.comfilters-dispMap-BE-16filters-displace-01-F
Savage SoftwareMike Bultrowiczmbultrowicz@savagesoftware.comfilters-many-BE-01filters-example-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-feImage-BE-13filters-image-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-lights-BE-09filters-light-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-morph-BE-10filters-morph-01-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.comfilters-fldMrgOff-BE-15filters-offset-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-specularLt-BE-08filters-specular-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-feTile-BE-14filters-tile-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-turb-BE-11filters-turb-01-F
W3CChris Lilleychris@w3.orgfonts-fontElement-BE-01fonts-elem-01-F
AGFAChris Tuijnchris.tuijn.ct@belgium.agfa.comfilters-blur-BE-12filters-gauss-01-F
Hewlett PackardLee Klostermanlee_klosterman@hp.cominteract-cursor-BE-08interact-cursor-01-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comdom-eventListener-BE-04interact-dom-01-F
Hewlett PackardLee Klostermanlee_klosterman@hp.cominteract-onload-BE-07interact-events-01-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.cominteract-bubble-BE-04interact-order-01-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.cominteract-pEvents-BE-05interact-pointer-01-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.cominteract-pEvents-BE-06interact-pointer-02-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.cominteract-zoomPan-BE-01interact-zoom-01-F
Eastman KodakThomas DeWeesethomas.deweese@kodak.cominteract-zoomPan-BE-02interact-zoom-02-F
Hewlett PackardLee Klostermanlee_klosterman@hp.comlinking-inBound-BE-03linking-a-01-F
Hewlett PackardLee Klostermanlee_klosterman@hp.comlinking-outBound-BE-01linking-a-02-F
Hewlett PackardLee Klostermanlee_klosterman@hp.comlinking-view-BE-04linking-uri-01-F
Hewlett PackardLee Klostermanlee_klosterman@hp.comlinking-view-BE-05linking-uri-02-F
Hewlett PackardLee Klostermanlee_klosterman@hp.comlinking-xlinkAttr-BE-02linking-uri-03-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-groupOpac-BE-04masking-alpha-01-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-mask-BE-05masking-mask-01-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-mask-BE-06masking-mask-02-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-property-BE-07masking-opacity-01-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-clipPath-BE-08masking-path-01-F
CanonJun Fujisawafujisawa.jun@canon.co.jpmasking-clipPath-BE-01masking-path-01-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-clipRule-BE-03masking-path-02-F
CanonJun Fujisawafujisawa.jun@canon.co.jpmasking-clipPath-BE-02masking-path-02-F
OpenwaveCharles Yingcharles.ying@openwave.commasking-vportClip-BE-09masking-path-03-F
W3CChris Lilleychris@w3.orgmetadata-sample-BE-01metadata-example-01-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpanimation-href-BE-02naimate-elem-08-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.compaint-fill-BE-01painting-fill-01-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.compaint-inherit-BE-06painting-fill-02-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.compaint-markers-BE-03painting-markers-01-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.compaint-markers-BE-04painting-markers-02-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.compaint-colIntProp-BE-05painting-render-01-F
Schema Software Inc.Philip Mansfieldphilipm@schemasoft.compaint-stroke-BE-02painting-stroke-01-F
ILOGChristophe Jolifcjolif@ilog.frpath-curves-BE-02paths-data-01-F
ILOGChristophe Jolifcjolif@ilog.frpath-curves-BE-03paths-data-02-F
ILOGChristophe Jolifcjolif@ilog.frpath-curves-BE-04paths-data-03-F
ILOGChristophe Jolifcjolif@ilog.frpath-lines-BE-01paths-data-04-F
CanonJun Fujisawafujisawa.jun@canon.co.jpgradPatt-referenc-BE-08pservers-grad-01-F
CanonJun Fujisawafujisawa.jun@canon.co.jpgradPatt-stop-BE-06pservers-grad-02-F
CanonJun Fujisawafujisawa.jun@canon.co.jpgradPatt-stop-BE-10pservers-grad-03-F
CanonJun Fujisawafujisawa.jun@canon.co.jpgradPatt-transfrm-BE-09pservers-grad-04-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.augradPatt-linearGr-BE-01pservers-grad-05-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.augradPatt-linearGr-BE-02pservers-grad-06-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.augradPatt-linearGr-BE-03pservers-grad-07-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.augradPatt-radialGr-BE-04pservers-grad-08-F
CSIRO AustraliaDean Jacksondean.jackson@cmis.csiro.augradPatt-radialGr-BE-05pservers-grad-09-F
CanonJun Fujisawafujisawa.jun@canon.co.jpgradPatt-pattern-BE-07pservers-pattern-01-F
CorelPhil Armstrongphila@corel.comrendering-shape-BE-03render-elems-01-F
CorelPhil Armstrongphila@corel.comrendering-text-BE-02render-elems-02-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpscript-eventDom-BE-01script-handle-01-F
KDDIArei Kobayashiarei_kobayasi@jmserv.kbip.kddlabs.co.jpscript-uiEvents-BE-02script-handle-02-F
NokiaTolga Capintolga.capin@nokia.comshapes-circle-BE-03shapes-circle-01-F
ILOGChristophe Jolifcjolif@ilog.frshapes-ellipse-BE-02shapes-ellipse-01-F
NokiaTolga Capintolga.capin@nokia.comshapes-line-BE-04shapes-line-01-F
NokiaTolga Capintolga.capin@nokia.comshapes-polygon-BE-05shapes-polygon-01-F
NokiaTolga Capintolga.capin@nokia.comshapes-polyline-BE-06shapes-polyline-01-F
ILOGChristophe Jolifcjolif@ilog.frshapes-rect-BE-01shapes-rect-01-F
BitflashRick Grahamrick@bitflash.comstructure-switch-BE-07struct-cond-01-F
BitflashRick Grahamrick@bitflash.comstructure-lang-BE-08struct-cond-02-F
CorelPhil Armstrongphila@corel.comstructure-defs-BE-04struct-defs-01-F
BitflashRick Grahamrick@bitflash.comstructure-extRef-BE-10struct-defs-02-F
W3CChris Lilleychris@w3.orgdom-svg-BE-02struct-dom-01-F
W3CChris Lilleychris@w3.orgdom-featureString-BE-03struct-dom-02-F
W3CChris Lilleychris@w3.orgdom-core-BE-01struct-dom-03-F
CorelPhil Armstrongphila@corel.comstructure-empty-BE-01struct-frag-01-F
CorelPhil Armstrongphila@corel.comstructure-basicG-BE-03struct-group-01-F
CorelPhil Armstrongphila@corel.comstructure-nested-BE-02struct-group-02-F
BitflashRick Grahamrick@bitflash.comstructure-image-BE-06struct-image-01-F
BitflashRick Grahamrick@bitflash.comstructure-allElem-BE-09struct-image-02-F
BitflashRick Grahamrick@bitflash.comstructure-imggamma-BE-11struct-image-03-F
BitflashRick Grahamrick@bitflash.comstructure-symbol-BE-05struct-symbol-01-F
ZoomON ABOla Anderssonola.andersson@zoomon.comstyle-selector-BE-01styline-css-01-F
ZoomON ABOla Anderssonola.andersson@zoomon.comstyle-selector-BE-02styline-css-02-F
ZoomON ABOla Anderssonola.andersson@zoomon.comstyle-selector-BE-03styline-css-03-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-alignment-BE-10text-align-01-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-textAnchor-BE-05text-align-02-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-alignment-BE-11text-align-03-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-altGlyph-BE-07text-altglyph-01-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-decoration-BE-12text-deco-01-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-font-BE-15text-fonts-01-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-font-BE-16text-fonts-02-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-i18n-BE-09text-intro-01-F
NokiaTolga Capintolga.capin@nokia.comtext-textOnPath-BE-03text-path-01-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-spacing-BE-14text-spacing-01-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-textLength-BE-17text-text-01-F
NokiaTolga Capintolga.capin@nokia.comtext-text-BE-01text-text-02-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-extTref-BE-18text-tref-01-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-tref-BE-04text-tref-01-F
Adobe Systems Inc.Jon Ferraiolojferraio@adobe.comtext-selection-BE-13text-tselect-01-F
NokiaTolga Capintolga.capin@nokia.comtext-tspan-BE-02text-tspan-01-F
Sun MicrosystemsVincent Hardyvincent.hardy@sun.comtext-whiteSpace-BE-06text-ws-01-F
+ + + + diff --git a/Tests/W3CTestSuite/images/paths-data-01-f.png b/Tests/W3CTestSuite/images/paths-data-01-f.png new file mode 100644 index 0000000000000000000000000000000000000000..3886e79315a61f413acf2715e90db50fa6f7de8f GIT binary patch literal 36446 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

2%?)*|H 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 mKUuEGpUZg|2|-E>0V8ClhMd;) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test that the viewer has the basic capability to handle the 'path' +element and its data (d) attribute in combination with the cubic +Bezier curveto commands, C, c, S, s (plus Mm and Zz). + + +There are 8 subtests, each composed from the cubic Bezier path commands per +the label by the subtest. On-curve control points (i.e., the curve position) +are marked by small blue squares. Subtests are filled, or stroked, or +both, using simple style properties and colors. + + +The rendered picture should match the reference image exactly, except for possible +variations in the labelling text (per CSS2 rules). + + +The test uses the 'rect' element, as well as basic fill (solid primary colors), +stroke (primary color 1-pixel lines), font-family (Helvetica) and font-size properties. + + + + paths-data-01-f + Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the cubic Bezier curveto, both regular and shorthand/smooth forms - C, c, S, s (along with Mm and Zz). + + + + + + + + Cubic bezier curves drawn with commands: + + + + + + + + + + + M, C, S, m, c, s + + + + + + + + + + + + M, c, c, c, C, z + + + + + + + + + + M, C, Z + + + + + + + + + + + M, C, c, Z + + + + + + + + + + + m, c, s + + + + + + + + + + M, C + + + + + + + + + + + + M, c, s, s, s, z + + + + + + + + + + m, c, z + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + paths-data-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/paths-data-02-f.png b/Tests/W3CTestSuite/images/paths-data-02-f.png new file mode 100644 index 0000000000000000000000000000000000000000..968ed60d8324e5ea8fa0617e29352ac7f3e9c1da GIT binary patch literal 42041 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Żff#s2PmS7V(ZVPB^FXW~83}aEgWX9Q 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

(!#psZ6|mq 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test that the viewer has the basic capability to handle the 'path' +element and its data (d) attribute in combination with the quadratic +Bezier curveto commands, Q, q, T, t (plus Mm and Zz). + + +There are 7 subtests, each composed from the quadric Bezier path commands per +the label by the subtest. On-curve control points (i.e., the curve position) +are marked by small colored squares. Subtests are filled, or stroked, or +both, using simple style properties and colors. + + +The rendered picture should match the reference image exactly, except for possible +variations in the labelling text (per CSS2 rules). + + +The test uses the 'rect' element, as well as basic fill (solid primary colors), +stroke (primary color wide and 1-pixel lines), font-family (Helvetica) and font-size properties. + + + + paths-data-02-f + Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the quadratic Bezier curveto commands, both regular and shorthand/smooth forms - Q, q, T, t (along with Mm and Zz). + + + + + Quadric bezier curves drawn with commands: + + + + + M, Q, M, q, z + + + + + + + + + m, q, z, m, q, z + + + + + + + + + M, Q, Z + + + + + + + M, Q, T, Q, z + + + + + + + + + M, Q, Q, z + + + + + + + + M, q, t, t, t, t, z + + + + + + + + + + + M, q, Q, q, Q, z + + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + paths-data-02-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/paths-data-03-f.png b/Tests/W3CTestSuite/images/paths-data-03-f.png new file mode 100644 index 0000000000000000000000000000000000000000..a5f466bcd47379ea7be259bc5aad19f08896b8d9 GIT binary patch literal 38026 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Test that the viewer has the basic capability to handle the 'path' +element and its data (d) attribute in combination with the elliptical +arc curveto commands, A, a (plus Mm and Zz). + + +There are 6 subtests, each composed from the elliptical arc path commands per +the label by the subtest. The curve positions +are marked by small colored squares. Subtests are filled, or stroked, or +both, using simple style properties and colors. + + +The rendered picture should match the reference image exactly, except for possible +variations in the labelling text (per CSS2 rules). + + +The test uses the 'rect' element, as well as basic fill (solid primary colors), +stroke (primary color wide and 1-pixel lines), font-family (Helvetica) and font-size properties. + + + + + paths-data-03-f.svg + Test that the viewer has the basic capability to handle the 'path' element and data (d) attribute in combination with the elliptical Arc curveto commands - A, a (along with Mm and Zz). + + + + + Elliptical arc curves drawn with commands: + + + + + M, A, Z + + + + + + + m, a, z + + + + + + + M, a + + + + + + + M, A, a, a, z + + + + + + + + + M, a, Z, m, A, Z, m, a, z + + + + + + + + + + + M, A, A, A, A + + + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + paths-data-03-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/paths-data-04-f.png b/Tests/W3CTestSuite/images/paths-data-04-f.png new file mode 100644 index 0000000000000000000000000000000000000000..ed52be58b4eef4b4373a5dcbd7fca4fa82466404 GIT binary patch literal 30546 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/paths-data-04-f.svg b/Tests/W3CTestSuite/images/paths-data-04-f.svg new file mode 100644 index 0000000..18d5ad4 --- /dev/null +++ b/Tests/W3CTestSuite/images/paths-data-04-f.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Verify the basic capability to handle the 'path' element, and its data attribute (d) +in combination with the straight-line path commands. +Four pairs of figures should be displayed in the +four quadrants. The shapes in each pair are identical, with one stroked and +one filled. Two pairs of concentric equilateral triangles are drawn using respectively +M,L,Z and m,l,z. The fill-mode default of "even-odd" means that +the inner triangle is hollow. Two pairs of staircase figures are drawn using +respectively M,H,V,Z and m,h,v,z. + + +The rendered picture should match the reference image exactly, except for possible +variations in the labelling text (per CSS2 rules). + + +The test uses the 'rect' element, as well as basic fill (solid primary colors), +stroke (black 1-pixel lines), font-family (Helvetica) and font-size properties. + + + + + paths-data-04-f + Test that viewer has the basic capability to handle the <path> element and data (d) attribute in combination with the moveto, lineto, and closepath commands - M, L, Z, m, l, and z. + + + + + + + + Lines drawn with commands: + M, L, L, L, Z, + subpath + M, L, L, L, Z + + + + + + + + stroked + + + + + + + + filled + + + + m, l, l, l, z, + subpath + m, l, l, l, z + + + + + + + + + + + + + + + + + + M, H, V, H, + V. H, V, H, + V, Z + + + + + + + + + + + + + + + + + + + + + + m, h, v, h + v, h, v, h + v, z + + + + + + + + + + + + + + + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + paths-data-04-f + $Revision: 1.1 $ + Release 3.0 + + + diff --git a/Tests/W3CTestSuite/images/pinksquidj.png b/Tests/W3CTestSuite/images/pinksquidj.png new file mode 100644 index 0000000000000000000000000000000000000000..e88ae4eb43d2c8c2670f6077d749787549bfb4aa GIT binary patch literal 31090 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 JPDHLkV1nfabPNCh literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/plant.jpg b/Tests/W3CTestSuite/images/plant.jpg new file mode 100644 index 0000000000000000000000000000000000000000..855412102dd137411345c1a77960d9e2c038feed GIT binary patch literal 145806 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⪻h2!7}N$di3`5lWA_H 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 z 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/purplesquidj.png b/Tests/W3CTestSuite/images/purplesquidj.png new file mode 100644 index 0000000000000000000000000000000000000000..90000a8bc254ea3dfec0bdc31351d62e861ad577 GIT binary patch literal 48672 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 Uul7Q}*#H0l07*qoM6N<$g8Bx~XaE2J literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/rects.svg b/Tests/W3CTestSuite/images/rects.svg new file mode 100644 index 0000000..d940ed4 --- /dev/null +++ b/Tests/W3CTestSuite/images/rects.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/rects_b.svg b/Tests/W3CTestSuite/images/rects_b.svg new file mode 100644 index 0000000..5952ae2 --- /dev/null +++ b/Tests/W3CTestSuite/images/rects_b.svg @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/red1x1.png b/Tests/W3CTestSuite/images/red1x1.png new file mode 100644 index 0000000000000000000000000000000000000000..c4c0d77194e1d463cd454ae5da94a81c83a6edae GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2s6ii6yp7}lMWc?slj7I;J!Gca%q zgD@k*tT_@uLG}_)Usv{9Y|I>zRvTx(+X@ttEOCt}an8@pP0cG|a4t$sEJ;mKD9zopr0G**H0{{R3 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/rgbalpha.png b/Tests/W3CTestSuite/images/rgbalpha.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e3baa90a758a8107e689f4355220f60c76191c GIT binary patch literal 13717 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 UX0ylnuT+5UH6zVB4f}}y18k%i4gdfE literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/rightarrow.png b/Tests/W3CTestSuite/images/rightarrow.png new file mode 100644 index 0000000000000000000000000000000000000000..c29fb8ae2d91038f60da5bab4334034fdba56334 GIT binary patch literal 963 zcmV;!13dhRP)004R=004l4008;_004mI004C^008P=0026d000+nY2?H!00093 zP)t-s000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c3JVJh3=9kn4Gj(s4i66x z5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM92^`S9UUGX9v>ecARr(i zAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7EiEoCE-x=HFfcGNF)=bS zGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7LPJAC zL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h?R8&+| zRaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJzWo2e& zW@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=jc6WDo zczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlTh=_=Z ziHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NEnVFiJ znwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@}s;jH3 ztgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To(yu7@< zy}iD^zQ4b}z`(%4!NJ19!o$PE#KgqK#l^dCU$jHda$;ryf%FD~k%*@Qq&CSlv z&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK@bK{Q z@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~;;>zP0000& zNkl^Mv78mVv$soR1_5z6-A0lMNyu)-{;Kz zKI5NpwqMTS#N$vXf3unb~-PIS4 z>o~6CuDw|OXx95{AI*Ay{iCTX`oF~V6+^njoWDavrSQOH#%KP2Lyxz?%O$+t=@3i# zyhK=iiH#GlKeJ$?g;*+h&(6I>z&pKIUt-fF{L3?JwBSt>5lgXoLdoC7?{tWzNLh+4 zV;TGn*k~*Oc)wEEIyQ~Jf$ntdEX9N4s2Ytwe>t!e4~^~RZ+rlpT?*SqkvAG!{&HX` zwvX5}nqjl7HvnSC$WM2$5lvhG7`PO6jtp-!=Cdqz4H+~VkAK=E0K~&XTSQaH187L4 z@W@cCX!_qqlQ7F-_b|$T^k#{sDEbnQ4plVy1YoEm1|Ay-d}?pd11LN`;Kg6tPC)U* zKq`O32OtGYv1edDe>tCkVsAe_(Ij$~4GzG$rLeD0eE`4#fOIUy{yssY=`6dh0}k}V zd8E$HHN^pdUW{1>dxkWc&{-CTden`^*fkYHU*d4jxC4L~2GHRikI8QX6;0X zdA!nA(c}|=p|TXOw#?7kah_#ytfiufQq1FcOGQ)AXIw#8iW4mrO_V2~c&#Zu>ns|8 zIN4OuL>Ym?>rL@lXVE91IMpsJ0nj(@j=x<(L@G7 z|E2I@)#|Jr`7Dc%Dkf*`_=|abTv5?PxdalQR5WWxIm_Z&MMV=G09^;4mhBcz)V3vj zR#wqOc>;>h%a+>qnb?-_McG!{J`a}S%M#-ac^244@l{Fp_E0W?#MdRte2Cgc@lA=H zXtHW^KE5p);hGX_8^w1;D?}69Sr*?HO~~5G74!I^XqRZ>wgeJC7Bp)|Im_awf{G@} zC6M^JpjkW0y%G4OprVPArT8^(xNV=OZFJq3bvCT)jnit7?cWYad;_W7|Cxpchw5RE`h>3~97xNC|700WdlF=fPtJh8JZ z$|=LMcFX~YN=mk9igo~vo~5X!Y{}a3oMll+b1qyHMS+DYB^Ou07#orL(Tv*;60^b%^@r?ictpRkv|99W8B!sM^W;V ellipse +{ + fill: green; +} +ellipse + circle +{ + fill: green; +} +[id=testAttributeSelector] +{ + fill: green; +} +#testIdSelector +{ + fill: green; +} +#testPseudoClassSelector:first-child +{ + fill: green; +} diff --git a/Tests/W3CTestSuite/images/selector-types-visibility-hidden.css b/Tests/W3CTestSuite/images/selector-types-visibility-hidden.css new file mode 100644 index 0000000..9d5e525 --- /dev/null +++ b/Tests/W3CTestSuite/images/selector-types-visibility-hidden.css @@ -0,0 +1,32 @@ +path +{ + visibility: hidden; +} +g svg circle +{ + visibility: hidden; +} +g > ellipse +{ + visibility: hidden; +} +ellipse + circle +{ + visibility: hidden; +} +[id=testAttributeSelector] +{ + visibility: hidden; +} +#testIdSelector +{ + visibility: hidden; +} +#testPseudoClassSelector:first-child +{ + visibility: hidden; +} +.reference +{ + visibility: visible !important; +} diff --git a/Tests/W3CTestSuite/images/shapes-ellipse-01-b.svg b/Tests/W3CTestSuite/images/shapes-ellipse-01-b.svg new file mode 100644 index 0000000..119dc2c --- /dev/null +++ b/Tests/W3CTestSuite/images/shapes-ellipse-01-b.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + shapes-rect-01-b + Test that viewer has the basic capability to render the 'ellipse'element + + + + + + + default + + + + filled + + + + 'rx'='ry' + + + all attributes + + + + + + + + + + + SVG v1.1 Conformance Suite + + shapes-ellipse-01-b + + $Revision: 1.1 $ + + ©2002 W3C + + Release 1.0 + + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/shapes-ellipse-01-f.png b/Tests/W3CTestSuite/images/shapes-ellipse-01-f.png new file mode 100644 index 0000000000000000000000000000000000000000..73e78ad8fcee4adf40008dc6f5661006a9223d1c GIT binary patch literal 31126 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Verify the basic capability to handle the 'ellipse' +shape element. Four pairs of ellipses should be displayed in the +four quadrants, with the shapes in each pair being identical. Filling, stroking, +and filling-plus-stroking are applied, and the cx,cy (center position) and +rx,ry (ellipse radii) attributes are varied. + + +The rendered picture should match the reference image, except for possible +variations in the labelling text (per CSS2 rules). + + +This test uses 'text', 'rect' and 'path' elements, as well as +fill (solid primary colors), stroke (primary colors and wide lines), +font-family ("Helvetica"), and font-size properties within the 'style' attribute. + + + + + shapes-ellipse-01-f + Test that viewer has the basic capability to handle the <ellipse> element. + + + + + + + + Basic ellipses + rx=30 + ry=50 + + + stroked + filled + + + + rx=35 + ry=35 + + + stroked + filled + + + + rx=30 + ry=50 + + + stroked + filled & stroked + + + + rx=70 + ry=40 + + filled & stroked + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + shapes-ellipse-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/shapes-rect-01-b.svg b/Tests/W3CTestSuite/images/shapes-rect-01-b.svg new file mode 100644 index 0000000..8f91157 --- /dev/null +++ b/Tests/W3CTestSuite/images/shapes-rect-01-b.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + shapes-rect-01-b + Test that viewer has the basic capability to render the 'rect'element + + + + + + + default + + + + filled + + + + rounded 'x' + + + + rounded 'x', 'y' + + + + + + + + + + + SVG v1.1 Conformance Suite + + shapes-rect-01-b + + $Revision: 1.1 $ + + ©2002 W3C + + Release 1.0 + + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/shapes-rect-01-f.png b/Tests/W3CTestSuite/images/shapes-rect-01-f.png new file mode 100644 index 0000000000000000000000000000000000000000..bf25fdfed918b9fe629b7f56a908fd2dc53ec088 GIT binary patch literal 26453 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%0Ai{`9A%|jrqxr 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/shapes-rect-01-f.svg b/Tests/W3CTestSuite/images/shapes-rect-01-f.svg new file mode 100644 index 0000000..2caf30e --- /dev/null +++ b/Tests/W3CTestSuite/images/shapes-rect-01-f.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Verify that interpreter/viewer has basic capability to handle the 'rect' +shape element. Four pairs of rectangles should be displayed in the +four quadrants, with the shapes in each pair being identical to each other. +Filling, stroking, and filling-plus-stroking are tested, as are the round-rect +attributes. + + +The rendered picture should match the reference image, except for possible +variations in the labelling text (per CSS2 rules). + + +This test uses 'text' and 'path' elements, as well as +fill (solid primary colors), stroke (primary colors and wide lines), +font-family ("Helvetica"), and font-size properties within the 'style' attribute. + + + + + shapes-rect-01-f + Test that viewer has the basic capability to handle the <rect> element. + + + + + + + + Basic rectangles + width=50 + height=80 + + + stroked + filled + + + + width=50 + height=80 + rx=30 + + + stroked + filled + + + + width=50 + height=80 + + + stroked + filled & stroked + + + + width=50, height=80 + rx=30 ry=50 + + + stroked + filled + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + shapes-rect-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/sign.png b/Tests/W3CTestSuite/images/sign.png new file mode 100644 index 0000000000000000000000000000000000000000..6aac7e150a7abcf12c523faf5df07f410ff4ee11 GIT binary patch literal 10647 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 AE&u=k literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/smiley.png b/Tests/W3CTestSuite/images/smiley.png new file mode 100644 index 0000000000000000000000000000000000000000..5bcc67a2d0d1a3258628825a0adedf2667ac275e GIT binary patch literal 2856 zcmW+&dpy(o8~^OP+16|}v5?zbD)+f1xy;y%&WT90I5L;xmJqrLZKk=0=qA-rOAfWv zQ6c71sdGqCaVk-fg#1d5d%sWTkMH++J~KG*m2d_LJ;o^B+ zqCRvO134up7eG^;fWAlmL@HA3oq#}HvtOM+6_U7gM&mLiMc~E=Ie&Ts0`e_ayYA$MVsjhm&}X|b#yQQ$>L(R`k1l9)0~`DIs{H9+v%A>rZN`k0}6 z&YP0H>Z9rOW`M%eQVg7q4mmO-tP|J&$Cq_>W(|LSDLCkO{%OlmqK=MjJBG%W>Y17K z3=Qz@Q<)U0mHxV8j$CNb-iWS!$c;?%ze7191sKYjOA?#10N)Pr+ZMIgZ*F7|nIPC% z7OxrqQNb2@k!NBurh}$1$2uPq`YJTzZ!2I+N;0%;0V*T?%o$aiI7!{fgH!zQ!3|r1 z$GB-wcl@&5JjXG)LmEzM@5m;mri#lS{(3r6oxAh8Wqd+K2AK)UX#oMz{-za6S?3z}>BRL8af2k7fU*|%#zrc|5y*ekTG4cNNc`^X2 zq=ax*$@fappT87H@iacAs`*0nny}v$r?oH{qSZFl*Nz)hmYt8#r-NV8C4t!}Sz6oVtGT@7`4jz*ym{f959F;Ed>=*&%QX7_)84kN`m93D*DRdO ze|3TPtJ}rA9eYhZ5cw?rvKk)XX$GY>`OzHo=l$=TW6cYDaxYqiJ;y`< zg>gww?<;$wYbZ@fs9MAQ-~VnAYUn|#B`2NzV4Lup?Y8%h{r;Exbns3UMrHk8z1FH6 zg1_7v%E(7y4Kzvp$JE7XlhE?pDG=>td9p!=6NGy=3y4Iqzj=em;uEXPVmaBGMZ;Z(9ny--G~f?}}t2`fl^c zJxb;|r%#WvPQGmxln%gn{R=#EZBet~A4c{ill$EUZV0)R{NU=V*}Vq5$y?FXy(~g{ zNT?db+$}~rM}k%_8y*&qnppxHHX3o)G6%Dd1iRF0myk7wr>690Ea1HPYeD}xZ*9%VZz_}fcj>`FefW%EwM|{m0KI!;zg`Rr(1&k7A@9R!DP2xASnOg~Cy1XDw z8lN*|qHuL=J`u|YNY@haj=czj_+@Nls`m$Zl+7yd1Pl@YZcShYao36*L5u{WBU4P)Q; zKtC0uCCk&C({wA?C6-UGtTEJGJoyTyoh7nzZzp=3ZTlJI@>gN-&7~o?PoIdebaofQ zdZy&G9q|3KXT71Ydp*%krQLT(nj$OHqJjSl^~;9wWc z&DU4VM_{{GtKdwf>hU;|KU|J?WFfqt5c6+H8hT?L`Sh%nn3TYTe!bX#=iFD!^$#d7 z$3RZsh~QsrJJh{4W9-$Yju3e`S>lznU%KRMVg*I=9-xVfoGyk%DKrnfGfB+MgrS{NFZtUcD0LV)9h=ZYo=Sk2|KwDrcu zZPrdsqFfam?Ti+K9mG9;G@qV^iOEgar;`U`S7!e`Zdrp@HA9dw3Cfj!_e8Ag@XPDO zo8iH`RIn2jF|XYvXP-Ye;K1?|LLxRKZk)fHD1J}5fl#TUt3FZcVHX*KQpTP7n$E{3 z)VKv&<@5w-HtEBpha^|f_0NZ}vImG>)79*S#XD1ja<4vTi~5TC=s zeTL^ID7LI8E7ks%9rsc}N+;yy9sb7jrLOynr0oE9DJ!AG`3a-X4@f49 zY=~reORLJr#~<&@_cUx=!s*Ay^Nrq?t}VPMm<$!4(sqhpJGZ#WU;xQ=<;B%smP@*Y z`zPAP8svS+!WYIFZn-ITEm8$=Ggme7mEmn;)&Th*%!@40*qxPAv|VrW&QK#&WpcaJyf$hSjV#wW}`hm zB`K9(5#sD-zu>45GP?_HdYXdGJAak$tKWV5`0%%gXuE`O;VBmI(4C`5?QD~>N<9TM zo`AGg}`%{;L161)IwIsWKVTq@w5=dmB13#T9lQ25iG7d)72II z#iF{>(8s-M1sbs4;blJNnQ{eFR4RdNn6kE$#^WPA+_}622;5F*EiG|lJoa^am>$nK zqp5)mWo%g*JzwFxcw@u<+}7tOw+6w@IiFQf5d0ud@UO#`$oHHcnc)C*X5bneJkz)< zbM?$Pm9@{}GF2O1cTlMJ(XHvufxjY+4;vbGOdCQO>2R{82E$=`I9+5Gg!O&fhrkPn zN5^AA=}p_CX+!N}PKV4Y>rSMVN^FE8S-og1;znNwG_NzW(Z*x24Vd!cD zrsn3!66O_qlR$z|lA*)9g^$~MxS#*|Q(T^!nyTv=ba^$vi&4yp32}CRKewm)97$cZ z`-0s0a14=AgD#hOYM4(prI85lCSN%VF`qt(LEGKk!c%}I1J7D3mHOvDbik`F*y8HR JzUIP9|35ASk*fdz literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/sphere.png b/Tests/W3CTestSuite/images/sphere.png new file mode 100644 index 0000000000000000000000000000000000000000..9e22388e7a22bdc4a7abd29311b7e3f838b320a1 GIT binary patch literal 5923 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 htv@{TZ#Id`6B&&$H$1Y}>mTI?))vRi- + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/stefan_252_tRNS_opti.png b/Tests/W3CTestSuite/images/stefan_252_tRNS_opti.png new file mode 100644 index 0000000000000000000000000000000000000000..1937a31541b078ba30d51c953cb3636147b0c1fa GIT binary patch literal 12777 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 cCn8zK^f>O_B13|x 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/struct-frag-01-B.svg b/Tests/W3CTestSuite/images/struct-frag-01-B.svg new file mode 100644 index 0000000..41e99c0 --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-frag-01-B.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + struct-frag-01 + Test that 'svg' elements nested inside of each other will render correctly + + + + + + + + + + + + + + + + + + + + + + + + + + SVG v1.1 Conformance Suite + struct-frag-01-B + + ©2002 W3C + + $Rev:1.0$ + Rel 1.1 + + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/struct-image-01.jpg b/Tests/W3CTestSuite/images/struct-image-01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a74e07223bd96dce886a0ef9f1643173f99a24ef GIT binary patch literal 4751 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/struct-image-01.png b/Tests/W3CTestSuite/images/struct-image-01.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed08406dcf7b02daa56a0c93c28df5f4270f452 GIT binary patch literal 63238 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 z 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 z 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 F{{Ye8)GYu2 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/struct-image-02.png b/Tests/W3CTestSuite/images/struct-image-02.png new file mode 100644 index 0000000000000000000000000000000000000000..c609c46719e934087b1ca4befc08a32d10b5076b GIT binary patch literal 35887 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 beewSV&?we;KvIWM00000NkvXXu0mjfjCe;T literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/struct-image-11-b-1.svg b/Tests/W3CTestSuite/images/struct-image-11-b-1.svg new file mode 100644 index 0000000..9ab4b1e --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-image-11-b-1.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tests/W3CTestSuite/images/struct-image-11-b-2.svg b/Tests/W3CTestSuite/images/struct-image-11-b-2.svg new file mode 100644 index 0000000..01f5d4c --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-image-11-b-2.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tests/W3CTestSuite/images/struct-image-12-b-cycle.svg b/Tests/W3CTestSuite/images/struct-image-12-b-cycle.svg new file mode 100644 index 0000000..ce5fe14 --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-image-12-b-cycle.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/struct-image-12-b-nocycle.svg b/Tests/W3CTestSuite/images/struct-image-12-b-nocycle.svg new file mode 100644 index 0000000..3d6440b --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-image-12-b-nocycle.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/struct-image-17-b-1.svg b/Tests/W3CTestSuite/images/struct-image-17-b-1.svg new file mode 100644 index 0000000..ff34bde --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-image-17-b-1.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/Tests/W3CTestSuite/images/struct-symbol-01.png b/Tests/W3CTestSuite/images/struct-symbol-01.png new file mode 100644 index 0000000000000000000000000000000000000000..323a51fa7322a9cfe25c5367b8a8bf8d95f747c2 GIT binary patch literal 71497 zcmV)pK%2jbP)b>8>eJK~%><(yU3Rn-F;07*;~P1>SFQd*X^Y-uff z>B)bopZw-UNwfeGq)3p42%v!;s=MZ@9B?SyXw9i^udGnqrhW+i~ z+dHD<5C7wTH2w*P-1&U>L012gJ6GJjwg4$8YK9^#`X!rZzu@X;f5rCmk2yN~goDim zVm)e^SKs`7F2X+l$7hLQb_5|1o0e^#F*6R17xaBXq(N`q^62Ul-q~yU&araxo4?QG zxBf@sWX6^NAyB^5nqTes$KMIJcmM6fZgzW}+Fjen=E{F)K0W+hNT;H#l zfJyP|M7^!0_;nZenoG$=7fN-o}ppacyRE07b4kk#Kyv0Zyr6*JrQbv(TP z0Dj##&ZYLrtbFNv!7u|WiU!BZ?K2e-1+)%t0kevyQr`zg0fYEYLGRx!4u01Dmg^LV zX3X=J_WBiPzxWBS|Jz?Mxw+t-0Fw}i8pt_f2*dNIw6i1P%Nt~V%<92=Y*HplKvcL` zt(Z<`#1zx6rUpu>q5RT+e?M2>kNn?|bhEjJto| z9^)B@moQGM15CdpT%*94-713J{c@{Zi;arl_FeX+8wHW707UAuMxnhuzTDE<532%N zh1;wEf{G%+pCR}&)j*2v`XW)W0veT49Bcq00YtC@VjztD_68{d#DOWf0B$4*LJ%q# z!AuAeDJ9eA0nAV9`u)f=A zufxqXH&<7@mnMAr=_|H-$1vYVlhI5j^cZRoYyx3MnjMgJP28;MF5hzb#ZNi8_da^> zA;mJH`ELl|Km7Qo!1(WbsSCrdZKii#=fXH%=Re9QAb;B-BG?_ULw!n}1MUdXSA}&q zZ{l|JR`1!Jxs=^AcTKGp+DHJXDym8;Zh0jHsu=QB5+{cdI0_i zQAOky{KcSTqg4lg%83voAw>5iU^mDjN)r?jA?HNN8B+cdD8FiT{k~i9ifC=;?hcB8 zL?u{L70{?;1VkL9yEz#>8GL-?%btx}U_%%chkG0G|1Vkm(qr$M0K6G(+0b4-5Je^1IFf@-WFGcZFWx(g1d3b`b#WCTTVkt=1WMnD;I@_Qs;Cgfb|y$;?| z3S{&1RdK|qyZ(*9QLT!m6mrg(h24CK+e z^E>`yWccoJXUcYejScdzss_0;fhK{nS@ZU<|BN?3{sHe^K0#?n{g$-}3B~qLIC}2` z=95F7eer_z%^JHIh;7dY501!(`%I=2hE_;Jq0ND`?YPO8Sk7!x;CdFgIl9N=sc>RT zt}ZW_*%sZoZdI{-xf9&!%I){|)i3V$*guU^@i&k0!G`hW*WA5ke1&UtF!K-NM8^Z z3WA^#0HaR{F+tQlk5URTL~<^qlpJhS7ux)M2oVi|Vqli5>?uMao1qG-0Rd7jbX`V7 z2_c}Wt}KS3-gVpIoiao2D6iTt#(s}|^0Qi%P|k%A0vH}!11gHi?HJtkTns2`U~0^?wSRwuAQW+a2uRp$Ow>ghM**Cm}p{e^OVb<|5vvE z_5WmkwM5D(*$TNna}pwli+yC%@$&PZ^Y+DSKJI38^ApYEZm5D3L&XKag&|O!c5&eZiWs6s(==>1D_*@i zXXtxQPfys}Uyz1^nIP_HI^Yq6#((R8Sq3V}Gm58-PU>wxL=?fTq7x~%0_%OKLQ{p; zYy|J94C8HIN2Mqu5hH|PiA3C&4TLN)W9C7!(R3k!+*)AT*N}t=4tO zxeiC*RuY6EX9Dix7a%qfD^N%GKK?xyy8?-yj{{=VtE#+c05Z!o}Mw^7+rXe*2PBu6cZP%(wOy%v<54 z?UBYX25fc3HaFx~Px<^Ok@nFym_Gb~Mq4B+$qbDFQKOL2Vvr#Oamx`hU}zDanBW@M z!B)qj{`=L@9Ic|&YaC;Pl?IGL76*-v=$@)bkhbMM|g z{@@ROj}O20>+W`0ZJ(&OtJL_?Z5)UT3shIx96+P07u4HO+dIZrRy!DiTPeek>J^OV zE3ZV*NWK%hl~O3Va{ZD~@#mLuyu@ACCN|_@pc{HrBTYM@SSDLRX;2BI+}D>FVg{l3 z{hM zGEp#siZj+ZyD|$ANQ3HmcK%iu+^5y-qozPL| zNQm-P0_3X__;(y)hLudI7Qo#W*H)ltiHI3PpU5ahR^;t9Hy?e%_Qe^t73QZ8Ir-M_ zk}qB}JbjLCJG#w=m*)dFN%^dONO=5+<-K?5+9{HSyxnm9<^^w_KjZz2&-vE98Q+}; z9vlS@!^8z9PLW)Q!!_3R*!7nF{59#LUvTrzLl)otE{pH|KHdC2D;?-n5t)#)YgK7r z!r&9a1Os{Jtc^ZG4MKKp`? ze)(XE#yu^T>$R1 zdu*$>9tUW_?Sdhi!Ls*GZrw;xsX~6fB7Nm764G==4WFePa-xV+wHzsC`si_@fZ6G4<-PO4$l$|2g=*q^j)#pKwf||KY zu8K&gz-~i z(CUPOprOUg`1sS$_~Re`G5_v={x=-%KVay~E%>C=_l-`OeCfR-cz1c&JD|Lc=W44h zlTx+fG6LJ5VYn6Z`)aIb246d z6>tZQ$jImxLTC_Ga>#V8cRjgC1{r6E=&WfV)OMiLJCVdy~> zZKkMtyeyJI+#McH<~{!t!$5Zud9AIm%{5~(qBz6~YRa3!}p?{kuK0{mUnxf0~= z6f)v2+FfD%6%PYUgqQ_2B@0-AErntNn(4ZZkTPiD#p~z%_|N{B$JehAnecXKXrH|% ze)IdFD|D3j+k`>xXOLO>u$>N0hS>$|s&Dwen z_ZBphh^iA8SrU0z()Vj9nUbNg#B_U!y}sbHKR@Cdiy4c@zrnhPY4J2i8WI{5i!CS& zF?%sUaq{GrT=2;rX#^ATzwzM}sq$Qh-Y2@Uj2aM>!3vkxOFnt>IY0a8=X~+}CD+$W zB1%q$l8koRVng!Dj8hb&?>hecM?dED^pxNG-9KQ`%qY3wU@T*U{GFmc-PMX|2o;3& z+)nY_THm|v^=r$nvxaxl!7f$6J%%6>EArgO}^ z??G#^N3dFGVR$S)S|-KJpJBy486nfOO|^K2>VyyjxM!7S$)c>$g06{+#am4M+W&)wYo7m@c;r zRTC{Ov)P-G5ATuo@ALWFOMdp^DY6}yPNq!u7c36;+221wLqeJ+&j${Kq zbi2W{ih)~&Xg)NIuItY26rtPpoSk3rvyVUF<4->2`O8AhL`5T?yLmoO=i!P6*17`Z_nt$URuq_M^M6Ix10ieS+KhayfD~eY`C0 z%*U^E_!HF(H6x2M1SLsJE{3LoCTA>V#0psiQ8+lc&)&oLdATx{aY`X^XoUv?m#wmF zTP~;XFdTnKzc}W6Q+T!Buni3{C{Y@6pV?mC5aOIkj67dFVsGz0PoKRYG2;jrx-Gih zP;zF-N>=ElU`0sD+e(H!7(e^#pE7;;-|^nJj?v)mSXMxcJ_IxbvL%`zXm-|EzbfPa zq7^`2R*0hp9fpCF5;+M^pFZPfAAQV=m#=txcFxUejW#X6@vZOj&Z9@%yLXS-e9F-E z+^m*-^pl@a#7U2$5iB{;Q5IZYX8!Px{*aS<`#gH|keo8u#4Uk1t7{mhKutqrb8;n6 zNjgU1s1}?N=yy^b77(Hfx*2HWmKhKftJfF7i7xZF*Hc10h{tq>AgTmBpF0c#LryeJ zgA&;GJwYa3=z)02W9cfB94I#CONAjPR0FCFr6gjkF>VvOIFJzH#axj+^p!jj_c)?>*Worn@x?il^7iir^hF} z_ul&$PJCo5oSvRCU(DIAZty~eh?UGRB!UEDhO z97ap*@AB~(0c_lQ10u4Eo#W`<{VK;8)A__02_Xv$fkE zbcinAp)1N&p0VEC@aASsDGJFoW+6}{lLkn|5QB5(49yWgUr+dah=hx`EdJY{vVXMT z;P8lnLbk#*Wn|d0uo)o~`q)EI)+tkRrtdm#mP?k)D{gMqY&IRK6eKFs`4kg)_4*B; zeflZOt7{Y($^s*x5;2_ZRP~(Z7oUB~gZroS!$6+~)~hv5Y&bc+$LFgJp=k(37;*(2 zkc$uye*EK~uv)J8&bPmfm2-xa&|u6L3+DTW?Cr4%D&A%-c==2pN8po*v7jF-FXsSOa$NEoQV$!;lh&5SvJ!5~f0IT5@&O+t|7XkuxDS9$KVA zuFp3UvWdI+WQ>e}!a#SC)FuCc0XHVi$Ve)qEf&CLq9 zAuli4KR@R*3M=a>^XN@Y1uO_fgkFS{g{1|qHytm#OSZEU_G945lh4@x^9@IG=mdm7 z8h&9b_n-d@zW$BhzzS@(D{j^+uCCX-dHn{?6pRl*T$E0aJ4pk);cj-oJ zm5c4%J9iv7%>KN zDNLpll;~bV_9Bb6Z7HR?qvCO9&Vzd`xzMzpKMpY>Mr-F=}eGZzY1w71A z^VC!b0Vf09!jDy8w^r9cgct&b$K@kf5pUyYxkJ6iW7@L2)~Yu!dUTS_-x(rg|K5$R zxx7>lq}bRlh#nmMlH+d$w$%sAE^8Eu5pY*>NIj_pL?V4FY_|iSfBqTQR~Kxqwj@zx z7U{Z#T1yTS5>qr9L)vit<{5jjFunhnl$AyrtV=W#MJK{$J4J$##8?i3UcV(R&l&QT zGM{p`byrOlFs0D2MOXuuO~du9;dwD$uC`d5F`rBrmP=x{<>u@aoE#ED%P9;xc0weu-fVdN_MA_@_?*w4JmKu@jBe;@q5{#u zqb=4#O1%qqodmN&?lV_smplzmxmm5)Y`65uE~=y&ulW~;NXCxqazOX_K7hf z=2-<5C5e$u&{CCh{mC`0qs42OMb$~!NZhys5<^W+1LS z+>LaCj2f;?r&G+_jt;}HvyLM(9peNMBZP>GG7O1aplMtQ#Sp4{>@Mq&yd<@08W6Y6 zAeagwUQ{D0q%IL@9k8WPawa8bpUrGXj(OXJG`RAzTDg+PSQ!}8U?yH_qZk?@Uby0} z^|m-!8ARPy7DIH*CS=A18S$6mRH)YVZ#gRQB~nug^*&RM;B&dK4F>CrK&=?W!Dt6#G6aHx;PEo4XDhHacuU7cfNKJ!ZD>knd;S(MrUwVSdiIP5_wRE# z7#EjUT)upc<;?Nv13vu5hv2!fcw^EAk*3a(9tsoBSQV8lH%2<5hWS(0J!-X#dx3He)q^5>k)Jpbe zIuHU>26nyfyy8i;0?t`rE4P+ym&+{$WOUJM{<+F=O72xbX~VQcb5zlk?JXUc&V!O9=EL78|(8GBZ5G3 zOPzoqS`Abs`Ra3j$#K^*e-+H;R^5b90=*hpaWGn`;Ll9cnyZUfw6bJAFWBJ>mQzCC zbGT?&v%-j=4coI<*vlvU^N{!#vgPdR4a?;#k!1>4(aHZ(Lkkbq6Mq3f2c z(w4s(0?lP%-s~|!k+eZ_VUh}=RWvG_wqZ39rrp4a813eo1uadSF}dDw@x|x-<BGSC`i9Sc{)C@=^bt?ryg?B5rZd{u(66?vw_8Sf+D4K_-5o3$ zBA!-hr6);2%vo_Se-zNBj&rG#7s#n+(=8eLEnT;!?+fj8!QS2hO%o|4d2y5mjDV^z z6yq=c;zvAw^oZa5-fz2gvdVPGZG}<{ffxeQ(|epA9g|YxX0zt(^&4KkdWkfVljHlG zoF1~jcR&o{X&l7Kyi&l!WCujb)xE2F38^-~-9rspEo%i6>Q>U&#jCn}TlGe=O|h;c<(_S~LHnLomDEhgX`ma{3|;1E zW*i(&dFS|)`wxydI&K-78J8JWZ?1Uz#S70-i?gDWSzzyQpRaxW>m0uSO|)rX*m8b; z#!o-_86SWADOcxPl8>Orn42wII@E-wZGFPUM=6&=spdsR@a1cUsbbmFDIo@$82vhR zcQK_*E{V-*Mb~ZUwl|cVuspEs2DV*C69bFIA)a>d`&E4b`!IBDyTpI~PydC({S&_a z;fJ?#bth$L=9X)8|C**@GMhS>bLR5qnpZF1@{3=5%%q)idUD9&{ywwWVpk|Jt}ycF zxoqq(w(~>4m)Hd`2W?P%EUIM+>I`j8r2;9@^&Qjc0)Uk5R$yxmST*ikQ6F*7+Y3TU znNUHUQjd{$F7?h$$APe8p{a@}J24ePtg(8HQ>|2`Qfj|sM}p;)Y1R!KU$KyeOMSqkD2+_XlIbUcZ8ntaSG?QZ@V`HN$UC}3x6k=! zZOdwv_|cmIiw8_p7z{4AuvvGU1;td@A37pNI5;AwHAj<<2lw~+&WDi?zwr*I?;Q~7 zDBU?}lSymi&A#&2owAfnD8_8292~X$#y|Tm_ul)Ew?pRQ;+!|1{Wm`O#mAhTtw`Az z2u_9#Mhwv{hRY5b+%gq&K`MYqK#^M)su+@|Of(XLyT}@a)ORH7k&@~9HT}@BUf+;Y zqA@|mh@x0fhSIZMUon|91ljYPsdN|vDHmc8qAa+)?D@g>{|m=Qha4XrQA$D7_iq^6 zqrr2MrMOFI!mc3a@ZgZ6!xOgMmWzuE&fcDJeR;#)VvoJOJr4H|XeSeHxstk=Vsx=p zcRrjIrF0S0i6s!MB)49w^u6;Iq9AI7AVgD&^$7UFg5vLSB1|etR(4?2T0;&BCYULu z`15=vk}>WoGWLIT*~dbXv0gdngou-F9uoMNnPozBaHFxd{KvaE&Rj6rTFGbB*=}E;r^Pmb=+ydXa7q=R9=LU^dxBlAI z3RXQdvc1LdI#Ud!U~1&DVDIQLjR;dq+)tORhr*UURE6ohVRd~)7#qKH001BWNkl;ExJg~gE5j}Vdh{*N7tTO(d2P9s?26HhMcfsJ0;jQZspwa0+i~0 z2lrx-3V>SfC`t$oRu^HE%3QmAyWtxD9$jEF2%*85=fU}l3VO$iR;%a>Dt58BIT%YR zJ3=g%TrIfs6;^6|Zd7;MYW88QH4vPD^N=JBY1clA5Q4Mi)c0G-L@}*e^e%A6V|0Ve z1sFH=<3?Kzfl!Q2e6>e|oBKX^5__9YnIC?G_YM{;FV1PNKH{=ho;2?DiEb6;LR`uiAJ%+Fm(R2*)a4S zmO9d~WvT-q3Qbd(FJ>(EBJ=r-X40}e7p~4Wbe&SRJvpvvr+dDR8AD_O1cu`2nZ6i* z@&EjklLzne-S7P-S%s1^u>q05kn1cP)dFU);Q3tyvp_CAB2a=bJ>28b!GbdMynXYU zSLbiI2`z_*hwRN4G%>nD5piW=Mh>6_)Qquic`RPZ*to=Qw9Aw(izc`O4}BzR1m zb0(@{MTxhFbqzBDc|2TGNuA|-U9~&Dr$PoML~S8<J~!EzU%XylM7T=$>-i2T;@!s8T8u~ec!R!uJA2gdWvPD zX4)ytrxWJW35&g!#omI+B<$krAdL(0b!NNi>9wBgMei(?T9$)o%Nx!v&RJex zv$t@9Z91Lc{&k#>`EESDQ~f(s_b^+sLDY@pjDq6 zsoxJnLL?Du(Ti1gTriKvi@V?YiWQ(ldp!*HaMA?^)-#K2ezqvxY6~6RK=!aT) zB3^A|r4UWoR!dxL%Y1*v@BH?={F{IMZB9=IUcdPs9T`?D04T{o`4hyARl5Nd) zRT#EwCes-~8d6DURIIw^8X{fFyn6MVAO7I`{QH0RzcQUoN!tNK(KvC>$_lxFS+fI7 zDGuXMm+zTmyp+@2!U#-eGbYn1v%LkI%O#grSFAT1_V@SM-`}TcV=Yv11)+5XmdA;= zKomd>XV%Tbl$@PllnTg^dA&`$RQWV_LsRli>&9APH#Af*+{U}PBy#c!Cvcf}7~3vh zmCA~X$nC-|D?t6O{)~HSjWM-*1Gnpur80V>+t1jBTJT|2*-9Ouu}wkU+ZC%GUGR0v zIS-8MpvUE!yEM|MJjRCjA5?>U7u2qm{dWKhL<}*{T@7eG4+8^4SUmnZv$tpD>u2PC zNk{{&W{x9F7ITh|?{V|uQ>L{sU0>+3xXXtz6yMu$D23~8%Q_o}t?=95dBDH@gKx1v zhmSvc!snlU%K4imX;7xKLyk`-+Tr~5Ok&mAYVInI6R6SM!)%!@^)4(Wk#eHzx1JkhMNpVFN;_$2W-}JE zDf@dZi}{r4#78^Cs__M+Zf%-MA~en&^u3Y?=!Yd5=CrLB-H#i^ff0%!1|;%IU*7!*p28N_JP|0H5*NGJpnFS!mZVI z?GddIQA!9-03?qgN|WiOpa=Ik`HkPi&OhgJ`-EA4iKHd>_K(;<+Q;`00*OLNkdsj~ z&}SnTV^GM&ncb^l%hC$J{puPgl~NKZH8`38w1l2 zoCO{VRut1h(*_7ewt+NQ1+I8Htb#7p9IMsuhhoU2<-wzOSY0oe6dc@cl5RWTjTZcF47&rg0VWioKEv5v*;zb) z*4;vkQT9jWFh0*^zS{KSvHWPHZo%tHGu4z*&S}>ssW>XNJQDCMM!0=%s)}B

0|y z)M~Dp9&_&<4FT$NODRO|9NvCo2h=-p%=qH*oB-p-V7}Np(}+?+Bu8IYsVHK?P=tf~ zACUgp@1xBj+s{5>Yj89>;NaA_zBwlcZ=o-lgKS|J)0LFDR^g^(Zo0zBNy~r#yYJFW z;OXbD_{A@tu-+v076&|d{D=>}{!P|dczJ!p+n2)Yw>Ml~pR(;5EYIm5B`41r ziZh;ugHcUTX|e3wfFiUpI@tmgaltKOWQ-vXzOh=jVHmcQ+yj}wz(ir%Hq0iG#ojTq zS<7rO_d4K4X&NWGM4*_*#8P~BiZSn~8oi`aCx}5*Mar6f=-DnWS#LAb_90fBd{T)7 zUnz%3OD@84x#IhO{O8Q)4|#C^l+35{jt*$snfq168F~qVsxcJ7iV(=oq9UF$ zX&Rp!DkGxeV=2PX@iB|pl*@}tF3&HxyuRY$<3}7G9x~=s?-nDtFdC?mdSA#;aAB3o z0*~u{$JI__?R3-J?$D8Q-h}|SV(jwj0CU&dMcTduE~w-bKz+W5659sBLpTG_P`A#J z-Tfj~F@C$;a%|IGMNrIk?Mpd*Nl}bmg({@ny9ZRkOY;A51e2YIpuy8$@opz7R_kZ) ztSA5PcGUfIA0Wk9MR!gj0dyjgMiNF<`{^zr&;X36uRpUOj)w1m*bfnCu+&-GUM6PPkH*}oU+ZF>>Y4&|2{fzdGYo& zpPg+uyXZMz?K2E}P>v~Cfj|~xD4E6*h`T;f1j|;_Js?_(Bn*U169bLZxL14`b#H~P z@7N4mQtHWNz{&unCrF`+O;uLDwx=uNSn_eXPb|B1+fyv|&Lm0n5Ux*XMly2S4PSU;lvf zS6}e_`7<6ry3f}>_&SdtzvqiaQf9O2(6%8o3$O-F83_)UkpL^%Ry5031V>OkiXBa5A_vPYozVj60>L}f{!##vR ztk>UywUS%)x3|f5@7Jh=dOx@qqSeTh+U`glv)wTQ7q_#Xr}tQFJbc_e{wpEZ-5Q-a zYsDyyVG3nEuN}>lVPM-VXiwkg0duDJ&*^T~gw1mbSEz1?l1S39RUy@){XS*3rSK{? ze3TM<_ZNKd&0piQ*Prmk(-lchX^v(rn`3S^k<|s<+-$h%6=NURV=-HxVb1k(Nh$+k z!n6*eJH5`O$LJ(WL=;vo^vfqj)nyV*`rIs$4@@x#jDR*Ex%ycF4+z>_6nuJ6|K*e*}{$P-EE)ngyXQPO#)6qQ2?DC}7k51@A6qoL^q>=FJ;6n+=a1 zK4yRaz(?Ln^%A}u+m_->EfK0U6ihsS9L4vEmb�V!M0XBD%#k0X3->(>V-PH%>wY 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

c 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%0AL;f$r>AJL#Vt=BO|=>q#`$&X15zPEN6LaUhNx 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

^I^5&m)1J`V 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 + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/struct-use-08-b-cycles.svg b/Tests/W3CTestSuite/images/struct-use-08-b-cycles.svg new file mode 100644 index 0000000..8f3c1a4 --- /dev/null +++ b/Tests/W3CTestSuite/images/struct-use-08-b-cycles.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Tests/W3CTestSuite/images/svgRef1.svg b/Tests/W3CTestSuite/images/svgRef1.svg new file mode 100644 index 0000000..1df0237 --- /dev/null +++ b/Tests/W3CTestSuite/images/svgRef1.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + svgRef1.svg + $Revision: 1.3 $ + + diff --git a/Tests/W3CTestSuite/images/svgRef4.css b/Tests/W3CTestSuite/images/svgRef4.css new file mode 100644 index 0000000..0e4157b --- /dev/null +++ b/Tests/W3CTestSuite/images/svgRef4.css @@ -0,0 +1,4 @@ +rect {fill:fuchsia;} +circle {fill:blue;} +polygon {fill:green;} +ellipse {fill:gold;} diff --git a/Tests/W3CTestSuite/images/svgRef4.svg b/Tests/W3CTestSuite/images/svgRef4.svg new file mode 100644 index 0000000..2f170fb --- /dev/null +++ b/Tests/W3CTestSuite/images/svgRef4.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + svgRef4.svg + $Revision: 1.2 $ + + \ No newline at end of file diff --git a/Tests/W3CTestSuite/images/text-align-01-f.svg b/Tests/W3CTestSuite/images/text-align-01-f.svg new file mode 100644 index 0000000..b46aad9 --- /dev/null +++ b/Tests/W3CTestSuite/images/text-align-01-f.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test 'text-anchor' and the 'baseline-shift' properties (horizonatal). + + + The topmost three lines test the three values for property 'text-anchor': start, middle and end. + + + The next three lines test property 'baseline-shift'. + The fourth line tests 'baseline-shift:7' (i.e., a length for 'baseline-shift'). + The red text should shift upward by 7 pixels. + The fifth line tests 'baseline-shift:-70%' (i.e., a percentage for 'baseline-shift'). + The red text should shift downward by 70% of the 'font-size'. + The sixth line tests the three keywords 'sub', 'super' and 'normal'. + You should see a subscript, superscript and return to normal. + + + + + text-align-01-f + Test 'text-anchor' and the 'baseline-shift' properties (horizontal). + + + + + Test 'text-anchor' and the 'baseline-shift' properties (horizontal). + + + + + Text-anchor:start + + + + + Text-anchor:middle + + + + + Text-anchor:end + + + + Normal textbaseline-shift:7normal text + Normal textbaseline-shift:-70%normal text + Normal textsubsupernormaltext + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-align-01-f + $Revision: 1.1 $ + Release 1.0 + + + + diff --git a/Tests/W3CTestSuite/images/text-align-02-f.svg b/Tests/W3CTestSuite/images/text-align-02-f.svg new file mode 100644 index 0000000..b3b2897 --- /dev/null +++ b/Tests/W3CTestSuite/images/text-align-02-f.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test for viewer capibility to handle the basics of the 'textAnchor' + alignment property for 'text' and related elements. + + + There are several groups of sub-tests. The first group at the top has an + initial sub-test with no text-anchor property ("none"), then + tests the three values of the text-anchor property -- start, middle, end -- + for simple 'text' elements. In each case, the x-coordinate attribute of + the 'text' element corresponds to the position of the vertical red line. + + + The second group from the top contains sub-tests to verify that the + interpreter handles text-anchor when the text is comprised of other + text related elements, 'tspan', 'tref', and 'textPath'. + The text-anchor property is present on the containing 'text' element + in these cases, not on the contained child elements. + + + The third group from the top contains sub-tests to verify that + the interpreter correctly handles and applies the text-anchor + properties when present on "chunks", which are comprised of tspan elements + with absolute positioning, within the containing 'text' element. + + + The rendered picture should match the reference image, except for + possible variations in the text fonts and layout (per CSS2 rules). + + + The test also uses the 'rect' element, + as well as basic fill (solid primary colors), + stroke (black 1-pixel lines), font-family (Helvetica) + and font-size properties. + + + + + text-align-03-f + Test viewer basic capability to handle 'text-anchor' property. + + + + + + end. text w/ tref + + + Basic test of 'text-anchor' alignment property. + (The red line corresponds to the "initial current text position".) + Simple text. + + + + none + start + middle + end + + + + none... + start... + middle... + end... + + Tspan, tref, toap + + + + start. text w/ red tspan + middle. text w/ bold tspan + + + + + Text-anchor: end. Text on path + + + + + tspan... + tspan... + tref... + textPath... + + Changes in chunks. + + + + Begin with "end" align, and switch to middle in a tspan, and finish with start in another tspan. + + + + end... + middle... + start... + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-align-02-f + $Revision: 1.1 $ + Release 1.0 + + + + diff --git a/Tests/W3CTestSuite/images/text-align-03-f.svg b/Tests/W3CTestSuite/images/text-align-03-f.svg new file mode 100644 index 0000000..732e9d4 --- /dev/null +++ b/Tests/W3CTestSuite/images/text-align-03-f.svg @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test 'text-anchor' and the 'baseline-shift' properties (vertical). + + + The leftmost three lines test the three values for property 'text-anchor': start, middle and end. + + + The next three lines test property 'baseline-shift'. + The fourth line tests 'baseline-shift:7' (i.e., a length for 'baseline-shift'). + The red text should shift right by 7 pixels. + The fifth line tests 'baseline-shift:-70%' (i.e., a percentage for 'baseline-shift'). + The red text should shift left by 70% of the 'font-size'. + The sixth line tests the three keywords 'sub', 'super' and 'normal'. + You should see a subscript, superscript and return to normal. + + + + + text-align-03-f + Test 'text-anchor' and the 'baseline-shift' properties (vertical). + + + + + Test 'text-anchor' and the 'baseline-shift' properties (vertical). + text-anchor + baseline-shift + + + + + start + + + + middle + + + + end + + + + noneshift by 7none + noneshift by -70%none + nonesubsuperno shift + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-align-03-f + $Revision: 1.1 $ + Release 1.0 + + + + diff --git a/Tests/W3CTestSuite/images/text-altglyph-01-f.svg b/Tests/W3CTestSuite/images/text-altglyph-01-f.svg new file mode 100644 index 0000000..bf10d74 --- /dev/null +++ b/Tests/W3CTestSuite/images/text-altglyph-01-f.svg @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test 'altGlyph' facilities and many-to-many chars to glyphs. + + + Three text strings show: the word "HAPPY" in red, the word "SAD" in green + and the word "SASSY" in blue. + + + The "HAPPY" and "SAD" strings test the 'altGlyph' facility and + the ability to map multiple glyphs to a single character. + All characters except the "D" are bracketed by 'altGlyph' elements + to use two different glyphs to render each character. + For "HAPPY", the horizontal stroke through the center of the characters + is a smile stroke. + For "SAD", the horizontal stroke through the center of the characters + is a frown stroke. + + + The "SASSY" string tests a single glyph representing multiple characters + (a ligature). The SVG font in the test case contains an "SS" ligature + so that the "SS" in "SASSY" is rendered with a single glyph, where + the two parts of the "SS" are connected. + + + This test requires some support for SVG fonts. + + + + + text-altglyph-01-f + Test 'altGlyph' facilities and many-to-many chars to glyphs. + + + + + Test 'altGlyph' facilities and many-to-many chars to glyphs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +H +A +P +P +Y + + SAD + SASSY + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-altglyph-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/text-extTref-BE-18-targ.svg b/Tests/W3CTestSuite/images/text-extTref-BE-18-targ.svg new file mode 100644 index 0000000..31c7943 --- /dev/null +++ b/Tests/W3CTestSuite/images/text-extTref-BE-18-targ.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + +text-extTref-BE-18-targ + + +Auxiliary ('tref' target) file for test case text-extTref-BE-18. + + + + + + + + + Simple external referenced text. + + + + + + + + + + + + + + + Scalable Vector Graphics (SVG) Conformance Suite + text-extTref-BE-18-targ + Release 1.0 + $Revision: 1.1 $ + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/text-intro-01-f.svg b/Tests/W3CTestSuite/images/text-intro-01-f.svg new file mode 100644 index 0000000..f28b9ac --- /dev/null +++ b/Tests/W3CTestSuite/images/text-intro-01-f.svg @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test various aspects of internationalized text, including + left-to-right, right-to-left, top-to-bottom, and the + following properties: 'writing-mode', + 'glyph-orientation-vertical', 'glyph-orientation-horizontal', + 'direction' and 'unicode-bidi'. + + + Various text strings in various languages appear. The main + purpose of the test is to verify that the correct characters + appear and that they appear in the correct order and orientation. + In particular, ensure that the three lines with Hebrew are ordered + correctly (test of bidi algorithms and support of 'unicode-bidi' and + 'direction' properties). Also, ensure that the two lines of + vertical Japanese text have the proper orientation + (test of 'glyph-orientation-vertical' property). + + + This test requires installation of a system font that supports + the various international characters used in this test case. + Due to differences across systems regarding system fonts and + font handling, for some implementations editing of the test case + may be necessary to specify the correct system font. To + minimize system dependencies, a future version of this test + might include all necessary glyphs as an SVG font. + + + + + text-intro-01-f + Test various aspects of internationalized text, including left-to-right, right-to-left, top-to-bottom, and the following properties: 'writing-mode', 'glyph-orientation-vertical', 'glyph-orientation-horizontal', 'direction' and 'unicode-bidi'. + + + + + Test combinations of left-to-right, right-to-left, top-to-bottom text. + + Polish: Mogę jeść szkło, i mi nie szkodzi. + Russian: Я могу есть стекло, это мне не вредит. + Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα. + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + Yiddish: איך קען עסן גלאָז און עס טוט מיר נישט װײ. + + + Chinese:我能吞下玻璃而不伤身体。 + Japanese: 私はガラスを食べられます。それは私を傷つけません。 + + unicode-bidi:bidi-override. First, direction:ltr, then direction:rtl. + + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew + + This text "我能吞下玻璃而不伤身体。" is in ChineseJapanese: 私はガラスを食べられます。それは私を傷つけません。Japanese: 私はガラスを食べられます。それは私を傷つけません。 + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-intro-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/text-tref-01-f.svg b/Tests/W3CTestSuite/images/text-tref-01-f.svg new file mode 100644 index 0000000..a4acdd7 --- /dev/null +++ b/Tests/W3CTestSuite/images/text-tref-01-f.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test for viewer capability to handle the basics of the 'tref' element + and its attributes. Basic referencing is tested, as well as + the equivalence of 'tref' to 'tspan' in attributes handling. + There are five sub-tests. + + + The first box down from the top should contain green "Simple internal referenced text.", + which is obtained by a 'tref' element reference to a 'text' element in a 'defs' + section of this test file. + + + The second box from the top tests changing of visual properties + of 'tref' substrings. It should contain + the string "Change color within string.", blue except for the single + word "color" in red. Three 'tref' elements within the + 'text' element each point to a substring in the 'defs' section of + this test file -- the second 'tref' sets fill color to red and the + others set fill color to blue. + + + The third box from the top tests an x-coordinate list in a 'tref', + which individually places each character of the string "Char-by-char." + The string is in a single 'text' element in the 'defs' section. + + + The fourth box from the top tests that the x,y attributes of 'tref' behave + like those of 'tspan'. The string + "Bouncing up and down." is formed by four 'tref' elements pointing to 'text' + elements in the 'defs' section, and each 'tref' is individually + positioned by the x,y attributes. + + + The final sub-test actually involves the single-line test description at the very + top. It is written initially in blue, and then at the end is over-written in + black by a 'tref' pointing to the 'desc' element of the test. + + + The rendered picture should match the reference image, except that some color + "fuzziness" in the top line may result from anti-aliasing. + Also, variations are possible in the text fonts and layout (per CSS2 rules). + + + The test also uses the 'rect' element, + as well as basic fill (solid primary colors), + stroke (black 1-pixel lines), font-family (Helvetica) + and font-size properties. + + + + + text-tref-01-f + Basic test of 'tref' element and its attributes. + + + + + + Simple internal referenced text. + Change + color + within string. + Bouncing + up + and + down. + Char-by-char. + + + Basic test of 'tref' element and its attributes. + + + + + + 'tref', within file + + + + + + + + multiple 'tref' and property changes + + + + + + 'tref' with x-coordinate list + + + + + + + + + 'tref's with x/y attribute changes + + + + + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-tref-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/text-ws-01-f.svg b/Tests/W3CTestSuite/images/text-ws-01-f.svg new file mode 100644 index 0000000..277a3aa --- /dev/null +++ b/Tests/W3CTestSuite/images/text-ws-01-f.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Test for viewer correct handling of whitespace and the 'xml:space' attribute. + There are four sub-tests, two for xml:space value "default" and two for + value "preserve". In each test, the content of the 'text' element is written on + multiple lines. The first test of each pair has indented text with leading + space characters, tabs, etc. The second has no indentation, but a line break + before the content and after it. There are no space (or other whitespace) + characters at the ends of the lines. + + + The four test cases are self-descriptive. From the top; first, "default" value applied to + 3 lines of content with indents, space characters, tabs, etc; second, "default" applied to two lines content with no indent; third, "preserve" applied to essentially the same content as first; fourth, "preserve" applied to essentially the same content as second. + + + In each test, the test string is in blue and the reference + image is in black. + The rendered picture should approximately match the reference image, + however there is some question in the reference image concerning the + exact amount of space in the long-space areas. The third test uses the nbsp unicode character + to force the reference white spaces display, which provides an accurate match if the font in use + has the same metrics for that character and the default white space. + Also, variations are possible in the text fonts and layout (per CSS2 rules). + + + The test also uses the 'rect' element, + as well as basic fill (solid primary colors), + stroke (black 1-pixel lines), font-family (Helvetica) + and font-size properties. + + + + + text-ws-01-f + Test that viewer correctly handle whitespace and the "space" attribute. + + + + + Basic test of xml:space attribute & whitespace handling. + + + + WS example with indented lines. + WS example with indented lines. + + xml:space='default' + + + + +WS example +non-indented lines. + + WS examplenon-indented lines. + + xml:space='default' + + + + + WS example + with + indented lines. + + +                   WS example    with                   indented lines. + + + xml:space='preserve' + + + + WS example +non-indented lines. + + WS example non-indented lines. + + xml:space='preserve' + + + + + + + + + Scalable Vector Graphics (SVG) v1.1 Conformance Suite + + Copyright 2002 W3C. All Rights Reserved. + + text-ws-01-f + $Revision: 1.1 $ + Release 1.0 + + + diff --git a/Tests/W3CTestSuite/images/toc-sv.svg b/Tests/W3CTestSuite/images/toc-sv.svg new file mode 100644 index 0000000..ae97d52 --- /dev/null +++ b/Tests/W3CTestSuite/images/toc-sv.svg @@ -0,0 +1,114 @@ + + + + + + +SVG Conformance Tests -- TOC-SV + + + + + +26 December 2000 + +SVG Conformance Tests -- TOC (-SV) + + +Table of Contents + + +3. Rendering Model + + + +5. Structure + + + +6. Styling + + + +7. Coordinate Systems, Transformations, and Units + + + +8. Paths + + + +9. Basic Shapes + + + +10. Text + + + +11. Painting: Filling, Stroking, and Markers + + + +12. Color + + + +13. Gradients and Patterns + + + +14. Clipping, Masking, Compositing + + + +15. Filter Effects + + + +16. Interactivity + + + +17. Linking + + + +18. Scripting + + + +19. Animation + + + +20. Fonts + + + +21. Metadata + + + +23. Extensibility + + + +B. DOM + + + +F. Implementation requirements +G. Conformance requirements + + + diff --git a/Tests/W3CTestSuite/images/toc-svcmp.svg b/Tests/W3CTestSuite/images/toc-svcmp.svg new file mode 100644 index 0000000..69f89e4 --- /dev/null +++ b/Tests/W3CTestSuite/images/toc-svcmp.svg @@ -0,0 +1,114 @@ + + + + + + +SVG Conformance Tests -- TOC-SV + + + + + +26 December 2000 + +SVG Conformance Tests -- TOC (-SV) + + +Table of Contents + + +3. Rendering Model + + + +5. Structure + + + +6. Styling + + + +7. Coordinate Systems, Transformations, and Units + + + +8. Paths + + + +9. Basic Shapes + + + +10. Text + + + +11. Painting: Filling, Stroking, and Markers + + + +12. Color + + + +13. Gradients and Patterns + + + +14. Clipping, Masking, Compositing + + + +15. Filter Effects + + + +16. Interactivity + + + +17. Linking + + + +18. Scripting + + + +19. Animation + + + +20. Fonts + + + +21. Metadata + + + +23. Extensibility + + + +B. DOM + + + +F. Implementation requirements +G. Conformance requirements + + + diff --git a/Tests/W3CTestSuite/images/townsville.jpg b/Tests/W3CTestSuite/images/townsville.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3a4a19944d719e2d54218d4ecb505a0b9e07b06b GIT binary patch literal 52480 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 literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/uparrow.png b/Tests/W3CTestSuite/images/uparrow.png new file mode 100644 index 0000000000000000000000000000000000000000..6fe9f09660eb0b11abdce50d81daf3216487cac8 GIT binary patch literal 1232 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&v7|ftIx;Y9?5p`5I2p)SNcITw zWnidMWngG%W?=aFA4orAU?|mNV0abJz+g3MkXdE zW@cs<78X`kRyH;^c6N3S4h~LEPA)DkZfQQ86(wadB}82?p;^z`(MjEv08%&e@e z?Ck8EoSfX;+`PQJ{QUfaf`Y=r!lI(0;^N|xl9JNW(z3F$^78VEii*n0%BrfW>gwv6 znwr|$+Pb>B`uh5YhK9z*#-^sG=H}*>mX_Am*0#2`_V)IUj*iaG&aSSm?(XiMo}S*` z-oC!R{{H?66DCZYIC0XXNs}i}o-$?1)TvXaO`A4-`t%tyX3U&9bJna`vuDqqGiT1+ zxpU{un>T;{`~?dZEL^y7(V|6*7cXA2WXaN{OP4KMwtV^W6)RS(T)A@9s#U93uU@le z&DynV*R5N(e*O9l8#Zj*xN*~_O`A7w-m+!O)~#E&ZQHhe`}Q3>cI@1_bJwn2yLa#2 zvuDrVy?giV+qZxJ{sRXN96WgN(4j+z4<9~qgPoF(|_Wb$t7cXACeEIU# zt5>gIzkc)P&D*zc-@SYH{{8z8A3l8i`0>-HPoF=3{_^F^*RNl{ef#$P`}ZF|e*FCT z^VhFmzkmP!^XJdszkmPz`}hC<|3@2QYk^sSp(MyJ7|0#TfFbxhJFwhfaQ1X@45^rt z^n;&8S64wup+Vw+j)63gQqU0qQ44ewKvdKN1|TVLi-C!wlT*OK!>574DT#?iKuB2O a0K*EOfYiN@v*!VgWAJqKb6Mw<&;$VC-mx_R literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/png/__AJ_Digital_Camera.png b/Tests/W3CTestSuite/png/__AJ_Digital_Camera.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0855357ae74e7e2018db90c5425b1e3307e51e GIT binary patch literal 51190 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 XN|td4VqlL$LZYdvt5T|D`{@4wjqJVp literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/png/__issue-34-02.png b/Tests/W3CTestSuite/png/__issue-34-02.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6d7a433904f662b04ac7058b8766717fc16914 GIT binary patch literal 10300 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 PADpzff>?!!Vc>rO&+cQR literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/png/__issue-83-01.png b/Tests/W3CTestSuite/png/__issue-83-01.png new file mode 100644 index 0000000000000000000000000000000000000000..62dabc8498de2aaf6f78a31aacbf34c0f1384f1f GIT binary patch literal 5850 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 IE@u(`f8Akfg*5U9y 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

%_u-DtTWSYV zZ@E=}mFb(iGHJ + + + + + + + + + diff --git a/Tests/W3CTestSuite/images/image.png b/Tests/W3CTestSuite/images/image.png new file mode 100644 index 0000000000000000000000000000000000000000..01b5792472784e8aebe097b2442b06eeb0a99506 GIT binary patch literal 1884 zcmV-i2c!6jP)X0ssI3B1IAr00009a7bBm000XT z000XT0n*)m`~Uy|33NqRbVF}#ZDnqB004<9jRpV!2Kh-uK~#900qzD7`2Z^(2+f5} z>%xTqS1l04YBlSvasZG`HtVu_=bU-~NF)g8pknZuasak(H0Zo@-jiSev|1$5cTuij zKLB(b5a*p@VHO$ys7Wy9scE%6F#s(O2H~Jn?yPO;wt45agYU6}0FO~Lk~SIRlVhJv zIPtA@Z73oDbUh?{4-4j^cixs_;CfVB0So}gnPO=a2J5?T=Dc>}r*PJaSpdI!LX9sB z=&)(%y@ltofaaid0LXMV)O}ccBn@ivuH_U9S{Je zN+|ECf#{`h=$~l3V^41v766nr9Pgok>aU06gI0nZ6jA{U0KRWQzhz76rD*A`ZS;q6 z%w$ghDiR9Nm|nz!I*T+D-ji18wrA6aafgBe7f{phg?QWjgStcj=pQ(soeMbUo>* zZ_|!wbSN5jBo_ddRXUeA6pJz<-#BR^opb7_cJ8Kj>y>wtE+cRg9$W?!09Ggsu2M0QBNyqCap#|H?X7#= zlvnGnap|XU?VfVQZA;B}R{%O21o69chdC6FJs|9_Z0x>t=DBg{zkcbvf#I2D+KpTQ zSt}Flv1p=G9hyWJ@3U;_wrb|FZtJ;!>bQpDqjlbqVgP$WE8dz$`#Hx`gPogXyk-?yY|Sj#xRYTN=V~I^Bv_-IHC@f>_0PP3Wn2?Y4p0l3=`ULjcN& zQmRoGu~sJ4dqvQ6O3rdl&2vN7h)eCYfXIAPeJBqAz6~!ml5WOm zJKc>?>#={7L@8kq2>`xwL6|%kk1PxHs(iX*LfDmvlrzC&v0yr( zMJ#$84eY3Lq**c1h+E~IY3rkK*NJ6qAQN8|7yzqTIG{=~iZ>(Xs(0`9ssCXJ(eyY zqD3|7pm^h@ee|=1+lW@VQ!C44M`HsDRRa$IqgptoKPQM95a*k1>Zf+(pJ(o>ZRV(M z?x=LjbWzQCSOAb!EwfiCfD{hxqHgP@Y2Te)?Xq(2r*i6vYuaE|!cRc}D;Nk!AqUT# zVehwYv1%%ZI1GL#5|=?9&4EYnvu*3SZ0Wde=eTd?ws7aUcImu+=)8jJyM*SgdEuRG z-IQeAkYL=8U;r-@4Qn?dy?;jVvS-?wPq1Prkv9&eP$KTAYU{CS>9l6)v~20KZ|Jmi z<+OR{wSMWhgy^+}=dpt3s(k9FdgYvM;Ff6sDhvX8KPbX@LCSzP+m}qhbUcnO48v|j z@vw2`s%Gk~Z}ho<^Sg)ezKZe1knX{a>9~dKw}j=beBq^a>#Ka>pK-TrLjXP+1G08Q z$9F!ZO%t?TCBbSnwOl9hoMz8@N55b;t3@Q5F%+XbBAqxDtxO=zc}VQ5cJH`>-kfRG zi(9;IM3O)qf-nsLb3q}@hf=m-Beq~Av|B2iJ`~JwLC$wX@1Jh)p?2+^bnl#V=#yyO zhEm~+OyiYS?XYy}vVPc=YOY^Chd3i{7zv_KI{=1ED8P3^x??P?RVj-u3Y0Mo#%@RQ zrFiL@YTAZe!NPmlxwG2 zK5-%xY$zsUA0T5E2mp*rGNx29qC_E|MJ$6V9d{lO>ZE__uYB&ZeD=A6@34LAsB-M3 zZRwzB>7QokpKa!uaodV&sa8O9A{b>IA6pL;dnzLUjZ8J6PcWrQE0#SbY!C&OMKABB zf9I%o>#cd}rFG|?Z{wO~<(y>hsB!3|aOtLe_pOiHf@`)`M~EpWX%rh%0}x&Y3jlmU zD4tI-qed=?BNTHF38zs$@T7z2qkHG1dE=mV=c0M7aGzr+n_Rh3lnp z*osf%mtFI$bL^vS@1ShjhFHUEN~updjy5NTGA4#JCIC+*37S_hw_rA>L>{I{=2_8K1B-#A; z-FmlbKkaUJ^{2b5tABM@pFVZ1e2^XhhgJ7`bJ{nhifsToZf$?v4|&1ovAB3t)HJko9GqO-JiOu(l2RaP85LDEbq!4|Z4*;7 zu(^e$6~xKe#nlb!9uOE591Fs+zG(0joHa;;qwY0ply0*TtiP}FnJUTu({d#tOdw2iv`1Jh!$It)a0s_$g7uNqK z`+sne{^LT!z(B{q{vR$NTFAeFPKtraB7#MxWQ6VDN6so5gF~U5QQkI)%O+<0jndJ7 z5s!*pe4pd?f6)Flw8 zkxKLr-p7(6)?}MQc}$}@vhF^T;RlMvV2R7TXRdV$E)ZK?RgbJ!T9*Rpz*9ZBdROlc z5d*e#p6=~2+zZ1mv+R<0S`^Nk8u+@W;S-~`UP-y*v+<5L-#iMJyHZtDvZRCySmnIV zzOTXUSft341Xs#c7S{f>xq1YYYmZXIFqtK&=ByzK=WL#3)zVc2!e&erQl`}zR?tPg-`XK;>(L*RYDhOp1 z+TJT4$M72k19(6;2DMj#KB3m8Is%rMkF)uaa*`#JGHQ3kiD}i!QEohR-92mIp{9}to$+jzCTPs>p?)QX zInVdP1Vr%mWki<&M!3~xdE}qa2}rS7&>%zLl_uVp`c@AYWmDyJfP4cAWffWB%8>Ji z)Uv&LxtECdFW{|2a$rQ?RG0&YzK)=;hIZ{)YiU(@cXI7n9YznVOxqVAe=eTlLwL96 zCiNW{RlTTFi!jMSX*`2#FF9tP*GUsbWp5BF@lw& z$AKQF2ixb(1;A1jz_gT-etORH;;gyH*(Hf+&rO&wg(MJCB)yEXs}rv`KUrGi|94T+ z(QRlYDqC%CxQ#VQQ~$QfZO2-TumPm3AAZtdacec$jj+o76niS(IXF&1K2NC*Nu?ly z`W4!9Le;pfY>YQB!Q$}krK{>oc{kty+^DlOd)34QkDr>hhYOYGC1-rAi~rv7b(R<; z;h=H#Sjp0>hk-7@ZeTZWb4_EJvn3HX34CnKgK2E=qHNw?}TN*ImiirC2y#^m8;Hv3VX)xezuoNC$WjG5_3?a zyyU^U_R@dT1&b=Lzt6wSaog1GX&n#gOmN7?ZhcgEH20j-F+TRUeM{LtKE+% zym05ShdKOOAxyK%qnXxXj_gG8gDS z^c~&ajW{;f{%|jjbiWJ(xWv_STZh_dDGuThb9Q@+oQ%|i&>FVVcE%B6lXY7s9~3HK z&U7L#wuQ%$2E;~YMxSiV@}>Psvlqndh#wt`LorITH+r@432Wr*5!UYh3e3xp_a8Hw z4uR_oF)M58<&ExO-{vCL_A>Niw%VWTme2wpnqr22r_lEsw(e~9KPuqpk8&#=>Rs)k zO@9HQN%MEEv5}Zi_u%f_RO(GZ)$+G|#Tgd2;wdBuqltss9RqQ5wUB)*v4=XAvpyfQ z9?`)QA;EsYLu0fkusN67(re|L*-yGtE(NodT6KUob{F1JhsN+X_UAjkX5aW)iQwIR za;3h+&~G6S-;1?20oMqR7;y~@qR6w^An}-K1*wuz4c%q@uL@dCQSArG4ho^3H&3-@ zX_*Xl_{A8`sRaj;|2=c!1%!mmJ!-JKG#cHwhJJW9cMl}>>lZ7zq3|{DAmBd1md~0GZ^o+*kp%3|E z%f0C0Z&CRJe<+w=^wODb+k!>%AkiXgm4GJ^jLtfVb0bx(|x;ydG!Z%Hk*7(_7@Y{V3?= zsI7jDgLn_x3C=y4#(i(SxlA$nyh{&Bt;I^Y!?tNd{wx=3l{wYgBnHcRO_RdG(60ae zl<>&w-o_xRW%rTl;IMZ>OYd=!zzuE&A+$u70Ko*tJn6v!aW%}*;me-nBfmKcS4y!4 z+HKMOKkK`YSeu)6>F8@5*`=IBr3!@*eS1+}gwHyJv+BDxcaHr5?qEK77frFaAxd^ z|5(jK$SL-Ckn0(CP0lI&#yDaDO=@<$Nm|iJ6IA81`?~CKH$Q=0%--bF%n}JnVr`z2 z)9X#HItd4&H4FxHR5VXJC5LrwjSzZag#ES`uYc&ynPTdc_Bk?>EzurC0i-SCxzfgp zqAQ>PDke=yZl4r%#^Tm7M(>$giUXbX)!Zz;KCRP9oKy}MYmtW%<%oL~lR=Y;U!C=INTFyr)u7TF3b{S zP9X6JY8lTG;ioZ|Snk8TaIc4x%2ai+3xkO>B{m($Y=5W-nEwC)&7o5)kd|8zSGm!& z!H~Y1we0IoKR31>NLUidoSvt&bIW;SyVVax4LV*m74B@YPx-yLCG*oyT-<#at?|wo z2d*PEsx}QGgD5L>j>oRz=DWg~QY)>`NZOTkIvDcU3Q6q7yx|gm0bG~QxD=X|_$&-* zLp=iaxg@W*67$~~!OaSJGB=FWDE?Or*y~LWJt}N1p(^)FNINSm5hgJ$NpYMmC6bo# zChhVwGj$$#Zm5IP;VIV*O4K+M2UzN?bv0^C)U23Tr(Qy9Cn$3o>}^zGqP|*9M$vtZ z9*JaMCWgy~V0E%=yxMonpSYYv4&(0WknH|4-NSLP(y-T?#fZ3LN{&|Pld`YfiOPDl zn;TjTb9Ow4CB;26p8pcIIpDoUV|-2PbTolzw9<}fhwBn?m0JRsS`4%oJ61A{A)oOn1{|snRT2JrD+-b^s_KGLbW8gy_T7QDM$V(0ezs(A-F>m>+nRFhB3iu+#`(l!=x`n zuCiH%ZpieJ%zXr+l+&u(P#S&EX!Ui{8@t#FjLi&zRXj;$sOyG^I)#^Z;iYPAsB;x@ zwY^v?f+H*K3$02pGS$dPWvige7zn@;TG{}N(isg%TU54Ku5_A1=3 z_>C%d3aKsRR8`NQrTlZoM%zRXpL8Q<+C)!OQ7+o(iQR&cNHQyN7OdoBKhia-Mk() z*-LD%C>1v%ewy=gnVck~d0|{_$ zQPAFRp3Mm>*3sRr8kCK83f39P>mrTt+3tuhWaq)%nWF0Y2Sg&#SRSCUcAa+7CC$*o zCc&)~*&O2~CEoug_VyEA3GtHU%*sb-N7DV24K8usEgD3}rX6)T?a~Pdl0Qo37)j-; zxY`|OPis7cydfk+#Mj&g1XHBAIgdw!-p#G~$Olr8%<&2C(-{Pwe-uD0M4--nWI zCSEy*9;Z|3IX7wI`S2d1k`OSNc-oEvUU^^dwRl)RF|kBDUXoA zc3si>GOwCVyHuAz7uzPZCri0xPtz|HRZG?o$7ih$#a=4m1Qp#94|K8 zarQ&bzBH1Q2u4-qWeqw_f+D3OaKckxg#D8I(l}jMnCY1Q_4YbT^`=I%hr8f$5Sfb> zyTF{xA!m7phqpzFc{jJz41N$TqkO%acjd=E&59h_qD&c}mQ=!J%`E{~CUW;zNYV#k z`_Y%AYwZ$|>`=P6t)`_J#fc0M+s3aY(q-ie>1s85ZD0KWGp`#j=RUWL)vD9$w7I?p z>#YVh=7hMgxXkTkG2eG*K%8;RbbI2l99Z8XXA6{d+K2bj6om1>S>2n7`blF3maa57 zz()EvjvR$Q)_FFw_h^C1J7&)P46<#;jToD%Bvaj5tBPVc+Lk)>)4N+8Xp8SQFDx(W z=P`;lKMpR`)o3*Ag#AhvoT0Rs*EQ}?3S`xsqQ;JUZqU%d|6ScgYMPw5&2-Y9UNZhh zTEY<*LrnF2V;I4k!MRqBoEA9lUlA3YFqpm3NLDVwVZ`ziOP0uU7a?QO%Ob*7 zmNo5`XiaYu1zwowkzpG*t=CGBY|-*SftsG}x%BaylxbUi+5X+AR?JT4N*3 zwDu6Tj-ZE^c1PcFTC9|m>=S_|m(TYKb3hSzy8BpB<&I5usatdpaaVS!Uf`lKTUz)S z$&3`G5vqCz1AHO=)-w`6*hr_y=x$>ul88R#xYuF?oZ&mbKqXO0LDbX1jrVj!%wPKH z5lm=|`uTOsGSLNNuQWbK9U3@A6?| z24vep#fw(;|3s3uUzKN;=6ODKuO`D-69k4@p4Ft-XzSZKCUXV^*yMU$94+(L#xjB+ zSPg)FU6dEgyq(|pg{4sJHj_NmC>wZX#i^G%g4i;>wc<>ng|W9b>vJB4Y)-tpH2eL#CZ&TSi=!p0GwSE0 zVJ=kP*De8V7ue>tx+U`ZJYp6d^XQqI=YCe*Kd&CUvwsGv zi;y3Y_nZJ8Y3r#av#fMjKkC+39m>}wXZDS`>(}1(&!#f1&+3-`KBr$Y2J0Sq&mU`M zP5QV2z2eFkXN@52dECjlAuNjL?$FVDn|1Oe{lZuQ!6=!N?>Jw zG+OK7OS{!?qd+!Rs*{Zkro;_UnzKrI$|<~$tV#?S%+>f2`YUej-2pKbKMzNDG5-8t zfV|&b%kpkL^ofr!&YgO;oB1;Lim7+9D%Y&2`c`CH6+`~ zFk&p=XNRUx5{P72ihL^HZ?^q-5xFrSkLiKZ?f3*?Tc>onss}GDpFfJv zKsucn#H+Yp&Xw6bo)p8KaxC9-?Ue1f+jJ$dVxmX$z96wy?S}g6&`xf|Nd#{Iu&y7m z>U@4zJ9epy>>Wv!)i^`w@*+q>l`*hR)O}qXfwV_>XA{k6YbS?_YwW2ck_V*!&58Ey z!OrDWYB`ztbKi0^ zT(^B#N?AC-FczIeOK9c#!uCzw0lm+6T`!lOq6Ssm$#^1lf!1&%o zG!q&#Uvl`cPW17KcnAB6H-D#3{>oJ1LsU0-^XVhp*3`rrI>U~Htdt2W5!|4MlO}Sn z52RzkrSXN;=a9&zGex4IQemE9w=uv$KDqDD6(0telF4{KHQMst?OFyx@#)MgXUFeD zZOxB?$a6`2`ohxYo^Zu3Zv6Mrk!`yjt{+Q7RsA(*0O;7L3WQQul3o8SUc#TR|DD-% zCW^THJG**=qc+w7yGW|eW?T4PUrm@xCuaRO4VwUsj4SQKV`og2ckTsts=7R&24y@I zB3YAO%UtmfwfhJYKepCDHmLMueY(x81AZ0IhJ5kIDDP;OpRU6kPqhx1>d<=Sw4{Wc zl&}b3H&mTsk{ZaaEa}pjo|KBO|}XT zSlyc*^icPyQnQBjdb<+TTr?aW`(L_T^y|0GPpoY|q@8Cr;8KAx5PY zsSC>;vOF3EYh{Xvrt_UglkVib*QrK zcxMf1N(1X#-SC|3;9F}9UnQ^Mnx!TQM>?1BWPzp@2k5>-pYM!}OPhDo5yB1KhSp&M z)%WiXF*{nbijZ$cn>eRTx`BBWXWEEo_SvXnAF3r5EPjt0=~eQuw~&oI6IlocOBP{- zn2Q-iN~0RGN}D5jOLlHh?>HqCi~V-%e`IQ-VX>H=#%ZN^rCw>@cG+^eG4r-54@-k2 z=0>8qZ%m>Zk}LJ`ne?Icl8?yg$XQBoPWm44t2b`da{0_e)v#c;f@gv8fx0r=+K~_m zyl=ci-^z@oRG&^UR-UPhc5A;3Bi=5RM?1F}oo8-qxT)e#vK7+E!@xIwNSmppqgdhU z#_cVE$M@${ccPk={J?7u5pTwW(3(l+Kc-5)PhZ}H6^z)#X#?C9_zGB(D|!nD}TUub8L@h zyD`bm(RFWt1hO)8u*v1Fi(^LLmodEMFTkovlDr}GYhWq!VpJEaMtsFw0iZ{nDY4gM z7TwsokIve1XC(?p@TJVvi&2zvqpJQ4J81vS&ALR$FUQ43)QPmQDz+Q%=5%-@l!kM0 z^7|{r%!A1rwV|rPsT$fbnK-bZ226ab=k6qCKda>E+e?KNkfC4 zzW}?oAp9LmBy9Khj)g0RE8!pUl4nA4zEMAR|NddG`#5sAsi^MK97j$H`C9WZa#HTq z*VCE&V$6A~okcn3Jm6nIr<2>UF?Kc~-!nc#RgrD7Qp{GN%PuZ+I$znXLNaI8@l5(y zt9Yq}vs~%n%Z$cp%_T?G`>^1>|Mr5!1ymeC1(wtZKP}KS5Az{Yj^GBFy0wdo+8$N; zi*F4&Xqb8nIH)68)cOfQD|a$k2Q`>*O}W=$5LMUFbSnCS?6M2$@D5w7;D^1{ zn)^%Xbik^KieW3@L8WUQ=tkQpcnM1_c38S*sA@t!!uSeLo=-=$ySp?bBKj{tXiC;_ z=Pkv|e`F&+m#tBa=dD{-=RTN~k^?d#bA)C`s{%$s>bz2*I^ei=k}vcJTFkYkmM1wX z<8T}6G6Nx9JINkRkKX?>q#q3@Z+g$9N-f8C_)Kp{n=ZyZ=nb_Z$^kyJXFw~dZRB@F?}i?7_W5HU@J`Z_gm{zeeyS-EFjKa4;MzbB_S1kt-K+HiDgdt)Lf_X~8O)$U^bYn~(LamJXV#G|GL2(ZYtTT6Y?_4hg^&6B`+ehb})1!7O%Y+vKy;)mEn!Y z!d-l4;4W~KiPE@x=QF!u0_jWj+~pCN)-@m^5;3Y|-0Nu(f25pkcu97i+fhL0QtUOh zeq}OwaMr?Vwj#d4X}Dv0hrRIJ_*+OX;;TzvW>9xeQsncCh%+n6U7C;mJz)aP<-RZ6 z|ND5jvJCa6_8gJYBdUCA64pU$;ik{z_4%$Dq$UdbD0{TmcJbXTRYmpl5{3K*yppjz z{Zzt4B!>2vjI>Fyl*(h>b_8Wj|A!A7f;U{fc>eX*7U+80*al-QcH-~jx2_u5qGK{y zzeW+Qssulwm!CF?5GCIW0uP#m38c?pP2w+HNi^BDq zX~qDh^gyF`NCme;b6I`se&!#VG)GIViTe|id&cB3210{FS%pp|>Y>%9S_10<#70)W zb*yz;%mBK6pT4(KpxU-h9X|m}B}0u~B6CU^VR5Qtw3Cbk%__%4)|d>(=#R^@6!{ZX zHn2KDybRc+85WUz)+5(y zvz=jcKrU36MTa(Z2GvK_)BcdK8^D zxDOZE%h&(i@VyD03$;2UACZBkt2)_>Op^{an==?ki!B7GnDc0lJ9w~5iM91)yh7(< ztRK?y37*6mZnS}yirM(98-So!|$8N!C~SOamIHabdoU(9o> z7nzQ`Qkk-xlL@8>cUAwo(hLVu<5788-Zh>gRA4p zJVfegOoY{yBivl#V5B3@2=;Tx%(>5Cx9krV&G^E*Gn48uleQ9vI-3o5;t+Q#$;e@v ziNX3~lx4y8br?+>=thyjP{A1IoM&V1sEWt&?eb%_+-ovfQ?(7Uk-MeIrqR=ja5i&M zNvAI_3*kRsf1f&gXX9>+6=K8N0)TYCqziN<_e`f`t7W6K`(xhs{+AL8;k!))th@I1 zmXOyvEh3bIiFMjD;6;>EW!`C0DNzFl8D&i#q6p{ToI7W;YQ8b*@l)t~sQ9Ax`JJxy zCA!a?uOcs|8&qby(D=`zPBfC*NBUI!J#p=3AdV10o9YRQ8w5Rq*L!2PH6~MxisxR4 zhv3qpIFgR7zj~CfzSj47NZvD|P&XY9K9oyq7PC33nBsz4(B|O9Ua&B_xexbGc&m)J zib6u9t1CJYwMjG9)tHv=`=HVHW)>9*x&)5(jq9=tRYhnI%tn2zwMR!JN`te?Ke(D~ zRl^tyK6zid<5GkTaGyh8wN-)hgsjGN-7&2#mk0zEJbkgPVC!r&SLRfkT3;6Xp>$12 zZ&tL97VehLs03z1h=rN$J+1mp`uE8@8WMd!9@IkOU56caY_ zqZ)innion2j<$_E#8!G8JQK|Sbet7IuAYKbCkBAxW5ZLAXvL5q7C{{I3Bs-nxv*f; zr@o(NHJ9&M^7i#wGrFJ$>tDc2FJ>l1+BzlH{^{%^Cfrf5V>3N^##*D+J&(!4DwxAs z;UirYgtaQU^LAkY$cgkO$1tJTTP2yO2BEM8^#PA{-j0P!YKYJh+GsZ4F{u6f+@U+Z z+F0tOBW#;kVr*Fdfu2`aLy8MdQbvu#oPkZDv$alv)2&t<{HM`U@rxrq1hEwkt89Ke zAaeu=y9$g5;vM(pR3KjKJ^^)kxSiG^0GD_Z+&MF;xeuO}vDYiJU3Z%H@WT3R|*r z8?ecbO8@iaH44vx%5>O7!WeqWxWo@Xf$!N*mr;o<4&a?R$wke9jCB|{Ezr2RlKto& z%qVrgu@dpd^RTde56965%!(`#VWzqsuN&`jvx44{F{zU-#4fMYI17)4DVhHr}DC~lBP|K2=o zPhJGFq<486$FWR?P6PwJC^7k-%+V>CYsl~5bRXi3CD|o0 z?}|BYt!cR0POoMCO)%a0u&F#b?z&hvSPu>X3hjE|lMiT{^se*hhe? zELh_-%V~;zdCR$GPIDz9|Lo%rvet2nq>pO-vmQ$7F=-eX%K-1+1b&9bR|h{l)k(3D z7#>@=WHQ1|Xtrb*gcVl#{WQ|i;6%m7?WXC~IF&|s6=t>#aZ7E2eV@}2+u-e{t^f;v z*ZKK?$#POw*`y;dk@=B45pVo{d_n|i;ilslN)3{O|D~<5DB(v&@*f5>wfq$@U#8|s zVHqCdxc%Fo#h-c;_)z0b3t;lo zJon{Ef^#ZO?yV-f_U5ZFtdmVLu;Das;%~uHf_FRnW;x&bog(?|U13TSWiPY=fuCP5 zF=J!=Mkz{>MV`AkLM=@p{Jz{YtT&MxL(4m`Xuv^pSBm=b*3<<)>$S;B&r(hYzS~=SSL6zmqzV~T&cN#ZPTe&PZcLf$JoDL`Gv>xl`XUGn6?$nNTnUm z10dgCg}dr!hY;b^x|#;_xr_Wcwq|HRe+MyfYaI{pWy?@Ohr@!VXa$ba&`(mBf5B3Q z?!?^Nm~SS_j5TzG5(SWc>@RwG`+n{GzCaX0U;ilYWht?V{nK^kLRl&bpQ#_lsB3oq zNEf>|Nib*F!#m9UtME;=s0QzC;vsXy+CPt_91G={b-(fn4@uNCPLce}j}hkbqVgq2 zPg#)H20a^ym5lBsurzyW%pWS&Iya^B@a{^YEXTBLJLQUq2x6pR`7viI3!;I!%N(`81z*uMO?uXVFD< z3{q^&4QqcpDJtW${W8yxiBOr0re=!m6NoTse>b9hubZr_4qz8tWFz|iPxj`mTCzFM z^Ak8eYR|K;jBq0OiI=$_So>m1tv6U5b(InK(0IxgF23^U*&@C$|49>K4Fw7e{#qI7 z+xgRLA09XBrUP+^@Zf*{x}7~k@C0VJ7Y;Tu{7S^5R?XXb6i%L-cEfkOC0<4zTiFCg zMZBSOl%&U=%`&wY^jk63yy`f%-L1%b6OPDUb6dp6;+Wi5L)U5>j+qjsnbSPHFY^cf z=V81x+Oq&1n{Dzsg2$HSjJ?F0fbRp&p%e#;9Gy)s=CGNI@wPexLqC}tMQgFIDTkps za`Ceo;%==q>`cIq?ZKvBr7zT)r;OWr@O(wg55ZfOKO^48NMBhcVa+$`$gs5${a5T# zWk_gbXmwl}!uz(I5$e<F^`m%i3q5)N@ z@VxpU&}SG5nKc7t0!&ZcW-Zfksb2pDkPI;8=r3G#ZZ1T-=f0KO+0a~8<{hoXU#XE;OGnYIi!*Ki;@j1ihCC;~H6R250iYboSjUlBP zmA1It%Ic9G3!OFa@*%jp$~B?AG|*06bxa=%WsScn8^JK{Kmg>HeT9jefJD$F<$#r? z8a6+Qa-LsrwRIf{N&`j(6&Z?+iXZ9(kRB2FE*48F^ogiL-ZvF7L@|yY!BOHq*g%oV z>QjMrSmqu0!^hm?Lxg1dsi#NuOFTG_9Fd;vSJ4$&f#~;zKyhy*Wx!&;J1z?eC0x6m zv2W^W-ra$)lkEsN$77~0T#<7rQCp8&1Lr|!C^UPO2a@1-<8ZdPn;DLFBX?3)7M1iv z5K7a}3>BBpDP8kviAOAxh6(Hl_t_xmiU`wkRo4yQw=iQ!zswO*YEoNna_U`?u4iI4D9D-|B8Hw;)}mb9Wfk8k8ffj>O{RY5 zR6aJi%$Q2)!tT6M#qs7Y^2W}szK#FBPeur7fb$oi)NA94M-)ZZB4qkR={-ONJ92Gw zDZ8)+9A1vx(PT?l58sB_vBSut&GMrX^f!MIh@wBUS8rXWj8V0dCS=6?r#UKEE`az= z4S<_=|K`CNWZO-jX8cIVKi4+)F&7ezX*svEc(lvjEA@tTg&jpr<_RFazWvRoqu=>% zRCH>gVo=~C9(?16<$L1gmpK{-DXC1?-)F1Y6I~pgv(i%^uo}Os*mW*qj+h%wCg)4# zSAqt9Q(C6dw!tB`fj^))U0x5K1DQLPO@*c zMvDERT>3Ka;U_xlcCf7({lf_o(px!G6euleNoqJv&v{+I2<>amb!)o0l>5%a} zXT+px)G39ZSm4D>b@6oXvA?_`2&#1MHDa>u0<+&a$S}z66?0-O%`k zA5`0x0dNMYg~Ob}UeRyodJ+&pn?67dW&IwJ-UCNRkDSJEUm2KT!QyMudtc4x`V%j8WF4XC_71vncHVlo+sTfq|o+rrk5fTK#v@wMccmVB(=Jt5VNZq~mp#!eZN}iuV}I z!x=WSNlZSu+hT%h?$$euMHYL{<%LSQ9B*f&kC;Y+t5c*ooC*0D`*E+ptSn>hfhNZ8 zr3oUgaxAgBzLDn^S7_-oI#P8Kt{8=(42H6Bbbx7+x|;eWrcwx>TFtaD=+OOiExo9n z`^#>DOBh62Ro3t?Kqe9QxJW=OSH3^N%;9)Tx&J9wLg177_HR9N6()~%#{s?0+j#@; z$9GfuXB*_^9L(-`5uzEemY^<|35J}LLRM8-AO%ofoNv3qY7>nL8 z<5|G0Cbsxm8W;1TFJNU@XE*(!3=)HpW*7jj$?-YvLhP^M4C38EKp1!K`AEVGJ)Fh0 ztIl86`%LeGo|0k-GGfIZ8Ql@kkHG^qz7&qd`RUZ-+TOsEEZQ0&?IJi3a8PB}2`lQW zfn%~4JI3JrpybCWBmB~&Odp~x#*D!;=0@wd|KDJ7z=hEvTDmtEf4DENMQ}&`#2cIc zMvO7kJ7^|suGrcn9C-#aoL+>5AFg#V-Rr*Zi`H{$9gBnhdsqIx>g8xFs!4-h$k8Y7l^Ve*Kn`Ix7 zqM8lrz8Ih@1^C~wF{FkFgUmJ(kHf9Zz}~yz+W=RxEQ5eyv{b z|NEFSO4mjoJF<#+s_aTtTM8;PzHRUKeOYj9M@8!$f z)Z7=r{ji6BmPM7%=|K{wf23Djij04ubqIXa#^?USDR*xdKMZOSzC~yxHv`Aj{+JmD zs|S*0H_q7iMNnD^jqizK{ z$(V^+Ynh++%+oYAa);OY86WG!UlLmDg|Tk$XvR(Bk6mNmG3o`X?JxziQspKHkzIf# zty()I*|z~zx>bOHbJ-QIKrKxcyroR*QZ;`oM7bogPA`HRZz&_;A{q-ou@y0o)LGkv|}sd za9xK~`++S(;7pk2ZY7{s`No-&NRvE2O-6qa<8iTy94$-3M_`-TkO&R0-xe|<&wROo@vlEUz&?hYRN?D0JEjh#K_8Il zs49Iu1p|I5?6hz|(z|`M^t8MS6JEIY;CM6l)(K;IgsXUTvN}(|EQo-CX$2yFO+~?Q zxD=Z&yHcF7ltZ1BH5&Md@!Ml_oy$7;)OU>Uzz#ACo5pWG}cLDK2Fz3m3&Z`|~`XNyn+xkFZ{9 zZ}ffJCIMw`U?tN8dAyn#hmeJXUm->$0zA?u{&2=6tdhabTNniOURl)4<*a}|ZfE@jQ8DlDz=xdl$b z9F3c}3~|Sg)hsJwnC!l9SFQe*D(d|)7Vuw#f=cRV?Y`=spEgV<9kRw7nS)aNi;oiy z#-8{5IBX!`r{3C!Z)(de1_gQd4Z&yml0VTpugwsH)~~t$)D!wCNGu@3^qV~Kd0u=n zP{g*n^wJOf6>vfK7r?6pi71gjNL{sDsdW^^G%=TE<6<;AQWt|Gvd3iAEe>JlT`zF9 zEjDP&LNe7R1J7}uYQ9^o53h@=F)S8zVPRzFGnS=!zbjEr*j#E8U@M57vviK0#AqO> zIrfj|gDkAhlaTX&)3nBkR!`mlp4rx97P(>IFrrB=XEU~57L}@Lu_rM6ir_3%bn$*(2C?w z%S;E0UhpUI{4Ceiq~w=Xhgc-XT2ufFEfK;Q2&3L7(`) z0F;j$qvTLaSN|ksME=#k+9@6CfP($}f~w<~Q_ypB$a5TXxiJw@gt@7Zc&LO+XHP-A z-(oesI3iAy zh1yY<30itcBA790u)cq?^_X}3gbNmFzH#*X63=uO9>M@K=N0x3Rvp>%4W)Qn9ANZ# zq1?TE&MRNO@hvy?ruOE5?WML+^rwTO&&A=t35|4od6l`giuCeg)WZSCgg7RQ$x(h8%%ZSir-VmqEs9O zU?r-J@EnYPRap>-`;wdh`x1j{zt{y>Be6xm$R&3F9Yeho^IC8X|6hPdsyD=9lRUw$ z^dW{Kmow89O|EScy{z_dtHTc?R@UT(y-<{<{fg}dXgKcoA``ppH`HcvXzFXAy+p7A zUPuBR+B^QZnVlP(oUYD4CM5;5d+V?EreE#Qms!+eVuic@i{-qXPOFIKj;h!vJxh-J zC(E&7^_o1NDEB_`Nelz=Mk;aRnekT2@$V+!cgCy8(t~dqoCmF0L-22a2HO$DT6(lP z&IGa|gGG(Pl>%U7Mz{g}uh#Gb!8K^lNbN0T&gly5Y0wH?Ay1f{sRtb^){x-*% zW-hqK2O03MltkHOw6lrUMa1hI`?GsFr11-Mk*0;-y-IE6^KCfZMQ6V{{V$6WYoaNl zrLcz8;<;Oq&c6V%stAEcDYbMsl^kRPk(1nv8Vm}OY^v0aAKS7KVmQp?L*9blxhj-= zvdHt-L|PCqoUZjYsp#}BS9zNqzA7T=_A8D4we*2=eZ}wNr~X{YUYCqjG&Jk3pm4#Y zPp{|0lSP{snKY&+CP6o-UN>*{gyH6^y})_xwG}zFhyWzAUHWb45dwGA7%S-hyNODv z3ftKt7S~G_=NIYBX0_tI{6>z;Wr>?Ke{OT$ct*T<)#N7=mC_~4E}}_wtVjdJoqO{s zhw?7~CZRKFn*2IJC7t!~FQ7$j)WypKV!FKl!P*j-MCnq*Hp8}je`6Ev@!^CFqX2Gy z?e~GWN(f5`qeu=*?FSB4)>;eId~<>p&vQ>_D-P#HcYSLFfSHxDy^m08hP`6*Tv~w9i60?GIcmU`D}S^wf>SCZe5`wc zT2gq1NvR-4UfEpOx~0@x3k-q|Mk=jpYnq$t6GojPjAciDYcjEv zu6lTST(P?nj8RKcbcu=x&t7S0pe&fpf|PF^2;^fZ{< z{J-H$QdNUvIHyR#NT2OJG^pun)(KRW?YRsABERm@^Ai$<>&umg;k^$|~mmC5+^sVD7 zqsFUA!d7Br_RSkyqdFrv2bLUxS{gQ)4xnaPor44NfN@>0a2MEAtG98qlCb#^NXYr07|A@>S)|%eFNZgQB1(Ym8**B?y)w*R++sJ~ z<#O5duDd|hHrtC^lqs=@R_%=On!8+-+8bf0$!Qk*mtzvIDUX;Me~2_#wRx_DuZnJN1YjBqg-@Bdic**=JIO}qh z?yN-$?T!fN%10xBG1L!Q?X>T*3sp-dMv6SI%6cC8_pW9E6HHV~9E|U@4E@vC0akPc zxYK+=d8b^kD>4b=$4^84eX65oh?UNkSfiRYj#O7h7-eCQe+s5FZ8=#=*+jc~1zZ96 zbgc@*)jUgWrfLgl@kt|W+{HhK&{HK}p{sLo9jr!44glyqYY)$s{&=njnn6D-2zLG? z)-l#@^^3^Nk%(YdI6?eN?^hD@>{mi&V4*?6`ih=w8b&8V*Dq;q^Ih!&AS$OP{{XIP z7@@kqk)HE(P=*F5)Zm|UQP^U2g7Wfpk)=PlOkgg5nXQ_;rigCLYAT|IRR9jciggr; zJiWTp<2VD_nAE6iKBsEf(3c`@-8Ukd)`JZkdw}F(x%=B|smw+Rc7UTlN-VXRtfcZU zBRe{VJwT$v=k9ek_7<0xinGVKh2s^@YC2w{qOiKQxjsNl#sI?)YUz^V8J0G;kUFxA zfO;By`o@_Z%39pA859mmuaXoc9+usZ6TBf5rERSn2 zI59>7kFGuatC!UD*U_h%&P63u<|zpK;L&N~9ZuI#d)AdMC2k0HYB~=vE`f7 z7w*a05pmY0Z6%?#2=h%Mg%nX-$FdYrMF140kW$bz6qK}-08vF008vF008&!XK!l=} ziUPu7flEN31f>)TS_Y6B1tl#514%_LC;@S~aaI;NCW788IE%`F`G9_()}R~;>a+_4 zw2C{K9XCip2R*8w>~dovbeUsB(IB#Kw6w1Cx(1O?MaOE#xbZp-Qh6=m{{Take7&qW z2e}nz#CrGHuB3xYnm1YF+bPCMA8O>30KZDs-Od#on>LeK+g%5e0rq0qW%jL$zYg2n z!6oLL;6PL|0(l)ILTS4osY*~u zvok>vM-1vfOt=hcwcJw2cGk&s9Z-3QtT!i|Uvee+a zNEue(#k4bj4nf6Jy4cA{btlvc{+(`BBYrMmCnC^?PeY zhe&%E)+?7GI|kJY8_RV$e9=( za6tl@ZnIoJmu#MEF&`iuMONk}zL^E?qR~Tbwi|ekUUnH6{VTciH~ zE%uNB?n(5m8+{b5ym32-qXR7*L%-Mm0Igb4#cyK+Y*8F*$uuNQ+SukiIj6K*f*GIA zcsC$BvKQz-&syrFm12#ZkIJC2`c_Vt8k^Z(1^vnchVDtOPF;6Z{?L@mIZQ}U!;S#X zDA`=N)8}lzY2rKE-FhpGv|4}8qAyX73HQwvoo1!(g0pOh6NA&W6mt+l!j>`3I~f!p z=h~#|TN+m7gDC7%flrdk8<^QB-VsvtTFD85~WXE{V1_bt7sFvSMKihirJ{{H| zvw0=5c?fKS5d?ws>si*5!49DmdZaS>Dt~&1D#OyM>5*#}FLfJx=D3pL%p}jk7{^M_ zR3bd*rD)x0k*(sToa-bKu?WSw4|=I}YbBhltujo2<8pKclGkE(AOo6yDF;d@0Y_R^ zJ*lCFX-_m<1~|$2XvqtXr`Co%aYFJiX@Hb)DNr7B_)}{-k3+i&9bAQ?iYpV+3Mit0 z4)kV^Z7~)WZ~$fz6H&T()^NtES!Q(AeHbd1%tlBH}k6!g2a@P1P(7z5M=42aIx5bF}xY z(Zy`LoGM8pUd2$@vnzbc4)N(*c0MTn$+d#r<1(MK?gSo(Cm*IOoze80&06cpwpJ1U z0Lw?{0IS#5Lf%W8R>5#WM!@s`0P3k!?Cxn_5$zzMZHZ&kzT2i5M2M2e{$VZOCb#q{ zbnO8Q7qY6|T>Rz8;ICm^ft95wt7bk1ocha8>>92&OH zM0VHjCZ(ayG{lYEVKRB+zvEoSt6^bbYin$xQK*5sQdr|2)qle`SBYbGP^n0qWdOm) zV^_RIYS;QqcM#dMmkR#?Gl9rj%_}oUs=3U;b8%|fw{qDSA-SYWOUHmbcCs?D#_V8c z>s8F7kQ)b~9mQFW>g8ZaMZ}(3obAsBw9v~_rqg^cd1reJv%_V1Zuk-_XL1A7;P7js zduSolEmqzL(U);;ssIU$e=;l2t*-SnoXKr9##9sXoPqdNsP#=~&Mu9?GZg>^01SO7 zx*6#1;SjqVDvXm{?xlR1gg`VhExPl#_dU3(dDWzbVS94QWdIce0Y!9rb)-;QMUS1f zgSgP0_8PP`W3=m7?JZFw&IkmOdYo2%uc6yb4b{vzj_H)Jk-7paa=GsoLw`M#X=fYB z4oRFN0K^W1+;!f%$o#6jP5%HB5&34VO(bx-EUmM4 zNYA%gMv_KEaB7Ks%=YFc-MM~jt7o-sCZVhDZLw`+Jmlv!d1PCQi)KO@NZbhYtG98N z)9yAQGBO-(;O3gW&Usj(bzA#8BXxb`DsI}UP6_v_H*jgX{9AP^=mhG!qi9J zsG892!b;7eN+~GKVtQ8=ib@3maYZd4JkroKz|sm+MFZ*-QAcV(6i_-*ngB{#KME;; zb)&5u4zyALq@|?qOhH8yPytIt6bvavB`BmcI;_KU1Xiqv?F&CuWRnU%3aw2$Lkylx zIBsK#zq8O*k;di{F?JXyH33SHFeic!(wqP_(PPJKb*074t7h8fXi4j_u~J(ZB)JE3 zNJdLD9R76<+;pui9o<@J#9)RQ%{6f+uBAJ1xSV%1$$)EyC|d)uHPz{QU8wTW;SIc; zv8)|>-7K~1h!=$5ipnr*S7)J!#Kv@#B2wMcJ*rT_xjfWF20RQbZ%o%x`uojgZ1z`i{iA2k5nld=xkAHY;1Iy|sdUS$YfI5I=vi<_%j@q- z$fVAi`$e+VEkg*zH*Plk%FA;(dmnuOuK9%A-VRBaLGXkzkwsX3* zw9Q&8$f1-6`O9=2YIR7{Mq}7m&uB?59$=Vc0E}n3t0zpqG9NDJ%paTpP&Q5Vmhgw^!DH>ShLWen3$OF{V)Sq=4R?j5*j4?P_Au4xwVf_=SfOF`6Ry|D)JNCnc9y(4eBJ7$?Su?K}Txpb>3l5`6r%1;M8 zcK)ItbajOp?~pdXw{4-#*8$=Un4kp!rSgYzI~yYddOdboLV2NQ&`^`FyM&uWEw?0aHsXW+j3ERxIVo z>c+2V`ZW5*&dB9R;!argVmshgi5b02v*;)Q;MRcB9{a>o>2?x%K?xa~Il${$n)QZ- zrNV3>j!7?EDDxGwvlz~K?mJKxxz2-%a!8@@ag$ar^x5qeDOwY6Z6N*Gkn(-aLvyCz zS;rjrcI^^KaEyP7m4I=bLNfZCQy$%-wFvQ%Dx8z-YSp)gFEuSTTgVRJjevlB&Hn(_ zsP3bZ*4`wMi%R1RNzF`^^faX|SzM$j#RW+Iw7t0%i&i~&$w>)PM+~y7n9#66mOhmo zTd}=cb(R^UGC?T$fH)xbB7mD|XjWJqi8$bOsTMIK5g1}Z@;xcY{{XusLEGt?)$rxY zi?^|xV2b1sxb+7WOH-axaaTqiEh~VsGOyhXK>AWtGqNt~;?M?0Nvk@2$JsC8n1EGV z3<&IL+LgQ8-Z~NTIo}%&gc@;OOls6=@}ikty+NcIDqGX8X;i5!S&n@T0PuTN+e0Nb zn59`lmO=p;1dg8);YV(Qs)B1c%>XY$zlMiG`Vs|KF85w@K29qYNn4gsq6uVA*%_Jz1>qCP^00QIG9tUh2W&DNs?+AXb=R-!qfY`nw_w_g7MjVmFo zik?_(6O4+nWh>drvfH~UQ<2TL2Vx~Ge9gf36{S6;oz$xH+s5Q$sI1k&KGmo(^8E!P zOK51>D2`zqF{&V5iZNQyox}shV!X|3Z#41YnO6WF^_gkncS2f3I0GSA5Pj*U`W*5* zq0*ZB_WYR7yFxaGIO>yIK}~$a{}! zhEg#iv$?vmxx0YJ#oHNSYqI?$@{n&{{ZV&9Ehvb6S(vp&2=6I z(bjAEuP$C#B)1?U1F)QqN%qI{s))5aIP`cU)<3kDiCIWsK=1GQ)Q_UrOQ^N z47VeXYUH(l86+ujW2MH@sZxS>a&USQGuD&Bek(|tST%cwK-e)mWT?R8dw(jVoq?UT z-IcZE9!1PC%Ms&iEORovqhGX=mH6kFTO zQ6B(;J5o4k^X4f~JCRv6sox1J5t!8WrppShHnws)RDpwV2sD#)9Whg_&0MrA0>G8+ zP6Xr};Ev*&yz}3^KAUCJj+bHHiaOHN8zBhDr^`IjtZMQWSccUHu%^;eOj3$_idY_^ zjDj(@G?a9w%*ggpE?-}Lt{Zq#6^b}l01l-3ny5LT@kvR$l^Ce2A!zSK2cBsbCU&qs zgc`SZdG?tBXDmR#C$&{0ij1vXU5si|ySXd2af8JoMY&1OBB2Y06=8V6r=^T;;={`x zrks%}I3&}X8RMlY6)XluX=qxL8us8e6~8)c@%^4eS2+wa2&)8gY76ywE+7MuvlNoN ztW8>uFuD+k= zoc9$QmfR0x){(N^PZ<4al0we=it&Noqacxk(x+Hd9DzeA2N*PNGPF@)gC2schR;Jx zC#W<5>r?`qTZw>B0KdYb$B={Vv`)$|xijW5)upwHxNtFI|i7iXv7qj9^mH znl{ocPpjQrd9jHKz~_YPRB%HD?s^KA+QwV3L{GOIX0){{Ta6&v-kWhPy5T0r-X6FV z+vrMNS(|TVeR|HekTaCVSl}RSN9P{2C1JmZ%)(<-XLZ&NK~L<6P)>dh#r~7X_>WVQntLivye5U?3g*h zITd?S*5=gGF>wk8QOhrS$1F!ma5)@QHPkN4dTgl;@;imXoT(!?HEUYcMcvew3i$ap zki2K>Sy`sYxfOkGO~MF+j0^&MQZy;JhwV%mU#%l#l23YXU4a(G)UsQMi^yY$afUb) zM`tXoi4-UI_+8oIeaQM!STMFO%z{AN?LF&TN4rBkO2+qtB1ytY|xc1#3hUt{D}FxXowTrU0!dhZP3NXhSW9oP+1LT>6eHHva%l zv_#$&{$6lRY_(+T4~tjH;PFVLn|3f8X_1NyE_f7D4k>!pXQGvrfKt*@(kTTc8KQv& zEhR5QK*EYjS^y}biU296tvZr{F`#adM@*bn)OtE#Zk@7y2TI6M`@}!(3hE*~D@C!# zSv4XR(k(#w%fG&HPF*(9dPU!ZR|iTv&}LI@9vOb)6g8IN;+5c&AG&TE*19;&bDGPD z^*e!{OAbE@aaVU{Rh#9pQbydwb)*d<4bh*Q9qAQWiF3fIK~J-iNXs?_YI8<67Bq63 zowCQDr6vjKPDa2W{uILdWCOJX3P~6k$m^On;PaePh6klCC;~P)G}0|FeSQrKIGJkZ>bnI6=a zbGs0rkTJ-qbf8&hbN5sVRu#%jIXh3%lw@N#IHjEoEJGgrRAic>Y&_w)#wj*aazUWT zGONx>=mt#zxoR6byQpN6(k<&B3`yu~Q(Bl>SlQU^T?inV01}2R%O6%p{lVKiNm1F1CS3& z)zmfX-BN2?dzFb*95C6zCm807E1eCy8di&dD?vvUO4#64lOe@GErLd@jcvcteyl4+ zeMz=J|twCN(~i}=nF*@QYcDVD4;<_6dD5IMHEmmX(*&L3gf9Lq@WuN z;|I{@x@%|Mx9MEL>0Jhz+oD$X7^{iPU!kTtQW|jSNJTRd@$f;eS6xFUy>eF|ab044 z;5*kPbGr9ix>RlfJpC%7V^>nU$QlzE;F^*+zDSguga@@>5S7dE3q+;(w`LDlotJHn*`Kk4n3)X zZy~YXm=8Fp(3}tr9#}>=B%e}gYy+hLrz}(hoQm4Ewza(0V{H`5E#pw^(((&;1N5xx z4LWT_h6=1oa>qQ8?Oh69S$KTn+zIkBqdh*fH>QO|yQpgd+Ro}p6;|i&D&xPcadTg4 zvhIfJ>C8?6WCx0|cW~GD(%i7x&PN&PP+X1icPD}R&?5GNj=G}CkA+?we_HBwd!)0_q`BC)1*G!TdZ`DlYnIa{ zv$vOX%6#VeN)g5??yY>1$qZHu#?5eEH~uE?OG48z1T8WJP(fpiRojbui)}gwmLk77 zK*zmW&6IZnVJJmEzavbX6Im-OitB$3xP9YTQo*w#cr9NF{>`uF1(O(xY30 zNI+;kDFEl1bx{DLKU#A#uHAs=y&yO_6pTqEo~EATCQxs$mLTgJIL=RCD`FK(YgATc zY<=cYjmD^H7k02K3#h2lT&Dk;Lb zH~{?(PX>`~1*C6&%x)u-JRGSNxh`80ouL@@0{~LE)JAH0rLD3smNFf>`&Tck>XBaE zA%YwtpasuXsr*N77gkp?d4b~udRAM3k;NJhn#8I{P-;co*HOOBfMb*2=~YQ(=}s38 zb^=Kohgw!PRZ~`HPj1;2Y;>v?%~#OnYA$Gs^9*t;Cs;X1kG*Wl4l5f}2g>>pM?&NA zBQw1eQr2g9QAHGn6j4P0Af+@4N?1YneoA z!0vr3qqT)$K#Dj60-&+A5JnVoPg7bdm=#FloVl3g=}rThKqtE(Nf%OClP)1b6yw*g^{wgUDX7}ComrWfh|{T5F+X_bfyk$b@I8I$TWSok6e3v| zIO$5y!O5n1=yBHvzBsL2D?*o2gxz_HAV%eToKwA!lDW6xIMKAoU}_LO zzOi>4ia{^9XVBMSa`5STI!_>2kr-eD$sX0r>w1;8r>VzrY^)I@2*rjsP+Qock`pV= zI5gJ5Ty~@fVI+5_NT2}9K2!QqAb>``Ve-KQ^vS0nVYhcarjfzMMnU$g_i$;kY4$SP zT)ekZu4Z1!eKFgbt6W7ei{@cRCZ41Y1tPS2$O=QAhtiY)DOh3{(5~}_B;yCQG)9Z} zR~hS45%Td-`GX`M){6lmum+zM#IOm{Gqon#AJ+q=Rg-u*KuJ9S8K)}}fUv>uNr5zy ztgH%xHjFX%qL4lzWKce1l5s^V7j{&gH^|J~mO0Hf>Pwr+gx6EaGX)9^jgkQE{OU{` z^ro7tlVC`uXv0SnGLJ!;LFN@F%3=V|0;h`Vdv+dFtbhz)bTq4da~lGzG4!FKT&No( zB8}AisXXJ8nsnCB97!-CqjP{qV?qtc!&CUhMg=K2pg=&*4Qgo@R?t9Tkdj-}aamc- zI1mO6CayH>Za$)x%uy6%3=zo$dQ=BkIgb|j3)h~to4jCiOSwoK^Gq8yhPiCxe3tK# z(M@JvY8Q8b;S#iV#j+4pLgUtx%*7V4`I#Xs#20ep4WN_SlOEK?a?R6^T99Utguu=X zMRbK!9Ag~Rq!Cff2|=Dfr(j0qjJ{-O-G~*f5y-B4M|{Dz`==GX0nI~4TpomuyjEVN z7Wf>W2^{#VBoh@&zmT6jFJAzRC-)fypO)UsDOIEVHe5nz;95L>D)ohXm z-g8?%D~44o8=+J~l{wBytOY(;z|Clrv5cC#9NEFi{3;^*NFxlu^gZcZyT>EO30VH~ zc3SNGKc`u(h$teI$fM@KIVOTqxfIrqcc45**+ig+P=IlcX>@Hy-r@$_@ms5KP#k0H zMaH*nrcZSnERA&l+L7ai&2pPj_sGf>q+-QKY|=||+qT8scTrteP(v2u1-k4)dO7u~ zz+xQt-HMFhbl?hca8*~*nVWYSOK%+TDrA%7D1PavSd3B*Xkdr4VBmG6$Q*a3k^^&2 zDmv4+4i2Gy@6Xw@+Lw66K*WyRQ|+UBgkqd3kO`vWu`)O(2A;wuAnnK=wR8Il?nZ;` zg(PW5-OehM=_RGime&cgSk4H|Ah9--#WiROfrQJFdJGD##LVvPjF%^h3{tuM*%%5~ zoc5;)A$u>E<(VG@dWxOdwY|**QH9&sbfTk@l8IX?eA?_1g#DHeG$1?2ent0HjM3VwB}Qg z*yMK|sg09>cN}!@TBc(-S&daL!9dBYNXohkqlVsP%8yE|6PVj@I5@>Feq3bYsgQ=~JnnF%#+(EX2x#>xhQVi`JVA8P2geL=W$rP&sgVdj`N@=Oy!m9!`0r#)&yR(#VCQIO;jYCrTDhaI}Dal^|P&Ud}Q(?kl9Wek+rW z{HfAU?zME5vIZFkBBh-a-iDrXD!k+6=BA9~Q)U?z4BZ^8>$2uW^lFZ+YDu#1J(yK$ zhq>QP-Y7~aq@+-^hKebGQqf630iaP!K!i0U5j64$*S}h33lOR@PeEIHb)bboBP@EF z4C+smwQB;zimEsQuBzZuQ7|~E4+59lf^L!EU5%9G=v2~n&hwMlKNpY z^(TSoD)zN~_K8FhAKfQh9;UO`sG|DlYN`8;vC39FFXvH8hE7MyeMeeS4ox{Z_pMRq zF_E>@d?n1F5y%W^h?udQ?o+|dN;syuOrCmD6~?r)Jc3DOl0lw~*{ik|(B9sQd7YI? zmic=7QKxD0>MJan3kACaA?`(Wntqj}p!-dxVD{dfmsOePgTvDES#WDu76TuuF^tj@Yh@)^LfzVPI0h%$2hC8CF!Iy)^ zM{jzbKoui(ZOHk-@5NP`4F*c3m*xA_X(4Yc9>$;KmflE6 z60SE4kEK}BV3gc4M$58Jsoc~P&n3Y|kmRVvBs08n2_q#PMggQVv1@R;Y`PZSy#Z*$OEnNZ8}jwDjE`)pf{JY%rLK+DJRAla}A?)4W$Pv@#6v=LZ!v zluQy|v%G>-TtrmBBwLiJ<29q=G?LQ%#HujEa-U*NQDQ~6p2QXQu2*=@$FVrY(^H92 zAy|_V9mJpi0998b$lQbvFpOi;ufVS8mohHI&R0F^i->2`gUZ|f^HHiGg5Z=GM;scTRX`HbG*F-?E8H5St}9twr{)4W(5=5X?MRR_xKsp_ z=rd9QjsWRONg`7Pq&(Br6smlkH9bccPYo zh(_)@Q=^4cb<208sa$1hln+-F(LFqx9=gJy=iA+f#%O2j9 zu@V7}DI-d-iU6xfga_j&n-Qnqf6|ByUq$n!chD4Yj*`&G*=L9+YZYn2eZh z&R@HFRx#(3$vx^DwueP3P3p$u0+fB>NNUA|0_y%K2*`7cXC0~*=F|9EBaKY*ByoUV zMhc*ua%s;SLv+^cKX|7E0iJ82vhc0Ft-@YhU5OzL!U2L0VOsYo8M#Q3BpLaX-~wxF z-&A=vTO7@&hwd)y#L`T#K5!9*X=%C#*w{^V5SnFfG52v%>)O25!d)>U{{To1uCjtK z2U?~)U8zM8Q4~IDJU%i2`c-O8k~Pk+r9(7``)wtV?Q{d7_Z5?`>P(Z(r)l>oEtIjZ zm_W`Cpf!y%{i)@e=jWPJxUl1zY!R`_q7$@a;B*wWVBUkk3ZMbN6aoz}%Do3()Ib0P z7Rk>P$R5kb6b1^vImZ;B_NL1iVUl_ZVk2hV^ru9uBR-~?+J%v}w$vmj)mwHHq6$7IV^`EnOz+Zj^NfP0d0rHN% z)ugATh*8$&h3X}~mkfD6V=!v18TmQuS2alk#)yCskih$5sAPdyrfA7?fu7ZB<_lHR z?B#~*&A5=Ul00B0I#pBw)S)={q>O;L9R(KZ36`y{3=@Z3H)0R1bT+!B!G<7(LZfnf z3gxx{Nj*;{odo*?gcb_jRMOnIv#z|bx7GGbb`X)nFzRVO$88gIJoB193XJci_){L<#DjhkzQLfN}-o%+I=b))5ZPQ&mlmOfC#7B!zI3*&OvBe^7wovD%7Lb9~Q2|dnf zN!^J=$-GY@8r6*ExxF@DF6&|Yul(zvg!#O}L= zbDE{Uk#W62*#7{|x@8$!tEgFvn`Tap)E|0G(h}uoEKMaVf{sy!8BPr)LD_qYMHB#C zwxBG11pwMXN}-(XP)isAzoLEfR+kxp0G0_^>9Kn)|4j+Cg(vB;~zd;(}A z(v?(-Gz-{aFR-X$2e%a^q+V>x5o`huO)lIDbVtgQ%t7;G8Kfa6^2321U< zF)e|UNwiU6k>KW?w1Jv<0)lA<;>J!6X>c3xrsovXCew;9VW`}kNJ4Dh$b44 zR(Tk8ZgGl>cr@ls=ts3S#+IeeK5Ljkl1B2g@`8HNO7OSYEyM$V$TuAHqNhWCR$Len zxM7jz3Uf%Y`ONqU5$Z=ujOWXcb`mW;m@vBy(Bp$zoawN6LPlR{Wdl5Q#Uxh=Ew9=T z9hfKHr9=LaZ`d*rYAB;v?aB-UE=E4ItUHzBy*D~!w*o!5I18NAmRBO}im1lG0s7Oe z;_^(;x{ZOd2em<^kKbJt;4^SNDda=|YC(|xvotQQ1jlA<1 z8NvRw$*ZUKq^QG%KQ(%q5wLB>F~&Ml-PlrXEe{@^InwOg+AaV51wMRL%`*p#xMq6^^pkvTb^(xjy zQ~+m=^x;Z+@zRp9mglEIS_oBQj2v}Sn(1M1%B(w#*E3q$O~@(scRw=y-*HYPR*zG5 zC&;I;2b!rH;MJgVDvT2`^&K=^uz1K>2VZ*0n$qGI3el63!5u59an46tibM{$B9)C} zDJ_hveJOAZ$8rAX=~v^oNWchzeuAE?SLGmMv8h1sO2U(GajO`q)j$-AwICG85GXYA z1tH*7OUu=@gv!UKLF#J5sLexBj>&($Df_Ej|fA$eOQ_UtJpmF^~KWI1O2DWb7% z=UqB{y0D^_lBC=zX(%)R8V6n|G!CMgB6~7Nz)&-j-l8$(vr}b)@CI{`O*NY*IIWKr zjR{Ia5w{~9YDI8hkqG6ngXvA3Van`caqCSX5o6MxgVun*-4t}DAOI;lXu%+785Cqv z769?mfE=Kc#UUfT86fqf>p%|07&*>=3I|$JKx{F_c%TFEr5Nu{ng)j(h#|TWQQ*)U z4uuS)j0}%@mgdrE3Nb^mha_`@P=yVEderdABx=j%95LulMHd~eS0zg0cHH`Pt6Ghu zP~KXLNt#&ak8ua8p7lCBGOEWsLpjFf>ra~7_sJ|SSgMc#?L~_8DeDlyZw-{N21j%v zMLo}`stvhV2UZL~I3R*+a9Q2WeQhl87PpBG4^f(zR$+0iX@QUi+CvaJfzpmq^H{=` z3yWop+(PmBoThtkC!Z&21ASk*il(EuIE&1G_7J2%yW-NQfblve$o#ZP-%zm-1>a9 z_T{bz{WBHPdBfuW09$HLO@^6~_8AE4=Kla%d|b(A{^_Xt+R2~!>-}f~r)0ReC3Dyv;LJFZWB+B-cE*wTv?fI^XoS$x4&B1gT_d0KEd{R z4CgWK&mUT^FgDk-v}!+iLv;4$tt1hJRuQJ+GEUJ>_8s~d+LEGO+B2S?Ek76Mh62F$2;ONu-u2J^`W3l%eJ2G_Awk}JdMUWQzN&M25V^m5-B+V=Z>{) zMZ7miqCX_5<@yR_t{UWsvxYo3twsIo7SeIKRT0$!?J9jKrFL|yGRZI@0UUP%tB~Ks zdGA%!ixG@xiYZ3~(i*|;dhk|?6jP#*!zxHWgwrTJC@HI}9U?evFz7~V(n(m_Y~E$A z!hUGZKMKDToxLkl&)L|$)|nvKo5;u=Xh+RG!FbA!;)2l-+b(u;DO2S*Zk?)(B5Q5V zPDnhZT@nf71XS!^eLh_&5~JKN;5Qd^en zGtF~XS2EqoWRUUMdkT%&a>qc0ha?5BRZc89MTyMdLKbZ0nQC*!)qUs30yTq_Q%fLqmN46BgZN9;LxKq_l)_S zFbyn_yjx2GGt-J<)M*4T13B%ALI^k_m0uWeGwD*iqHbAm)Chu%b5;ZahIg;hqGcH( zfCmFA2c~F5EaU;uQ%K}{3{>`#2;GZyJtzVka(#_W09S9FcVd>>HFa#CnV6AFZo=B* z=0eNRk4i%yE+?McFWgmZk5f#NFeKxqD)b2%xr`{_L`nLSQ8luCu2Ur2i6arOZ>=$v z#6RgR7I0NJ6HR6R07!IRLX6eBD{&^Jbl4?Ostop~Bt}g_?XmK!h5aZUg31+{gA?-( zF;WR7H}@9lj6?-LOiWF2f%2I?LTPLVnW$gO*D?kDC;`@Uu$ovzjvW9bdR2+F5ULfG zWp(I40FTDAx0Ih&lzrobUvKlpQ;J=%f=@X7YgpRai(9J;cPx^~UP4cx^s3$RYQ(sB z!!OX(1##5ide(E^`fVfQi1JbhSC0feB5IcR-CN!rB&RN z{mY;CMM;ysVV+DvqXRyFAM(so<8?0~EI-v_>slDxd?yWMjzI>Q{{Sv>kNR!>X>G`J zVimU@Mnxk7_F2zyDE@SL473g}*dCr&f2Bp&PK=-V=}#yACJnosMg1xyKk+Y*{m13emVKM^RDi-nnKcCaqj9n^7F@fX|6OD?e zk+g7sGg&iucGpb4xJKU46fYiIkUc2rajQ9UoR4!w10A|{qOv_juuy2A(itV3-bKh` z_fHMW%e(mo+qVp-s8@vsrf6jAP7xT!8gb za79d@u-?G!9n|!ywal+#mTDcXgsAemWdew5jyi{DN&sqS9 zuumN-NK_I_AHdQsWSxWX0qUZqYjxgMHY5)1!Jq~hJgEbta7SuQ%#H{fkD>2V>?;@r zSnE*Vbv~cYqq2o1)Nfo5`Dzq?RM=11N;urg z$L0j|HEsZrJG?{vVcg$Z2V%aHmXhs;Kx>cXNu`4%R}vrNnXrD9C5jt3WQ?86OE5oL zZk3p{kDujny_g=<44T9HWw;|gqNlc$ro|M0W0qHO^5=~A=qlgB zI9*8;;a~|3(9tR!0znGhDI;Cj3O-}Nr#eU&qmEOIdRH}_?vG7QEm@3=BtYPDXr)F9 z*(;tXr_Uo7Mi!o ziQz9AklY@49V!R5EQ0{Hdy!7}7KWYf4D3~b1x5{AA9a3$v6W?o0y6I7*PyM0JCG6B z4AUmo41D1FRSiP!;@44tLI;;A0hEm6n!Y~x^sMbgUGL*4tW*#Q^yZBUNwY@wM7Iqi zkC9JmbW$b6LRijGfyGwVm?e|20sd}BueCc&D%xZ$yaJ@-(v5)=#g8p|bm}RM4*Qb% zAgCQGuA0hbWe=V+jP#_xzM9VdA1*NIAp!G3cRfHtpmu@Q-?zV&Q$xtHS}8L$_BLb=(+w9mk5v@r=SI z`A7~SKhC0W5!>ju&mGFUM=%T-dl6WA)~33;++IYI2!Ro)e@b@uM+N)V%n{O-l8Wa& zF=-7gB_XgKY1GM>6j@b}W5K%^?Q>7GeiLPZYF< zmB!;9!9^5MQWlCRq%mluqJfJ=6i_gtib@12r0qo=s1d6j%9Y#6AP$1824bTFpL%Y{ z*48If%M~07o+KEqi0pXs0lx!4{M>Y8_vmVA0CWmRAkzYXMsts9cpXpWR3arnx#O)@ z5D&C@oyP*SHtrQ0LP=5&9mN75ky%iK#zj@PgKWgf^9*LSCW&TMN6rrfj@0;V;DI(q zoF1g|O)CL{V~pJvPmy!UJu7Z2SiH4wk&ZbdnvQ)vCiy@kKhCN^&to`_Lxsqx)On<~Ximg6tS_&2Zy{nnjtp3S;ECqf>`H*L-*K#YC*Pb~w zF^)<{w4Z$Dszz{=ZJ130{gtiI>_VkRJ5zk7gGgv28{K0n52>rcLq7wpB++ac9Wl*H zW{n*E#7z#LW=G0ZFv@*Nst&}SwWqBxcSTd~MP=g|2BKG5os`^KNRr)4TtpYUiqX|! zXl?|}_ax);sI)}ir~{1bLcn{~`$}Rx$;^2m5${Dye5rAI z(pttA72_khqP4tUrXK$QaQCP^RPDI~fU8DzP z>D1@zRxRU-%rXJyrZ+C(-ijzuMaoRQ8%H?+N4Fz2BU`}AW04piP-vpA#y2WGppHVx zBQ$-1>rqWL#j`B1BDe?URy{=&RP{BndKs2w44{mUx_eZyD>$DB2vf<=wG>oTc0mCG zTg@zS+=9@yay@B9taeCXhaxous3$#WqO4sCmH|BWWFtE{7^rnD{jM-i8-V?2qJ^+a zb3*t>Au-RB86$Qo#Mai`h<*=aNGC4lf3Mi~kNLorLpcqooMIngYDXZ3sDu{cJrqM+qv1p=- z28E)EC>T*i6oxGnQ9uPH6i@(Y>}aBZH|-nDvVfD47Y3{%`cXx6Esr996D29eeJP;x zMHNI6DW{AYD4+$!8%}aMQAIEjn5SNbs$U_L0!CPOqKZsNTUewKjsF0THF7jn=sBW_ zMWRkIOl91RF`SMC6jMbbHrH113{JL2L9m=}Y!(CSS`Hhl9G_oWD5-3;m50TEJ?X7* z4Z_>)&he6cD59n8RjiCXWk2F)h{hDJ1L!%di3mSj;L$}~z7lEaGe<>lCM&zGp!sS5 v%}SRsU0rUwO~^(^wG>s-NyN&$nx2DgCAV2;grO0GkbO-QQAa8lGe7^?3;rsX literal 0 HcmV?d00001 diff --git a/Tests/W3CTestSuite/images/image1.png b/Tests/W3CTestSuite/images/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..fa37f6d68745139fd8608edeb1e3620b53686d6f GIT binary patch literal 394416 zcmXtU(CEw;3jKXt;6}g{7TAZLD8dP0nK;%Q1jEhs>;0(LX^lgpx@g0_mw~|wWx_pD9)_!82sqa~jO-_gBx%P%QdO$_v zIF(Jd^*Bu7?AoKl-@nzM1(f!!L=Sy^)=*(MT=nZjB(84CzV zWDHw3EtIE}*~v+JyWRdD=fx&NMj0jsZ*Ol+JU%wt$F2D#f5yr1?@ULrtlfa(_^O9J z{q%cRw?E}2d9!fJcA0T=ZQ7Fl zlAb0a5057YWDIi^{>iMH1YzqN@b~o)G!{|9p=nSk6xa#N$MY06IAs)(u>%0Qd}f$? z#<5%tET!Lzv{N2+IM=WLS^B%<=;zSvvHUA+vBQ0BVRN}|@p@VC>&oHq!L)ZQF2maW z&6`SmzAk-U)#iH45?n5=W{VPY3lF3BIQe)zj2IavFCR=7vDswLf)7h0<#&*=Sis#!twM z=XL8a8PQuAO1~|#urrh?9s@C2cT1O2nKy%#GHgetOy~qAx9g^gl_vG`2emCCMesPB zeO>`J9QYxzzI?jME;~+EW$3bfjR^2~=+_Q2;{9USgEt^804X3>G*giV1PD|?VPzG; zxhmm+K%Ce0;Uj=?g|6mV9uAjFBNuS@iR_%7UtD7-f=4pU>wQ9|ag2V6(hajEVpF0U-2>Ly`bSe`;y zezz!dbP7WXW)F=f(SxoDF6bf73P>Hu= z&3|K<9O91pSzmG5Zsa7Mp}pm!Ne2B8sjB(wtK>U(v9>0U(;#oQ>!tjB?=XeSUspe$ zG36>vc4Ehbxw(kc;h?-Y7)bd^HE^%mr`>D6zr*X~cbO@hf?t7tn`9l^<({eRzrWPZ z{-+lw*B;o2BJ`n&;$X@^xpN$5LOoeHTH{C_$hWb8xDl?(gq#n%Rmd%hk)- zip+rIE*1CF4NvzTlO1S01oK)gf1~${iQ}$w^56<#pzLrwvd7-VrQ6!a)#rfPf2wje zQsI1njb)xdvH~k~x^ive${Pz#l`4%;H{@{_00^PcYj;uwb?%qkB?~fF*ON@d;szM=;Q$c4AeW;Azzu-sw#fWC{a0{P5CHmb zI1{Hnc>t)sX!Z`1sY>@CRLboOTB8~P!! z8L2WZikYer>*VFR+99d9y&-VwDCD692+C-&(L714M5>#VmjBnfuBI}{k+G&xH3F9h zKChI#ORF+Pf=Hf}vMIM((=u$XeH&cDJHm+KTcgB|m$t zom8|mR#mDX$#apx0K>`yIDoKVbWhwkOSI#BcCr2Pl5Iiu%--$%TeIC0iKh}bd;gAq z7l+?0?aAxY3p4&54U}WS`q7%pGms;Iya51id+P4c;}Ls_~MhgH^z>iXOr}#vSmH@mWmaw2fhqn-JDikAB;(udN|Fxv#L-*aYcVW1{N7ry&*PL_5 zG=EMVb>7+@b!OcGrom>DnwOU?o_ySFj*N^Pkx+RZnP;|&7dSMbhgxXed$W7>nZ>FM zVlgzm#_zs22}cm@!+_J*J5-ko@$QhLbE{K{&)!PtVJu}$hm8_PE?;3NJxV_j=czG3 zVzmvEeo!f-j!ROY<}(8T$@HU9T+EpjSq?r*^ub^N7zB?1;Uf^K^!*`A5s8^c`dBbP7GH2v|x@Jjqs+_v)xyxamjn z3ahf|XYmZWiZb;S0RHpxx_xQ3#PM{92WU+T&0uAy zuC?I37A36zQb3d07bk45rAU=J^YZ~bisP_tf8JZ|lx>dZVcdI6iXc%i(hK@Q(W@n! z+zd#Alz-XkcmMiixvJy(kDH;OX72m$ERB?h&(;ZyNf#a+r^|#elHTw1$)h8z_JXWn zbsQy*JUA8NeHFXQCaj9$i!c{u+TPxNRy>}^E%H?b)isw$sh;%ZInFVaqe6p_<7O~?|NA%6|djk z0BKc}O7;)TqJw80#YUQ;%Hy}g#lugZzgK|u!SV}oO@b-9wlWhZ!yv7v!m3d1IC>8n z-Mk7rLV97D`!gQX!B>%aMrm4;GXzT}3vdy>+=XR<4#@VkR?24e@~!YVY1&laqh@nY z`)TLKfU*G+758~(O<}9obcn}7K?OE@T81EE4U2K1sDhRKJ7FW1-CZ>0qXMIz~xI|%=p z>u4=Fy1WDr@NWciS|lYLIIW|Y*u0RV<+3w8dP+V0 z_v}n#dA6C`R9@z++m_797Tdil>rsBskQ`fFMYqvUR@W30}J!K z#qvDXDATT6FzzmrQ@DWwkcR)OU)l4s#iYr2C7KWpCfb6ZpHgyp6ki%=hxQG2%^osT znfM8@Dek@0cAjtd_w=kPzxHd3kw+3aQj$cohpyl$YV2lK&VFkfCP(&|zj>p?r!s)8 zIdswrAT>Y2XUdI#dCm{P_|l!?mzciYHy;}&HOP?Zt{4bY3=>E%EWnfC}NY9ckLKxItO zL^`m9O|ka4WYK5-O$Lvx8HX-~fU44ZJgeZ-E~$jplBMWYQ@wWLBv7F*v4<&2`;n_t2j z#?KtIBA*gXm+wXf=(48xbZxk`i7Y7SXH!PGdH_>E=u@} zn>|7ig#;0+(!kLo!R+0`&FnTVyKHioBUiH?&LAubNeog%0>%~u!8&eM)*frmbf4dE zajxehyX!KSI;S9APDNrDd9rdHE$99Ief!>MPS&L)LQ)(chgC!CbLi`Hpp_74kR^C{ zurWl%V8*{CkFjTT?a)ZA@$TKbnU6>;ZK8zLGp}sXC`*n$Rf|AMkA`X9AYZc$x#ZVy zNB}Q8Xhl8oq>&Q0B=bG4v^?;&IOBYiyOC1V7_(9i*KzqP@yM!np92DeV61Z+Y)UQv zy-92zkA|LbC_&nKB=7s%jN|tcpUNhrF_p=YO_iJPA7>}H%v9R3 zb8&rZVb*DNp&+(^7wrrWoZYI|>w$+ko{J-E&(|_{f4pt(kWe_9&sbttHS1$1TJ&OT z?okSlAE;&r+qZ<08o%Z&rB)OZb|Yoq><$oEoH)j%>fKJhy9;^T8H2f+h&X*(6!L|> zwn&Ed>DqI!*Z$V}`tR1m*RrgmHY7KzrZ)!EJ9E;vM@Hr%*8k9;<8no?^)zvSqxWSp zC!!A)&Mjk)_$`5X_u!!N`wg8%qTUaOprP{YTVG>a&FM6f!TT!S8(s(}tIhG{)**U_b` zBRJmnt3Dd>qrqv)JzWnog+_0)u?R84>E!NfKir;L>03^=%$EfAe?cktBe) zg3U80TrPPY6ilz5AZBHv^wTe`uJkb_=0D!${XdGj6tlMihF_vRdP31xXq;yDUUi@) zAc|c_M-iF(WnLMnXjxFMO$3F4fl#qJ14?zd5mh3hZi1uVVejy)np*xC_rFi;;xrG~ zUx`NrlgGX992t_*pUuC8A?$#`Es=pl^d+3$Q+wOypK3&$cA*QFt{;GZz-q9P)s-I@ zjbCW@oqfXmvqRdK@bABxW>S8>WiFz%d791J53P6FoOS-r5Ht|rGPNYE+Qxbs zw5Tyfdh*oa1?El(0~)2GGh|0r?JnN4y(~xFip}RGT|-ZUkAg>5Ej9&9uz5*zcT{ zY}O^W^nP6%Jbuh;u-{pG0?t}{5I_lJ?jQ?B_fss~7TkiCWjR0IUNmE*ydIy< zVJvXZ%J6CN_?Rt6UezK?)zoH@-AtvjLlmh9SqXM^?_+nauOt`SOwoVB>`(}AATF4$ zWhws@F(z5bRbQ5g1utsokHI(tH9@NS`g+gBFnIE^B1T6=@YBJGuC1s*v9>N zx@c@%2`xXZiF|@6>B}duq){TA#VhK4LCMs&Eie3DMNYDnQ6{`yMqz(&iOrOvh)aumEyeiqwuYCNqWgc<;a?PAZ>)a8|qHv7BW(0IPrTzx1}mz8Yg_4}kp7zx&Bn4NnQrMz|3=j^8~MLgy8 zi37HxBE98Pn-HZq6i#ZAe2)2Si`&p)?3EB@E)TJas)(am9htjbxFX^qn=WwXuK5&S z%0vlRz-*lV9>t=&1ohpW#T$6(T$4vtIvw@1j?*vWYNqn%zt{Xv_XiDfk}7qyi-c5O z8x%0W$k__Mla2FX@0enjNijWJs z#)`_Y?8ZSaZ{FN=c8~}S(9G|$!D#}r8l}+%Fe4Q!;4t3zEl#%&~u!)uGTY zW=_VD8dzL7+05|4!STQffu~M9TC|M5%0MTkclmwAZ{M;>c0y)+!j!P8E>#VM)|K?# zSAv3nbM;7E@4OMRGBXr1)+MdY?Bs_|)k>k3aO z1fr{7M}`WHdK=9T0LMeo0VuIP{>Z$*%}~qlQM-6+Frv_ToR07Kdbn+UNT_e*qTxLJp zVpZ_-X?jK8`BvK9>UGorunVq1bQsKS{*)YL&GGHt51~kVN_Hm_5e9v_BB9Cb?5wQJ z%x+j&US{+|6b?S)5va=)+p0l=Yrz(Ls--ha1JPmqdTqf|Nt>^>}K5?R@|eJ1+6?_(v2T{rAU8k0uSwAVzh0-SOS#!u{;nJ_+mPAUmnD zSi#YpR?jAB2Piw|wsbfRATm{CeBMX{!5b;feDgIXqtqn3>glaivZZU@`S;JW%{a7D ztamy|KPg-!PE8j=m5{Fe@K)t$N6Fu61fXt4(F4m>(3b)nqI*c6E?kBSE;6KU2@%`v z920>{gh~qXIu~x-a*IDAuySrb#y5+BlBXEJ82E`jLz}#md zTlI8MJOY$ZBmiKxz*Q((w4!kA&f<}Y5~Un`Wa@t$nijI~CTJmj!lRKL;lv2@oBh=ux>NY@%|hZ` zKd042DRnX|`UCf4LCQGzteH7L5wX2^6SHr^7mKZ-cnSoHa_P7`qAZ(?BXALMC&rp4 zQt-c1reyHrDyeuDsou}6#@@Rrkt^mkFZl%44%Z#!LA{lmF|n~7XXpFlYoh`NWd&a+ z;k2t*UXaxcb$pUn#yy2p?&()w+NbRuC_a2%7cZOORb6l9I@h02nLTg*Z+V}NL%8}; z6#El8sMMW&ZVe6-z7gxwT`Vsx;4gtdxV{F$PXBJY#F)0VyKRnKwVa9^ljH(sze>Q7 zcW~*jfNJc%Nrtve=& zHvqv5Dkw-O?lFYN;T$vhjdfq5?PePeUyJe%)<)>c>~fa6tLW0P(!V54gF(5C+&L^o z)YAm@mDojsoaa0bSG8vw0M#$~Mn*;~jXr;V{-r<#^P2KL^65U4 z9=7cE_K(4iJRQ0It#H}%>(|&@S+C1~8U8oBH&;~(XP+qMEk(lzXkVkz_!&{{D!xh+ z?{zluE&&ezsZ$cbP&a^C^MT6Hh_GQBB2qzK9>mQTi~WDKRM3D-%UV z0FP;Us$s%nFDWTNk&F&70Lzca(5`z`A(~zLQTM8rmHxOui{{q*T_+IE&dleXoXHIIL5=e_y4M&<4IDVx zDKL-+0YzYK>+B-)KG!JZJni#s6)p|d|4feMD72o}QcLvq*v+r!dHZ)E{YUw}l%_)| z_N&wrXORVpWs}}*ac~{gBPV+anGmVDo$#3y6%T~bbv z8i3&GW`85^(k`11_)cufVFZFdPIdHZn56?kvxJGIoYQS$*%Z8vv{bz6{x1u#!jR*y z2+68Yo0zVxoBSX~E?h%|CWTTW*PUfQdz^N8OE@pe`nvu8POLFlsJh>)BfvTT;+IGs zFa-9t&e`V{XJuw)@e2q-YIp|&1L#Q~(G_a7(9mKdumD~t6I$_mZTV(1OZ1~%qr5`5 z9><0?$0lRv7lYyqfYXE6%tyC&Gp7M_!l{uTZH3#ABZWb6k{&rVoBZYaGyn5nVQj2y zY<3ArJvU!J7lY8kLX{1`0QrB9LT)^&`XaTGc3=TCW}{~`_Vl1JhWvRcblqJ@K+XC|;M5nGyZ zkam87NZ*Lr4_}*`rz?FxM}~|MpC=B600^+Jc`5GG!V@hTX$=h`jsoo?9_P0~X8pB{ zDLtODc(ua&46HrL`S0I7(5dMSnfH7e{f`6COyyFVOPhHd?PsOw*j+{+8 znaYs%59QY~F}R~|&xDl*}X)cQ#V>VG$_7h<@^IV9Ppam|IdCttgY^N_=;J=nT2(0yTx4Janh1XNRe{Mh`UecKe4J!L*I)L?XbB} z+xz#TZ{6p7T_U*D6AvR*ON%HBvxJ=!Wh=cs?Qjn|8P>{eVw%%Ga|<8$mYzt3P{74ZN{^%eR;H zguNJ3blgv=I{@5%C#7U(_fEt5 zEH;gQVB=CV1J}Q|Rub$Ra{nX~%FPpBSn_dOT$nTzmj<*FkCUdx{4`H08sA^=@t4nr z^?k9^)P-=o%YZ!<5PT*m@JwLRvJ5O`3e_wA{l-zyry8U^&XGYsxl_Dt{sXml&12Rcu_**Xn!dwk+Q86qgySc;j)xn88m z?=+A9RIjB$>VUmQqfa07PBUO=pt_o+cIl9-6>E$8KizeIq77fD7~WH{Do1bA!dwGF zXlQ8IOMhu?e3>lMn=pQ!p`UQl8zwX=U5ZGkspM#Q6<$ACJ;os%0fBR+aB$R1ZBr~w zj%8h(?k-BVR^Y4G%|t;&i0dsj1@H5tbx&Ejxeg)_)2G?DE9J!X5fN}eI1+$3X~J`# zk&+7?TYRoT?Mzl*>RS9zB&R#PtA@|H-MP-Pj~ka3M4E)}HH4H5q-j zvtU@|+^F#}`j?Etx#BNAed6Z3q5u>-XVBqQ=^cAzRDvDTv;T3EP+XIqJ`@*KXZaa< z@TC}%S3mixrF}0>Pq;Elj50m(DvcC;3tW>DE2cky)2B;%=Z2}U5YIY8Lx&0;oSA&i zJ(Y=u>#fT`b6tI$EksOJm)?O9n^^`4z&%c!lkn8BO`k}7_{{HY(6rs>>|krlvF7EU zPjy9hZ)XM78+k@i987=^s+X?;d-6rO2{Z^PgBL3ITPvqF2P2OO1h0tq@7~4WZbMG) z7>Vul5$adzI!S=DGKP#r3==f`k7HOhJ!_+Pqh;lJmGElN$U<;N| zk!mvV5V>Q~MLJ8NJ9&_s7ua6_;vox%0fIVXI@4!nIQZfEXkpe^wZu2N((K@TXhI-L zV-qrkX>k-EEV|#M33PMz^;c7Z58XvqDHVODwPwp)`W0?AII{Mj_@9kZXqOY$g#vkC(TUfadR_0M(q z-~4*!2T~zJ<^DTgPpo3~J?yw*yIJ$U61>S!xXxElM0AkR6qIk2QJR|}7l_%-#S0N| zCXw+Br`JDB)@X0zSL*8Vugx46G(Waw%Y(n${OA-HZc0hwwy-);QTEGw`N|O}t%MUx%6X^d$6vD8w7;3V0*nLWlgt@f#6NX+;#BQK@y3Q*!_*OYP2Jm+o(5hk8KZ~_ zeNsJkVJ)69-|AI|!RTnY8^%QNzKuSWdM3O3dSZ?e5Zij%Ybfq z|H#^K)aGJ@{#lN^f|SB$`U@x-e?l)D`!z}8-W?qIYCAVpDh1L~DWjmU-Mq6hn6hxu z$~M!0shXO6wPySxrRiNbX}&6_WuGOb2N2Nw=lRdf;IzlwnntaD`{xYT3=9lwWy4;i zAMyA+ZXa8yn?!q=G!tNYo97e7LKvF$)1?4Pn`b3EN%?UohN!V@rK z*0!CN^ZZ};T*njUXv5EiEZHiElq^1*@s`7oqA)6RyRpyT;!F7qX%k%Tbb_d;fQa<;pmc#wyHOZEg(0KWFCO(bMxlr2iS29f6FU8vcIOJgF?5Wq zv+fBXLucK{^Q?R&43%4hfh5aCHu}rZ?0R!5< z8@RW8YeQHf=&7XUpN!3zi<%oX+dF>$zB7r%RQqZ$iSXjE@v0-qxk=_jVD^Zj0t_>%fM_u!X;WJzx4PBPna}V)PC$KMUu?GQ*=DT&{*=Pa zzs+0yw9;|z;<6z71DxS5lk>C_fa))IzsXHyc7h{w%6V|0U?W~NK&uNS85Bmmx&_7# zJQ2W^8*Nu`e>#qDP=n}d=zgMhdSsU)fop+Vg*DD!>)c)7LVodin1Dh&ux1AV+C{Rl zp#eI#(?D3AJ`jjcf8J-3l$ZNRO=4b6;XI(?NhQU*9@jQ$87YMp$w9K*GUv1P;v1nB zVQ){NfI#GjJY-5iI1>j#iN<2+bGBCTV?StwqxL_^`f}$QOefVT@^LTx|iPUq~jbdQJ{zKOb6snbI z5P%{EL&j==xd0B(SaG-TgM!LK$4{)CKC(P{s*2%E%9`pMiLt`cwQb-2 zI#juRq6H`9{t2N;`sqvb2vh!XN}t9J+QoQGE2W6q18)u*L_Dt)W)csHR^ zWJan3RXNY3+sdy_%^>Fuj41L6XYExV`H1|^XZ8&MLIegIORG&Psa_A{=dw#w4#q!M z*0m&jVrQRvA?wA}N5oLC{3j0~{^NNzc?pyzmrF|tbUUFj^xVxTd^R)t>Z4ypxa;qd z9U+%$3+B*gcVEfdiE|)JZ~$JZ4o1;Hy^)N5axn+;0uNaAwq2c5Q5HF|E;~p?(Gr2| z&z4>mFOd5q!ER=%0+v$Fbem!OD*kviJ$dn*GcTDc7>jG*{`np6FavW$>$QC0+c%0z zElu#?*Ak%r56!65FXu-VpH*+AYi>n;@Ax*SNXKa{jxrWH?fyh_#Mnex+IT(72|%ki zEmvWWuHq|M_>em3T3jJD_*A`=1ZjYdW-bON{2oHdlTc$Bg-{a?BUz3_d+wKw%KINp zDEM8^8ayn{Q8?dV^FN$bxK7Lwac!|Hdn45$JP`ZNix5p6VO&|QE%?=GL`o>WKy*kW zV#!ycvTROFP;*Tg3{et7X5KbAr!}02Ja6G*%qKQJmCD9ez*msWoYq2%{hmrdaDj+G z*_f^9;;b@4q=efh^7*bWW(rYbCum(~m{8>KpLk{S_ezPu@<_soqS9^W<%wWIQcSWKp$=8Y-t8 z?Ac#fSh$jDG)P%9_1m8yxH?7Y8gL;HK{$3hI<%swC8gpKk5`|{-nRMr!;_IV61Hxb zW_3o7wV%y-RtuZY-kuC*FURL#;LES!#FHlGDH1h_CpOPwO<6nMkBM4R-{lCY<#YO_ zucS{T8d#2pyS{yEbc>)J(kq>q&rLS4z zMQSKMS0_WaL9Fxx?uP#dLTj5(6X(TosOxoiTh~hD{~+M$dXKH^9H;1*%IwSQdR~@F zVnq9FBB!cGT4P6~a`KeG=88a7QBrO&2fS(8`*iFr^EO*+GJDWMQFz#UCisZZgKCTyr^nZJ&Zhbf zySn;Q={Snocj$zHusGuag?~J8RYPV2)rHy2T0Hm?d&QVBlQ%Tg$HyE29B3;5mo8c- z0QNp8U4w!{q?(q%G4aSdvrz$f{s)NT`}if(ekd8GPt_e~9x=m5+Y|Y&Lbv$PTj6FR zEZ`UP|+H#Zj~j2;{Ukb(|@x1g2HkGO4an$IV|fP zW>jS#pfjMc(%fB*gzI(sIs-7;wf4^^2Ei%_%ycr4mUnax% z>i4+mm-UQg*kmxNW=Zf6N1SLkol3WP04~__W!4klZHl}0h|&am=Os0~7Pf>tuc<=- zP^~ySW%;cEMh8HLLrW!AQ)xxild4@F{--jt-az*>9;;t-1MLSJTOa7_6Pekfa*^Z) zA9g;EGyjmQ)j14iJ?;PYf}1cl2dZ>V?5s%> z{e<jK5{c4qTS8lSNZ$cwc+~CFCBsXi;v?`L_a2l8zog4|$!_z!-pJc* zo~kmvbym2dRes&Q>n!i{Z$2m}s1?#}^x^ZY^VQ6`@pcM-u@t!UoqTnLl`t`n6-soP z`*TFW?l**U_*5%D`r;(}Y%r>5+zyRyapc<;-Dn*-eDG_w<=i8-b-HHv01N8xMuI6< zJP-D|c0Z+*y=(JYW#RPoWw|ZD+dN*P&9j>>(@O(<4o=!g*MU&V);oig@6w|jXmwV4{5lmzM~8Z}#ml5-ot zkeFDX*|!)Q!qD0wwZi`zBnLd&0UN zdMx^H{_uHX5wvYrRY(RxRxaJ|w%{h8zZz07*uQ$-YZP1UD|(d2`Vnbu&{P{&xt@NK zXE!Q%S#Zc&eIy)ko~on?{bTti;MTVjDA1<$(HEy@;AH0nb7@KSB?ACa2uF2Xr`H9#5L?J<0IW+#S^jg4iK^ZWFwBE3>d-YXyP!8Z3W$a47hUGF0j zAspK9X5>B#%OxS_iV={Rndx(W89@G#g&5UVJaB9jL82z~{Sj|x7c$X5_@c@G6gnUF&6D83)#qX~hMbX5?>G3fbv zOKVG2RZB}gkNwR-sXi_0zWJ^PB6S4qNyXn^4}07E=3{4t>kiWhHnYp?1>EG;Cc|rC zYR_C0{A6ctmv;!MPVHAaGR2#`^&0kDwxYah`Tdu)@h^7e#G+L~u$_6j>)q!O-c9nb|&22awqC`@53Ti1Mp?z>9XL=olO3Y#%Z=xDJ@0DojXu@18l09L zAwt%s>AsrntkHTHh(b(ni-7lxc4kA?mw9w6b+2VE`EZ|OVFa!(<0iRE3f?%?Ma4vezE}}K& zu=ZwBN_jVyAEFra?TXrnRK~m`+w||pRSYDI!4mKJqj0}XuCh)JzuSaeQ)xq`9}8*a z#Xf9`5c;yj9-(g98i+%qE2bPOHgwycmp=leI%-Qy@M&yixXk;X26-&r{Jq+D1Ov49 zChbvXQ2mZ{iOc4XM%8>^=)O96xPF;R*kNJyd~sjqq~{$#oE71%bk?x7?i-YAS!&bR zBc@%sAjvgzwU3ZMcxB{{!MRP_O zh$<(aFvud3w0-^j>$@~FRrRg0y~c^?kTG`egK4@;DNv&9G)+*%lu z*z_bfdcebQ!Zd8NTUOz|f=s{)zBW^}EDT2;U>FS6FjqBbWtb2<+GEifb8YfD_%m=a zW%@ARn66@Kvt&Fn&-3W-7`O16V9f0d%pd8VomN!Na>4PY2_A=cQ2WNE@xzYK zS=$8sB4|+78}{#`snElz1(YI(N<2FY8IidP7Kh;M?1X=B_(yjaw8Z&|n+h&0gs2fh zkYHgJBtU527ZU0PF-K6KcyB?tc4EU2C;7HudX$0IQ`yfo67RD}-D&T3QQ!Q|=}ay= z(3DT}ddVgvtDL&?i?7ZV>o z?L8(jpeIr#$mdr_*Y`K>p^!KgoFZANcoOR&flTON`sg_gMdv4H8BZ0-1#dP9E;-=& ze-B1ohf~5j?3Ajwo&s9F-lN~VXHj#HA{bB~goCCp#t{~XV9Zh zbMD_~d!(&B{tv=CmE`^*%IyWrfkpk1g;uLy1>K+g#+|ma?TV_=r>1l&x_rs+%KH+3 zrlOcdfPKrdqjhJOdY$2rT(uuyC>1>_eRNI06F~ZP!5c1Wm$2rQy;g!=#uz3Gj*L#C zkB=J{GX*1RUwVh;_@C7=^r;<2j(4fWrq}+|+;AUYp@Xc#0qz(I8GugGk$U85HsOJJ zPWaRm@6mOwka@}%5jv}h`qNE%ZIO*wV z2{-a6`5iWC<;l6nL~^n#S@7g5Z9II5lo7pW%&@{M1fPsbwbV%8=zgKyR)R6hE@&F# z0*~nvP)0JUPWn2a;9R04p$8v@P`tKgF_w2|Qhzc1_~CHI{Ok|IqjZC(M4Gs(0{|eH z2!?{eR6wL4GMYQmqw@d0oi*Dbnf=gj#vJNfRUHWx=8`g@7ywTNg-u`@@Q znQ!vFF!T1%OE!VDlCVdGYi8exzh>@N^>6wprpM8_InfSw#HihIK*fL&JTbZM4BGcRfJ0tUdBfo?hz_+Q8CUQK*@ zR^qA_)U_=wEp84Hj4OlYzqY-PnKi6J7=A)oO0Flsix>$5d) z8=G+PMW5s2fx6|Q@@^997}*TeqYx{@pOtA^s*Sr_WWj?yqbiSA!IZ-BGhcKSXMdB zTxlU$#jM-~m`Y0DJ%E}2utcq;rM2xf^NtD#d}~f#N*>HRQ4E8a94lA-Jiz9C+A+u0 zP({K$!G%b$@+WRmzJLHjY+7}6e8Ya%3HB2xsehC;T!r3N$wDKK!BBDuj|~) zLA|Nt?b*gf@07+XBb_iw7NA#uK7gI1z#qQ}FT0lcX!!5hv$k=u*s60PYB{{>x8@2&Y!FfsV-ATSW z>qKUNjyB}UHNj+PwGn7)mcfYFrU)?I$5F^}jYw9Tz=zck?;gy1X=YXnQ>St!SNa@V49y$`cU??Mu8o z*`CFD?kA3ZwA#EE70#g!kF#QoH@_{PLp&beO#D?;+rz^nHYW$>pwjKV=*f_H!V%m( z{c|RdN7w8&zNBv zw5_n8;aqw}CYD;_mKplpV4I>%aoB*8uI~_n98s1qfU9nVD^5gYgsMWK?}{(Qjm($Z z0u#&1$l}M=zdb+fZHT7MNEab4V4TIeA+I|7vzEPuR)Z`#=ou-xklS`UjG5NT-K$ z8}#@IhccZ}%#Ib8v;b0x-%nc<5|B`sB!z`i#+mPmPAeA&MD{f`@r71X+)$F1st_<8 zzws1z%>rxnZGWbeTq=o4(r^K>j1+ay43ZFE?e!Pg$v?%QZ|Fm4Uy!SsgJ?hC$iGz? zN9WdW{U{Z02L4ybM5vs(%V}lh>}^wDQ+Lt%Fr3%Dc9*esH>l)y4v0A%>}*kYuVkxm zv{Ds6nwXcDFgFre-rpZoxVyOxsX012Ry8&KGFz}#YfZ_rKURR>$i>;(*>M^lTEO9O z;S5E=k&rr`*+qs*8$@QfJ}fEO8G|CE-S^Q_;Md{d;WGTDuOXT$GcyZ*cI`U}$ee+s z(zexVGLdG+>^mYE#=L{QEyZCw&*+71y8kuY!25LYHx9LEQ{!Xa$LOrM3E>E;EAIq? z6ZpkzTq^}%yjOHwA6FyORPYqM%M|}%q<{iINDT_ki+h%Hm2;Nw=-M9g!)`@#>I7t= z8$^~lw0nZTIB*8-pwM$xN;bl&Aa5;;w^bijf#!ue2VG4%~IKgU^xZ-9mIGV4M z8S2$E#+3jBh1kS2a#4cBj6Md-8z{r@til%m-}ul!DrktSX+l8OX5Un<5spY<6DcO} zW3Kso*AdHmn(%Hrin$dMRdBXN#u35zJ6qec3g4(ujGbt$0CzbxwKg_3wzlfdC90HIk)@Tq{fr(XtCbcr5f*_%7xeJZ zpx^4D%%-8OGfC5h7zdG?`CvCB~RC1*yPb89DBl2Cli6XzG(&gSMoYzrFpheQcLFg z`V;mvxqyi{Jxwq-Wly!wg7}HkE7bjPXy)kB!3TezAwpz2zdLaL-)htn-p^!Qz95b- zMrSm-M~?rT<9RUXnirc2%~4AMd3PLS zHZ7oxp92X|+QNW7koT7Y9=_E-X{pra;vud^R{>I(y7LYRZB0H8ILXy6jyq|$eKavq z1CqEp%{%Ui^mJVRX~Pfpe0XI4!ZHaXXdHSQ<423NTgh%`va|0}Qm0=rCl}ZHbiIT_ zC3Jhc70qW(?y3yQ6Ot3`4HrYqW%|LHzvSIR{$kH%3vzLx)R*}(k0x&1OOaP0D{D9Z z4poo-FM%GY2@};x3Cfv%Gpe-DY}q1br3_PCNr7w-QU7E8fD|D0o(O~CtUU7CmI~6J&0#wpxJcs5COXn9<6|8sP`_HX-G(e_swoAjro>K6LbHT zqwzbzc3n1VVXp)$9Rh&FkUZR5t@)?@PC#%F35pX)CX>Od(2X7{gWbvFy8P}P+isf` z;5JchIlbZoY)m*~V`IMP@qdn3>=p$WLZFL1E^mn?Kxj>u{37=|;)Q(YYHzB{S zAN!i>Z$305|D9X%lGiA-bS3sWH0ZPW8Zkp0M1(>);DOh=;oJ<&GmDEp)7&}5zG=LD zSOe2xwuYy6aU^hoVUvMMQK6SFy*MXcMSDNBu?CRDmKyOFrIA3-)*^w;&2{r~5Vjfp z;eMOF*LKL-d287T*0YJTlxqTLxP3`AxISN#%%sJL2um~}*+K4IfpCuZ5?>O)B~od_ zH5U+0t5h-=NUY$On!tydkiv6?DQ@k9P+mD>6d=2572an_MZOmk>0sHy*EoNlkSn`K z;1F2!`%@#TH+DZqVs@fsl*&Z?62-usnnOj7Vz|_2=Bf6>1HH|L;$Jv5u@1TF&Gqr) z3!z?)1O==HLJot)7t`#Nrdo41Yu)_xU~Ich3LKSHLURhS8p4ZMEq=RW#+#!ZLUz z=#7jgb;Bu4|L5L8o%sRbme~ch1;g!lDD&Hb#faxQNm^f`4ly!usZBS7a*A0u|8eq& zoB`>EK{xS6ZiSnh8}YZ_qT(P4+Y=KL)@pk__V%`RBfN>TcBsl9_pt2JkCL%u9$!l~ zP>p`-jLh*zKr*9r{{}Cm;_+MFlnx;l{EJ(`Xx2YS*p>2oPB_9waF%vM3vCWvY-!== zFQj0+J+Cy3ka6S_Whq?dO(slq3G@-rH@AC4-Nrh2T6T$8Q*~y=&ff*Xf+=1%LLBrW zCWWusHVEICiew}3^2V8{=b0mm;KT;gP-s5BO^Sw{=uC=v=Ux!|umGY~APR`C#zZUW zquSN!>Dl%1sD}WGf@y74k_~!J*}f+qLS4bz-^K+df&-vZ2wxgwvrcOV5r3 z3gf_yk-(}d3KiF!e=lz-WMzUy!%S;#ii@4YsgA%Qu@}GHvi_*{LP=uj`HzWe->X;5 z{}tbHt^dz*9sBP{Pm^q=ZpNem0p(=AG=00Q8Ly}ly)PHGBtu;%CY$)tP|tS+JyUetUqWucQ#K%`DVLB?XnLs$Fyz)`&~BQk2MtzKHq z8jFa_&(>cv(ZBX^`E;|^o?`HP`%zTH=Nvg;Qt0B@{6phXsqWp$cyGA@UT`UrOkZcr z!61734QyD#^i_uaTO8l1F=ldjUC!<`y3^Ag!cWSxOWR9j9l*(swm4lQoK)X^b69n) zJVA&#BDIlvGg>~{6oM$%y2W}SkY}QYb))trm^CDC!!JQ?cNiMESCL%!`9hjG!&WIS8US!i^UjxWu5 zV=j`#$nd5hEO&fhYuf8XNlD3fD`F-LBvm%KIkrIS#e)W5lL@;O}{a0C>{L2@{p)8pl9lhD`R zQXZcDY{iERaOc{}dWKS%p9Cz}?X=w?2Lx%gmT| z)l2U6f?wCo@s7DLAkLIDYO>Y;Zn28XUo1lkzZe`)JdaILuKxvpc=pcneVO~uhPq8G zs-sbW9;a>;AbLdyf}?mR3gK8Zwi8cI|7`iS<$NdI^tt;M>>|@FnxkSz{rxtd=30cj zQvEXet+fQ;F8z0UdfG4ge1=BtvmQLGIC3@^ds`{E)aw2)>f!wgH1WM0yWqX@WXY{T zG54YCRvpH#s{PQ}R50zeiOC05g8~NcN=!|cE65>BbE1usAj#>_K3$$-@Y%myuUNMcWSGm9 z^bfYOlAR=QA#zHmf^i88w31AVY2qe+$%U8rTtD`_nYc3*UDr$QSILb~8d{YflLY}ST5g;qWNesL8fl4`GfkAI5M zzck=8d6LTC;eM?4|-qE8&q%srvi*~sD(`X zd22volJ}$Uihjx5`B{6n9j1Qt{%aVS8+jg;^;dL6+K_d4WwgNQ5OZzy>yqSGY1%Wt zdE5mtq&~-mwD?#yZc--}UY|wju5hbmBCW3JnJ(KV<-I8Q-xIU1hGU3L+pO zk1Vw|Opoeww_oAp6%`czm<`WZfy4FkY6FxKRu>mO%&*PSZzry;u5gCBc6wt&2UyL% z+7N!-aj?Ey#o03}d~v7&*HNl|8@qW<*~v_XH2=gZZiI3Z&brFu2*aKjfxe~wcm-3Kl(r5)(IgoA)gZy$Z{I`}u@sbSBwwF<@(s#k(9rHEA3iX z14`bd;X$u|3cQ*omS}f!)hl))8ponz>cI=(l#iv!1IK{qnZ#-HHN!)?o`0OMhRh2b za7K!Yeb5G*#{`JsA-LconxYcYy5bs%p`KxNd=?8zC!x=f7MChTAAs)FIe^gvlo!b) z!RB9H)3vLvk+0B`nA&4aOEsXxYN``~HXTC(FqDnIhp42Y6R5CmeL)OFkq%Ok$;Sx5lE{xWrY6@MOa7%0Q|p{lE?+7msMF%m?)zfs zaB|oy9hdLjf+iOyD(JT%`Jv^5=!bcN)7iqC)z<$C{t>@xh#A@4a2o0xfC{Gj0@~!U z%CIfh>MF^SvOIn~qh}Lya`N!HPn_vHr+LOGx&Rvbm~TEokg9Uc=0~K%bc~Mr-&PNp zAo)7dS~^yWHu@U9JR$ z0>iAf0>pG^k@#ZfpOaP0sL~jY8_sI;3wFdu8e}t!zMy(oc}vyj_PiX|+~Jux_~(Al zOa@G8PV4WUNm729;CVSiEGekeoy*tVCPuaJ3N0y`8oAU$v!jweG;!GLw@5|MTHe8C zE9kFY7E~3*Se0xnnFv}Chh}L^0#`OiK!8dSK@6f4I%22boW}`mrNc6WI*_Z{#YEvH#lg1^YY&Hay$jK8 zkNeH6{4)r}#){R4hqoSj>M}a$MVbni5V7sy61Gy;DoD_Js*pn5GzsR^$nt8&I|nE_I0(mrw2^qBBuTx-c9sVx8CdxZuEvvp=J4$ zmHj6j3uL0)me-jM30O?+Da_<=6i}Mle&mwlvQbdunYFf=+IFH^!o;tpM-aoXq6=oF_`oy~ND2BS1w2!6h1UvGd)#IxCORYqm1k{i!>(#?`m!bR2;SNy z%BVmhSlgD+E{BBwT|&uej7R38$n~Z2!D6v8ukj#Ii=Pn@=?kCHv2dBb1W0ho31M9n znix0Iq;WNk|$r(*JXUERNkWKjm1Kb-0* zH01ZZz1who6FK|4pYa6#a9!v$%8zPIwwHzf&To-2Uz!h4{h&NaOqCrMo z*ECbG>lVmKa-@{JjDj%y!_Sq#lFB!pmqbJpqbsPJ9b(ETC4gM3V`D|2=Myk752waz zeFCPB`#TG;5Pj;I2`4DrI+L+aTVEE4`Dw0(yR~$)%Ec@!ENm82 zQtUgz2=y*!E2AHcmyn+L6dFitbVeJ)+rt`|F(H@4*rlmPsPzh+Al|~;0YtZ^^w%6+ zLk9uR>@E6xXG0t@sno?VT$fQ&yK`l#R@UTCL?h?vo%GdQ1eEG$Ds!%SJln=RLl*=v zWRaBPL#6uYc9F7%utXgj!JrBAzwZ#Zvu$;BNf6PI-inbyl-op99*1o_bLSOUdcLI7 z!q6ioArTP~v~fRve&EFPMbGR-3XxU%h?z)hmspSZSC|C_8YUb3h2X2qY!LW~9RngE zapV>rixg^w?<&?FLL(p7c z18`Hs2)aB3?EhWaIy+Ui!1)K`AmTmM8)_@a(eiI2o;bx)ny?9FE&nl3$7q%!$b|A> zE~sVso^d!?|#j=_5Mel3RAE=UZHskF)(p!7!$%6m`(7o6IBVzB~I)V$im_ zrY;omsu@CO_W7%KIb{r$Lf_P&x(F$;wCD5YJpb-LGU))A1DV2GOLkh2OaT}iBSw(R zAXd-{^)SAsQ)VQm6Q>Cbn0K;9M>YbZN0gB;xy{8U@uLKCGfNAUf1=c|_<40BKG%kY z2?AG*v4*g1(^Dmw$Rl)qyt2MOsYL`25%vk9!HWE?=i^wRAP8VuAr!KyR(Ng`5=m890WYGg8g6MJ= z2U0-&1oX5Z1Qk{~F|m#a&mzd|?at?3rWm0J zbVz*eDF}_S%n4ggVv7bWaL}uK6D2@@dgx@{%Euvt(hmXY zhr@d}y1V1IrW!k&q4^L0WQP@MK_FXJ2ECezTjkbK_mh*QX zb+8ol-umF&kwWq=hqEmn9Y#9IHr=aYG;AV4hpkMo81A>Y`(ez2m0$icb2HM>P#~&| z(>WTIa{I1`6u5e}Y7FS|LC{AlcEbCbgcOW3ad52)#H_}V&F*f`wyIg(_!#H_a^L{j zPBsDIaPM6>aa-}{TnbdDPMStA!&WShz_bEfSABaij_i$_g}04^gM*2Q@JJrN9apV*Ss0i4WEtTXWFfv~{PT-suPugN7lbbx2pWwYExO0KPgcWA%g0 zvxYUliyC%zjXw~24Zc1|+W#*3UwwkAUg_IY`?YV=Tvw3A)AH{u0XLc!ZGMxwJWE{* z-1*x#!w7z#$J@bpMu95C3DO7(<=FhwlG>d1^$+i77lp?2Tv-C{Q4|`&Z3W}Y+bYOp-WVt zA}?g7Rrm!h_V-w3qU+V|<^IG)JmW{DHP79Q;9w-s?fphWmj9Ww-kkUc@@PO0q>#oi z_2>2U;v>u{P@l@z^Ku6I6#Y|WDlaC$PHBR?3<%iKHC&J2yPN5f;8t~OHs5kh+aan4 z65QD1yuw?|&&-+22()j_8K|=z&9r1LvU%hTv9WPGNyb6R7h8E2@r86Z~ zsSr8)mFBvJhWEcd19!IicR#U>e;d<3*L~6e)?nm*tQ?F;rfMs^-6TR@g`(2alb4m3 zo6es&Y-~xBw{oeX2I*?O0>jmU?#HHDZl0dMAhVi0%6WhO?3*S;!!i|R7MT12AL^LM z3myoN58(TVP`w#3)0%blz20n6sHMvTr}n+BvraGPRxq*FsIYd75v2aw^-w~3XvysL z)TJi{7o`gOawAn<`xt4qP&$39DD=DTTK*qE9Ncp`h;$)nYLh|}JrCoYj^M*?KGElI ze~P>mUCh#!g7i>*34unetfrpwJ+I#AHH}suiaumNio+ToSkuFeRjwEw>rfW_f4l@JnF&!N1i*#x3DOb#YBVMAXr z5N9K1kz`O(QQgy8_JZqI=xx_G6y~uiMZnZD$b?Cw|20=>SA;uNY3inD0M320g(An- zR!H*1X0CotUOqmp+QdI(8F|U0ZBspAusTd|-RvTh*jcCG@47_lo}(#7XC@98&?Z7KG)jwVBDx~aip~mt(3Gom#j}1j{A``<>gy*W z>gD9(GR{0$=`Pef4`#)Y`d#%< zv9N`>UV+~1_;4ysaes<{ewh1UI4y%Ke1E;s{^0+dZ{5gR(zB?XbYlC*{^;cS`Q*ty zb2q$qGg1)k=SOPNyuSEY#O0M$K!gR9GyNa?{U0s-uS~?2>q7|vhQ@?t0z|G(H$5{G z@muPSYu!#ELO=>WCH=E!CXTS>9=Bn1!Q~yH#w3oT(K4%MWIw#6C!@2?xR~7IjB8-b z=AZ%<(;hg}#B_5fzW1|L{a({t9`BVb@GHpEe{cCEh+Ak6rtHI59t4fUnK@3Zp-!QP z|A2}u|D%^(qTG(;J9*lAd2GLZXuoM$@Hl_|N&Oh_f3NhgJ*5+#bL0DF2kFxkHIDGj zs{G3B@o?MYFlwE@H7zpq*}8&mN!#3Xque^%KeH=fq(dq&=WW_>I7$e!Ts5G4;5(** zXlqH6dp=KiJG^>upcc_D-$^V@*|@y4t*vT;zgr}kB#`*P&+qAV`*(jM{>oaIH?)qI zXJ2z)=npsEL!~w`K$$zpdV1VDm2+$&DIl#6qr?SEnzj?bT)E}CxrA{^!zf&RO5wJ( zni7YG)8?seJbc|v5-}Z|>k_{GZZt+Q01^-Jp)XKI0vSU=k3mjRO2$f_L*Xl(JkaEh zGkCbH`3+bE9(PV3dw)51db6W%?e|2)nN{8Iq&Z{?d-EE+^S|KpzW{>Emsy9WS-}%{ zDSlevTe8=Z?7M>dgoN>%DD(}gx}HMdjM8YjTtwwUJ2lqeE(wfQ{qoIw+le%rw@Y+- z|1J}S>ZdX01p51N>M0EjWHh$U?cc9J7JUi`aM6*k^^NQ!5QsGS0L+F>g5p;sPP$$4 zT{0Wj)Re&wQ(?efO#UYAT8z7#SV4I%Je-*LH)Cmdjno39PCK57OzB*+TRmypx(+Xv zyUv%TM@Y#8Q(Kwf;A)YdFGHdFu1Ri-GSq}oUd6`7qL%0NPXK;hf((lMD?O?>_7eT_ z^n#p|TO_gFz-K}2e>t&qvv%*@einT8p|s?F#r@=Ae8fCW>Obtb{#+I?f5Z#krpua{ zk?wQ1O+1#F<+Vmr|N3)@7rdsX25^0nMkf#7?blcUa4BbJd=OE1uTxXR0wsJXDJssp z$RM|WTBGPXS4_{|yQL45f~4IP5?0y(51JeST_d@Gxj!$#Szi@}d?URU6Kylos$}mVau0d1ilpc)6y2 zVSKsrCv@$%0M@gC?*)%(d`?EUIOk$yOTeo7>yF8s)V6xE3VPmd%9%Qpr46C8Vjk8X z#?iOxX`fsc!6q=t_r(-(r}v6^L|qjP_HxMqo2c(VcQ8_lW6FkbI+6W*zXDhxwCypnSO$!`-YAgk zWq0>%tgm#_LQ<0pcwCG<1DWC{Jb+k-H-mPQi9A{+FIcc)Y;<&I7^rc4T)l7+5dQFC zesR_9(D)^EaHp^3r0oGdCi1YC7kv&}-~k~`%<;H|YWm;g(Dz`8T;|RW$GC`mz#{rl zH)}bGNp5IJ9rUW)XpJ=~d38oc**cPz02^8~;c>>kbv_=(bxFcT7lad3V`VAS%L_u38(G z?hF9;tV+N_^fn58Bn3rh;$j2ygFDEG6?3lO)%nboW>*{Dw6|ZBs6?Ok{U1Z?_B)>` z4F{)e1u{o~cqS?{6YpJ8a;cN+O{7l4F%{@^^?5XWs)@_RjZ^93G5*BYL75fM6|DKc z0FEX2f7qwT+mGcX?hW88GG5#|dPp`I#(>&RqFf zouQ+PkCTg&lb>6mGI6Hf5qsZ7ZplGMwxx{?i^9~O{l3{9TL%kwfedTNK3Qxyv{DQm zAtfDW9z`SczMnv%=s;VF?vwpkCz{@|s?U+D?*l7pH3A5VNg9a$-5AyEuNBb_iSu^H z>cjl_GM}qjd6uZCA`BSY61iYoUsLlF3Pjo^|Ja}Zv9~|p0ieWI8rXHc`^j4S3xI-d zeOhfv4u6$a0H{zM{QceC`KY5i$;6nFKbh6eY8%T}s9TQ*uAh8xVf8aP`k`E%BfFvr zk?+m4FA__KRwjcbzRfgWwkgY7NlFpSBQWK=`Ma3Z-uqQ1fpHgoJe^?=x_tM-Jk{UO z33}9A>-70@Fz^UVKYs{2dsT!MY~gffBpANxO8kfDD84ko?3qY0JBn}zq!&tARCJrYy~n`CnB|8Bn#k8s zQ%f=6j;WLMqYX|?+PBg8gmx`B*7bh2wbjUtj z@IRfZ^Xc!gXux){vb6X%Y;$nJXlsc2aeWSmA{RQTyxLpZ;rhG)ck;!+|9RJ6e{SY_ z=Wx#ds7Ca$TU4mA?uPwkoBHL#-;XoPz*Ni0`^Aupa*R0HTTpN!I%RBk&F|sJMJ%^)V3&1pme)qH%wu-40lXcP>0x z@u{ELbSqZiT#&Acsq-g?t5uhFh5fbIKnuPIa)aHXe~JTiC4?&C9?zRDCcO6(0Hss( zj{4=N=xs0{qkEYWeXuwv$yBJoeZ0P5VMj2YJbT8O({uRXP}Wb5`Q+NLyk?G5UFVq| z93I-`c?FdggUEhv+!*dfiCtYyS>>N!8?dvd`7{ZfCnGWL*eMyW1`6aR0WM+mN7Fye z%r++^#bpP>z0659fDhNv&99AlHneIzU$K`x?tFdRU^Oq*yZ3SYA&R`nAgO+*EEbu81M1^o7GDsJ zNFKLB4QsfbXmnH*Hcl2$(L;8=IbOjL^*IIBvd_x{u&AFO4AIl$!Q&)fFa`9I6&OM5 z8Teomg~z5_oeH1E_Q~-H9J>rwLRoU4T{-lZ-V*kP>%F^K2~(VQ9w99FW?oO^e9HW)ce7Mzm7p-7EssBePKo=v=L)s4wQ+fIp_rXG zc{iDSp@?lbk5LI2kfOm@Od0LGD`81dmNe758P498lFvWKQ@F?=W5i*~p)4-Jn~Hh{ zoIVciPuE&a_NnFsIovicoog>oD@X8`BZJ3qhxW&NSj)|7+s*98nd9K;;qC3=BY^I8 zT>u5#h>TruE5PbvD;ll-35|WsQ&xcym&bvLl9Snn`?eg7u|OmRMB83Mq_4Vssx)D9 zg5KWLA|8e?-;>}Q09UnZ;D7aJW8!@t{_b*(#aN%#v;Rw){~J1r)MmDK=fA1j1eexO z^Ri1W9Jv(V-R^{s`5(exe)^xT3Ey7QgPWWmvdd?!jI**RfKNSDJWo+S=S7R$Tc%o! zWr+gI?P&@a74tvqAT>FNgXf>^w>2}?u4kKNmWF&)oNs6qCpbjy8nZeOkgi_`Py5@F;5hg? z??M+XrrDEjHwJJ;TW>9E|26MuC@&UTX{)JyodFrbW@bU*7MXURvnWLL4D?61;DT@y z=z(ifqfnMPk;Jf+=t{bs!wH~tjo)QgwZ1spdvrRxyp=*H#~wD0%pYZEmjcTstHm=3 zt}M>x1HI>Dwb;n>l_&WAjtsg{bJH1+O|TM$!(cG5gqm7%ax(BI8^At+WMzI?{yCIH zhbw`TO?}kld);$==yIby%_f+oSd~GbI0(O}C|WF#h&d)z%-MiQw(&c-#xB5Jz+V~2 zC*544XN`X%jPTbg4C<<-e!zo4ad-^4-^MaURu&euS=9j-i0e_5VpM5ilP)V@(bYL= zyYOy*c>siz^NVZIJ_Ol3)+>0kF6=M?;H)UeLAdKLym5ICq75A$f1h^Kg( zK|2k^^ANz=MZ6d3#1V86B^*r=CD;n{Dd zRj%iJ^8B=5>wVvsmL+m~Y2p85W*!Fw8WVk}!omXVVU3BSD)?6bc34nQ&@23V2;Pt41iI(+|VE=Cl4c!0d@5n#}3v047F?nqiti>tYyPB9BvB-sWPV~&h_b1L z6IavP!Id-~*qUW|m(S;~oc7iYbc*hom2+Ppu4hIR;If9fI~DrM+qop|n)c*Qjy|SC zyf94~4%ExG)O;)R0kC*cq+A38Mpbndt{TWOk~OI}J`dPsE^2&hESBWtzhr8q*5?$SHqSQ~F5+DhfH2%vXpvyF8o-l3^hsNV_N>_b z(_k#sAnBm#tZm=ET_g7%-+-!%ntvmZ1`ZRbtc^{=wpdrT8gp3?aZmO@SvYf-&bVAM zC&QTYuJs8JWo!ci|I@*Vv$HCdoz2ZI9+AOG_f_AUhxW4rYX9qfTmOcKjb}L={Vjvj ze|7El_loyz*LzCqy!kRxRo+o5m{8-+-kB&oj1QnZ2JrWg$%17M1w-zMm$5}}-cLyo z4dY{~&9Lb^RW-Oqb&K}r=)KHeR3PNakla`s?k&b~F?y@VH;@)pMOSg@*-pe#zNSd0PsojjQB{$AyTr+R~X~m_Y>W|I}7MF-4 z46|SiIDez7FNIk5OH#flp^7L0(Oe8!`aE=vnMpVdpAFPJsX+E zXW!Jku&_vKZ(sbpe!982u;B+#|C{IPj|@5H7Z)+FMoO4d3$?C42iq(f^KO^WZG1`j zXm|~S_Ne2BDKpn!|NHmvKO&~+-K}HATuW=_=+JULC-ZqGEGj`|TS)NNpJvDDn%b2U ziKTQ(is`YaT$^$ec2a%fv<@Q@>^T8$BmiS z+yDUY1A~|Q%B7~pMvlJLhvSy^yR>$Gs%ZZkci`o>>)%;$`>s4^2?UNyC9HXa>}xXO zA(Z)<;o?qcAgVkE;kh8@GEtn-wjdZ}LDApI=238&pCBKXZ*aO;nGqMtydmGZ>(9*+|-C~z-J{g%kx(YZGIvEAyIKjU6Uwlj*}mC&k?L7-J-7qM`jEqoM6Caw76wfT71+i9aj*+zWfZ7uyS>oF@YMq?3`9ihL|Xfn!|@ z&b_CRBw3KFtd%6&i>|?K>Fs%AcEURbW^2lUSei|70yg>84iFTKeoGf1%ZoT^w=(S- z33a4EyImrI;p)aJRa8{(Us+a`;)0|-stmr$zqN@;n8XFotXi1aMJS5*J6;~{{XKd9 zgJT}Qd3nk-%xoo`1Fv$n+0?DLY2z$hI&y2V(wo~l1F8Y!pvC%kVY#fIOjOa0G&G2R z|NL1qD4mfk-(zit+o>sa=*mkrCt%D&qN?WW>zgqa-ne9=y@r@?)sH_{S2K&3%LqqJQ`QbZEP~A6>nE5WPE#k6vYGGsg{ZKYe(4%o4ue3(lLWq4quJ zKHBqRmv8YU|EQEHM2h`0emMNW9Vj>)w>Y$(^;JCot3cemzOKLdl4LfJZ58sc8-pbhM*?m^|BF z2&(>4t(V*KYUp*qhZ9i1m)1%N0%XF4s5;lWm^AID52g4ILl|;4SMyg78bY^H_V zy=X4Y^XoHCR8+|imfftw6aVuG#+OUc=b5u_1hv#t`6dy?2iJ#(WmmuognnTGnWBoJ z$dE?Vl=!$gQMe28hH4oxDt@N$+*uTqA&Kq>9J}H@7gIG)@p%{h?{lTGo1o*%K z!Vn}Rdovp&lGCW0(8&c+9Qhh%BPG=%n8!3JPhY!sA>D(L_cniAE6}l_U!Jh8 z!ukXSKi)DeV7A8dERWj%Tdlu}`Ca^zMQByB##{|6&cb$BCSf(RjoqoGLB|wkhO?R0 zsKxs=UQCFDYFAh%3BH!pmqi%`wTI@&Ev92>Z5{iJn^k&4V>Q#I*%^f`<7g;yO5xz+ z=HdNjYcN+@`irT+-R*HX(T@GL@0US6|YiJ9Dw(DNG?(iuiodN|G=B!l=pm zXaklvgz+etz$l~pfym2|0(c|>UR4Y=@m9O)AqgjA25ciLu~V_5e4lAPPy9YxcY-?d z`IFxK_bdSrsspA3N~a^?7nXuVhNDHdoQJmSOm^whD-*(P1FywT3-|3exVG1Z7%1q7 zufQFK95i%z-xSEFStDj+)${DDTR4}ONqE#~SM40^?Cl~FRM61S)Mj+`$3*-t?`q;} zN?hZuGUs|HCgkuwW^P-HWb70~ws`+uIPR2P)H4R&n8d# zAA+D?VpZf>>=KD^+X+2mdv2{+FDBVXV4yQvMJaI*Dew*QXYq| zf!caziA0?1o_`FgpTQ{F35wsn29Bg;vVofgDx4c#@Bp9W}HR z`77jU8DO~%nyMsiV-9r?=VbOa z>PGznZ+7EJNGTJ%k;A*LAED^@bv5?qLgc|Ax$-x{Ju@i2j>%Z#TjM0kj^(b9G%l`=_EPfU^*C4eJ~;x zG(UkCl@MR#qxLh56WZ2OjLwdMX@9Vse`;U)Ts>o{>woFV)iUy=5g0tjVW3}4tGo5D z8Jp@@O>H|&&}9l&TNWft9H#y7)g$`I$fz+lCr7X{zuE-EAtx@v zP-Ix;7e2Qm7ZDS4?J1NvVvM#&I=w54zvrDIZ_0?OB4zR>fNi<2ukU*HsN2Fqd&!on z`j@JWV48W0Hy_-gv_u=u|33U8uq&o;zpoF~iahsG^e*uwCN2d8;-=vUer1(=kNLY@ zjjlbjw|lbrka~N()G;rqMbw-K!7Q)0&kg3zAXaoJ#9pPbOVNOxly56 z!YxA)O$d$g^Y_2vQau$ss| z=E!)(5}oS~i2&phyH8UG1X{1fLgi{XM;|(lzl|0+RtruoZ8+uB&iu0Zh0n zbNb##XIuTHDO9;SByGS(OY{9#cQU5GsMn<>ZyJjFXNvytWlw~0c)IgITnK&=vM#xV zkpnVlBe=^(qX$pZ{J7Kz$nL@ag=bPX#Dl;9=u93N7Wxx0GP)teYJ9yRNjy5pKdj zD0$lutrHW5FU3qWDZ8RV6Rr;NmUYE~!|7a&SyekP>brCQ#?+u4V-?Y6gEqN=- zV!p5dG;)~aav@<1yNoplrDr?WmL>p;@2BnV`rpmL4e4$6czcKOPeY}7xlEN0cu-ACiv5taEf?OvNFv+9Ah(A}WruIgzx~`6JF(-1?Q>)f4jaXVU zdWJdFXX41PZn_f>`as&~Gp~i3J+o9lwGW`rfFi2V$&Z=B_l|f)fG$Te6dCjDx6bCJM!#0|Vm zmz=fF`2dy3Dp9_QLplBd~iSYtL zT4T_3WxL*qCP;Phe9_jSGscM+^`QN-?)xng)mZEus4FM}^tUy^wUpFn*j2CQ1B@qt zhIty3qgGJ>S&^=LQ#R-r%mL1(3Agwl&_cp8wMGJWdr-Xp=PPS+hxXJREwbqE24aRAr7wKIZi2r*lK8sZ_MnUgxDm28l)sd@R8!OHFPG7c z+bvpFG<7Zx7fiW7$17T7nrW%?j`G_kI;bw)@O$s(wV@m}*)P@4(8=+I4x~vDUL87l z3H=%EomqW2li?;|Y(EWOgWzLGqy669;_QWQT>U22A%BV=e!B>zye*`Rx<^yG0gA`} zN7GpbH1+pUeDnmwfiy^oNSAbjjFOfCqY;o8DcuN&)DWbUmKGR2x{>Z~kS+mf>F54m zJon9B?{2?)zj4mzbg!GgR0f>vfU)jlFYEcVaEr@_4;`R2|0#hTNi0@*+3FO#mxD3H z)hy3!QOZi{8egc)U0q8`T-@UmaVquW@v$ZKPJS!5g<$K#$~m8CGl%c2il$Q$f2w!q z{xuCy_m8`gG{sFnY*Ugb#3LMQ5hc?Gm)A=fXV|lp6Ak&L``$vYx|=SpJ56uUrp2iM zE@LD!pdFHu>nWu$W?^*+B-JlPH z{Oo`{=ogPgE&i51LxwDIIp>iqCMo1yvyA;Tr7*T8ED@7WYf^2USy{8L_k{hjLT)>% za(o`dq`vJfHk4CsJ{Xo-+e34AaA25T{YGHQa*cJV&i_mOS9|VI%N!OSrPQ(RY0lLB zQ8g~mT379#XJ9++2qb2UFlvu!puY)pu_Qo8h>QP|tvH{1Az$vdqp(%1`+_bp-0N)> zD9X#^PNn?sp*ALn z{F?jEYEg37+PQ7MM>x-ZmvD+J&p(R+u$YKv@DbLI;firq$|T6&Wdc?Qfgj`;Ob*$h zO0HV->XtIZ>@GXAqU1O#@fXY9I_pCyyAO9))|oYG=&GuNd9h~~`bJq;Q)=Fl=^Nfj z3KiPFe(yJ+7F6IC7UIPV`^Clmr+rP74o)p&yZJ7dtQ7IZ6Q|D^q-h_&n{*h9R^Iv$HX=<{_?b&{nYG~*wL!`RFz1>qw zw^&!;BoT1tVtHEDdfq?1^>6nrR9^XIbAuyYpoh`ac@}-atGb3klY^y;Wz$2`EvvD8 zH`^eVh!O6X$JZiG@}_!z8M0&hZRrbRhv{cqhnm^0iY}WBho@zCiYrp}X)~Hq;@6?D zapjzbb8jL4i;dG6I;lTTe7xZz+m%ex(vpbgD2LqWmW-jGSWqYLWaR9t8wC&=X1w(H zio`d3Z zSYVeSgGLrwvSc$W+pyh}(Q1ptz9y#3n>dP{h8cUk%#~p?Mo&#`o|{S3HGSKFNiENd zNQik|+h>xV`51?N63s>{unF|DBfO1ZvOF?! zCYIk#<0xE)L)Oh8B*RS;yO5_od5J<=m7rj17A_gN6aidohxhNz%TThU@?<*q5g;vM zGY0z4Y=eU_%_2uY9xcajI4CD{nYg_9KjrhaxCXXF!^kw(qpG6y^AqKSxuNg`POx+#OcS-$t^(r|- z$({4M_#1DbJ-20_e|yt5v(rfHOnD)p23GvXjv_mb_R)64a3SfN>53qxrD-ni{^+Rl zsII7|8ewq~z9-pDLDnbPlr{0oyT{6+%{9~blRefmUG1CGhld+Q;o>24=k7e}5Bm=% zwE?@*Hw9grSEw1smdh@@?Vk)f)anJX&kx!SM{kd8#K9)a5%e{L1xfK8RuY$26$TVW9?9lT>~E zp=3s`u+0Whf+P!Z;tK!#$&BU^uAa;LT(k7GG}mQ5FofHvCL*LupTQRA&heMoch%w# z72zOOIJh(7GPu2cvQ;Kq50gn%l`cY_G$@ONfu~T7)Ye&x7-X5lrW&n@!~h(8vuFi# zQW}gWjP=$o$YSV8<+nj=_)?Nz{&388%awX=yzG&W7*3E#44MTqBHqSga@#Qyxjt^Z zKB!P(5qPlgSn&3m95PV3yu3I^hZGFrK#WHUdaGIOug4rX5k8h%u(U0~y|bLHia0M@ zoWnLt&AsEUId>Bpp`Ot_W%(##MGpPi9r1&;Cem-eXnqqtViQ?7u2Y*T?BZm--p*l| znwsDi9&P=TB(-}9J11Q2Y}MLy5=a9SaQSG792?{ws9bgS0=%NY1<1DUvq}LF1eSQ7 z-QIa6Gwvirv+XmppqVq%V7n??ZcnumB^$2*gPYEe@MMp6ld`?a(*5d%M^GMgF(%4a{M^fS{|_olf434S zk~-ASe&o>@{ze=j3sRU2;*`6t-xLJlB`jh=USWMUc}XZsZ}US3T4{hAIz1SftO$Co zQ{IMuMlR35Aj8Z6At#h(0rNwcz&|jFjH{SHb)c8uF&=%#5#TV2tO*O>e7&g6qh}?E zNAWl=mM;-x(o74d|<3KPtEb3--g`=56o^lkW-psd~iKk$eVZ1%nCFqKhV3*nM zFWO>D31-{1)=u`lJZw4t%Lp!5my&i>wEpZJ|5HCz1oz7yS<1Gjk;7F*F0Rk!90TkA z!#lBov6vXJSoN(IF@qUE9Fd3kJ8fjzwPCEd%qq4VQ3W^(+}Yzy+VA0QBkR9^|8$eb z-zly?r%qCn)FS<{o@Cd){lU>xD(UO7jC^P{JH}jZ$Tv7XXMiC~~x<)iBIPX}a$myM|yyx;I*Zvk6vG&EuB1&9e4SH=v}Wg?P=Y2Zp|| z^~fUTdMQbX&EGYu+%;g$L@U6s4ukdnM#)b*IT0x=*&JS)Px*?T+WiPSgs0`H8^%QHnqHf&7Q z-Ad25mx?f}n~Zpbr^~viPlkDnH0LmYUH#;v+M1dY^fa|R;g0n}&G3wEuWNE52n6