/*
 * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
 *
 * This file was generated by the dom/make_names.pl script.
 *
 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include "config.h"

#ifdef SKIP_STATIC_CONSTRUCTORS_ON_GCC
#define DOM_SVG_NAMES_HIDE_GLOBALS 1
#else
#define QNAME_DEFAULT_CONSTRUCTOR 1
#endif

#include "SVGNames.h"

#include <wtf/StaticConstructors.h>
namespace WebCore {

namespace SVGNames {

using namespace WebCore;

WEBCORE_EXPORT DEFINE_GLOBAL(AtomicString, svgNamespaceURI)

static const LChar aString8[] = "a";
static const LChar accent_heightString8[] = "accent-height";
static const LChar accumulateString8[] = "accumulate";
static const LChar additiveString8[] = "additive";
static const LChar alignment_baselineString8[] = "alignment-baseline";
static const LChar alphabeticString8[] = "alphabetic";
static const LChar altGlyphString8[] = "altGlyph";
static const LChar altGlyphDefString8[] = "altGlyphDef";
static const LChar altGlyphItemString8[] = "altGlyphItem";
static const LChar amplitudeString8[] = "amplitude";
static const LChar animateString8[] = "animate";
static const LChar animateColorString8[] = "animateColor";
static const LChar animateMotionString8[] = "animateMotion";
static const LChar animateTransformString8[] = "animateTransform";
static const LChar arabic_formString8[] = "arabic-form";
static const LChar ascentString8[] = "ascent";
static const LChar attributeNameString8[] = "attributeName";
static const LChar attributeTypeString8[] = "attributeType";
static const LChar azimuthString8[] = "azimuth";
static const LChar baseFrequencyString8[] = "baseFrequency";
static const LChar baseProfileString8[] = "baseProfile";
static const LChar baseline_shiftString8[] = "baseline-shift";
static const LChar bboxString8[] = "bbox";
static const LChar beginString8[] = "begin";
static const LChar biasString8[] = "bias";
static const LChar buffered_renderingString8[] = "buffered-rendering";
static const LChar byString8[] = "by";
static const LChar calcModeString8[] = "calcMode";
static const LChar cap_heightString8[] = "cap-height";
static const LChar circleString8[] = "circle";
static const LChar clipString8[] = "clip";
static const LChar clipPathString8[] = "clipPath";
static const LChar clipPathUnitsString8[] = "clipPathUnits";
static const LChar clip_pathString8[] = "clip-path";
static const LChar clip_ruleString8[] = "clip-rule";
static const LChar colorString8[] = "color";
static const LChar color_interpolationString8[] = "color-interpolation";
static const LChar color_interpolation_filtersString8[] = "color-interpolation-filters";
static const LChar color_profileString8[] = "color-profile";
static const LChar color_renderingString8[] = "color-rendering";
static const LChar contentScriptTypeString8[] = "contentScriptType";
static const LChar contentStyleTypeString8[] = "contentStyleType";
static const LChar cursorString8[] = "cursor";
static const LChar cxString8[] = "cx";
static const LChar cyString8[] = "cy";
static const LChar dString8[] = "d";
static const LChar defsString8[] = "defs";
static const LChar descString8[] = "desc";
static const LChar descentString8[] = "descent";
static const LChar diffuseConstantString8[] = "diffuseConstant";
static const LChar directionString8[] = "direction";
static const LChar displayString8[] = "display";
static const LChar divisorString8[] = "divisor";
static const LChar dominant_baselineString8[] = "dominant-baseline";
static const LChar durString8[] = "dur";
static const LChar dxString8[] = "dx";
static const LChar dyString8[] = "dy";
static const LChar edgeModeString8[] = "edgeMode";
static const LChar elevationString8[] = "elevation";
static const LChar ellipseString8[] = "ellipse";
static const LChar enable_backgroundString8[] = "enable-background";
static const LChar endString8[] = "end";
static const LChar exponentString8[] = "exponent";
static const LChar externalResourcesRequiredString8[] = "externalResourcesRequired";
static const LChar feBlendString8[] = "feBlend";
static const LChar feColorMatrixString8[] = "feColorMatrix";
static const LChar feComponentTransferString8[] = "feComponentTransfer";
static const LChar feCompositeString8[] = "feComposite";
static const LChar feConvolveMatrixString8[] = "feConvolveMatrix";
static const LChar feDiffuseLightingString8[] = "feDiffuseLighting";
static const LChar feDisplacementMapString8[] = "feDisplacementMap";
static const LChar feDistantLightString8[] = "feDistantLight";
static const LChar feDropShadowString8[] = "feDropShadow";
static const LChar feFloodString8[] = "feFlood";
static const LChar feFuncAString8[] = "feFuncA";
static const LChar feFuncBString8[] = "feFuncB";
static const LChar feFuncGString8[] = "feFuncG";
static const LChar feFuncRString8[] = "feFuncR";
static const LChar feGaussianBlurString8[] = "feGaussianBlur";
static const LChar feImageString8[] = "feImage";
static const LChar feMergeString8[] = "feMerge";
static const LChar feMergeNodeString8[] = "feMergeNode";
static const LChar feMorphologyString8[] = "feMorphology";
static const LChar feOffsetString8[] = "feOffset";
static const LChar fePointLightString8[] = "fePointLight";
static const LChar feSpecularLightingString8[] = "feSpecularLighting";
static const LChar feSpotLightString8[] = "feSpotLight";
static const LChar feTileString8[] = "feTile";
static const LChar feTurbulenceString8[] = "feTurbulence";
static const LChar fillString8[] = "fill";
static const LChar fill_opacityString8[] = "fill-opacity";
static const LChar fill_ruleString8[] = "fill-rule";
static const LChar filterString8[] = "filter";
static const LChar filterResString8[] = "filterRes";
static const LChar filterUnitsString8[] = "filterUnits";
static const LChar flood_colorString8[] = "flood-color";
static const LChar flood_opacityString8[] = "flood-opacity";
static const LChar fontString8[] = "font";
static const LChar font_faceString8[] = "font-face";
static const LChar font_face_formatString8[] = "font-face-format";
static const LChar font_face_nameString8[] = "font-face-name";
static const LChar font_face_srcString8[] = "font-face-src";
static const LChar font_face_uriString8[] = "font-face-uri";
static const LChar font_familyString8[] = "font-family";
static const LChar font_sizeString8[] = "font-size";
static const LChar font_size_adjustString8[] = "font-size-adjust";
static const LChar font_stretchString8[] = "font-stretch";
static const LChar font_styleString8[] = "font-style";
static const LChar font_variantString8[] = "font-variant";
static const LChar font_weightString8[] = "font-weight";
static const LChar foreignObjectString8[] = "foreignObject";
static const LChar formatString8[] = "format";
static const LChar frString8[] = "fr";
static const LChar fromString8[] = "from";
static const LChar fxString8[] = "fx";
static const LChar fyString8[] = "fy";
static const LChar gString8[] = "g";
static const LChar g1String8[] = "g1";
static const LChar g2String8[] = "g2";
static const LChar glyphString8[] = "glyph";
static const LChar glyphRefString8[] = "glyphRef";
static const LChar glyph_nameString8[] = "glyph-name";
static const LChar glyph_orientation_horizontalString8[] = "glyph-orientation-horizontal";
static const LChar glyph_orientation_verticalString8[] = "glyph-orientation-vertical";
static const LChar gradientTransformString8[] = "gradientTransform";
static const LChar gradientUnitsString8[] = "gradientUnits";
static const LChar hangingString8[] = "hanging";
static const LChar heightString8[] = "height";
static const LChar hkernString8[] = "hkern";
static const LChar horiz_adv_xString8[] = "horiz-adv-x";
static const LChar horiz_origin_xString8[] = "horiz-origin-x";
static const LChar horiz_origin_yString8[] = "horiz-origin-y";
static const LChar ideographicString8[] = "ideographic";
static const LChar imageString8[] = "image";
static const LChar image_renderingString8[] = "image-rendering";
static const LChar inString8[] = "in";
static const LChar in2String8[] = "in2";
static const LChar interceptString8[] = "intercept";
static const LChar kString8[] = "k";
static const LChar k1String8[] = "k1";
static const LChar k2String8[] = "k2";
static const LChar k3String8[] = "k3";
static const LChar k4String8[] = "k4";
static const LChar kernelMatrixString8[] = "kernelMatrix";
static const LChar kernelUnitLengthString8[] = "kernelUnitLength";
static const LChar kerningString8[] = "kerning";
static const LChar keyPointsString8[] = "keyPoints";
static const LChar keySplinesString8[] = "keySplines";
static const LChar keyTimesString8[] = "keyTimes";
static const LChar langString8[] = "lang";
static const LChar lengthAdjustString8[] = "lengthAdjust";
static const LChar letter_spacingString8[] = "letter-spacing";
static const LChar lighting_colorString8[] = "lighting-color";
static const LChar limitingConeAngleString8[] = "limitingConeAngle";
static const LChar lineString8[] = "line";
static const LChar linearGradientString8[] = "linearGradient";
static const LChar localString8[] = "local";
static const LChar markerString8[] = "marker";
static const LChar markerHeightString8[] = "markerHeight";
static const LChar markerUnitsString8[] = "markerUnits";
static const LChar markerWidthString8[] = "markerWidth";
static const LChar marker_endString8[] = "marker-end";
static const LChar marker_midString8[] = "marker-mid";
static const LChar marker_startString8[] = "marker-start";
static const LChar maskString8[] = "mask";
static const LChar maskContentUnitsString8[] = "maskContentUnits";
static const LChar maskUnitsString8[] = "maskUnits";
static const LChar mask_typeString8[] = "mask-type";
static const LChar mathematicalString8[] = "mathematical";
static const LChar maxString8[] = "max";
static const LChar mediaString8[] = "media";
static const LChar metadataString8[] = "metadata";
static const LChar methodString8[] = "method";
static const LChar minString8[] = "min";
static const LChar missing_glyphString8[] = "missing-glyph";
static const LChar modeString8[] = "mode";
static const LChar mpathString8[] = "mpath";
static const LChar nameString8[] = "name";
static const LChar numOctavesString8[] = "numOctaves";
static const LChar offsetString8[] = "offset";
static const LChar onbeginString8[] = "onbegin";
static const LChar onendString8[] = "onend";
static const LChar onzoomString8[] = "onzoom";
static const LChar opacityString8[] = "opacity";
static const LChar operatorString8[] = "operator";
static const LChar orderString8[] = "order";
static const LChar orientString8[] = "orient";
static const LChar orientationString8[] = "orientation";
static const LChar originString8[] = "origin";
static const LChar overflowString8[] = "overflow";
static const LChar overline_positionString8[] = "overline-position";
static const LChar overline_thicknessString8[] = "overline-thickness";
static const LChar paint_orderString8[] = "paint-order";
static const LChar panose_1String8[] = "panose-1";
static const LChar pathString8[] = "path";
static const LChar pathLengthString8[] = "pathLength";
static const LChar patternString8[] = "pattern";
static const LChar patternContentUnitsString8[] = "patternContentUnits";
static const LChar patternTransformString8[] = "patternTransform";
static const LChar patternUnitsString8[] = "patternUnits";
static const LChar pointer_eventsString8[] = "pointer-events";
static const LChar pointsString8[] = "points";
static const LChar pointsAtXString8[] = "pointsAtX";
static const LChar pointsAtYString8[] = "pointsAtY";
static const LChar pointsAtZString8[] = "pointsAtZ";
static const LChar polygonString8[] = "polygon";
static const LChar polylineString8[] = "polyline";
static const LChar preserveAlphaString8[] = "preserveAlpha";
static const LChar preserveAspectRatioString8[] = "preserveAspectRatio";
static const LChar primitiveUnitsString8[] = "primitiveUnits";
static const LChar rString8[] = "r";
static const LChar radialGradientString8[] = "radialGradient";
static const LChar radiusString8[] = "radius";
static const LChar rectString8[] = "rect";
static const LChar refXString8[] = "refX";
static const LChar refYString8[] = "refY";
static const LChar rendering_intentString8[] = "rendering-intent";
static const LChar repeatCountString8[] = "repeatCount";
static const LChar repeatDurString8[] = "repeatDur";
static const LChar requiredExtensionsString8[] = "requiredExtensions";
static const LChar requiredFeaturesString8[] = "requiredFeatures";
static const LChar restartString8[] = "restart";
static const LChar resultString8[] = "result";
static const LChar rotateString8[] = "rotate";
static const LChar rxString8[] = "rx";
static const LChar ryString8[] = "ry";
static const LChar scaleString8[] = "scale";
static const LChar scriptString8[] = "script";
static const LChar seedString8[] = "seed";
static const LChar setString8[] = "set";
static const LChar shape_renderingString8[] = "shape-rendering";
static const LChar slopeString8[] = "slope";
static const LChar spacingString8[] = "spacing";
static const LChar specularConstantString8[] = "specularConstant";
static const LChar specularExponentString8[] = "specularExponent";
static const LChar spreadMethodString8[] = "spreadMethod";
static const LChar startOffsetString8[] = "startOffset";
static const LChar stdDeviationString8[] = "stdDeviation";
static const LChar stemhString8[] = "stemh";
static const LChar stemvString8[] = "stemv";
static const LChar stitchTilesString8[] = "stitchTiles";
static const LChar stopString8[] = "stop";
static const LChar stop_colorString8[] = "stop-color";
static const LChar stop_opacityString8[] = "stop-opacity";
static const LChar strikethrough_positionString8[] = "strikethrough-position";
static const LChar strikethrough_thicknessString8[] = "strikethrough-thickness";
static const LChar strokeString8[] = "stroke";
static const LChar stroke_dasharrayString8[] = "stroke-dasharray";
static const LChar stroke_dashoffsetString8[] = "stroke-dashoffset";
static const LChar stroke_linecapString8[] = "stroke-linecap";
static const LChar stroke_linejoinString8[] = "stroke-linejoin";
static const LChar stroke_miterlimitString8[] = "stroke-miterlimit";
static const LChar stroke_opacityString8[] = "stroke-opacity";
static const LChar stroke_widthString8[] = "stroke-width";
static const LChar styleString8[] = "style";
static const LChar surfaceScaleString8[] = "surfaceScale";
static const LChar svgString8[] = "svg";
static const LChar switchString8[] = "switch";
static const LChar symbolString8[] = "symbol";
static const LChar systemLanguageString8[] = "systemLanguage";
static const LChar tableValuesString8[] = "tableValues";
static const LChar targetString8[] = "target";
static const LChar targetXString8[] = "targetX";
static const LChar targetYString8[] = "targetY";
static const LChar textString8[] = "text";
static const LChar textLengthString8[] = "textLength";
static const LChar textPathString8[] = "textPath";
static const LChar text_anchorString8[] = "text-anchor";
static const LChar text_decorationString8[] = "text-decoration";
static const LChar text_renderingString8[] = "text-rendering";
static const LChar titleString8[] = "title";
static const LChar toString8[] = "to";
static const LChar transformString8[] = "transform";
static const LChar transform_originString8[] = "transform-origin";
static const LChar trefString8[] = "tref";
static const LChar tspanString8[] = "tspan";
static const LChar typeString8[] = "type";
static const LChar u1String8[] = "u1";
static const LChar u2String8[] = "u2";
static const LChar underline_positionString8[] = "underline-position";
static const LChar underline_thicknessString8[] = "underline-thickness";
static const LChar unicodeString8[] = "unicode";
static const LChar unicode_bidiString8[] = "unicode-bidi";
static const LChar unicode_rangeString8[] = "unicode-range";
static const LChar units_per_emString8[] = "units-per-em";
static const LChar useString8[] = "use";
static const LChar v_alphabeticString8[] = "v-alphabetic";
static const LChar v_hangingString8[] = "v-hanging";
static const LChar v_ideographicString8[] = "v-ideographic";
static const LChar v_mathematicalString8[] = "v-mathematical";
static const LChar valuesString8[] = "values";
static const LChar vector_effectString8[] = "vector-effect";
static const LChar versionString8[] = "version";
static const LChar vert_adv_yString8[] = "vert-adv-y";
static const LChar vert_origin_xString8[] = "vert-origin-x";
static const LChar vert_origin_yString8[] = "vert-origin-y";
static const LChar viewString8[] = "view";
static const LChar viewBoxString8[] = "viewBox";
static const LChar viewTargetString8[] = "viewTarget";
static const LChar visibilityString8[] = "visibility";
static const LChar vkernString8[] = "vkern";
static const LChar widthString8[] = "width";
static const LChar widthsString8[] = "widths";
static const LChar word_spacingString8[] = "word-spacing";
static const LChar writing_modeString8[] = "writing-mode";
static const LChar xString8[] = "x";
static const LChar x1String8[] = "x1";
static const LChar x2String8[] = "x2";
static const LChar xChannelSelectorString8[] = "xChannelSelector";
static const LChar x_heightString8[] = "x-height";
static const LChar yString8[] = "y";
static const LChar y1String8[] = "y1";
static const LChar y2String8[] = "y2";
static const LChar yChannelSelectorString8[] = "yChannelSelector";
static const LChar zString8[] = "z";
static const LChar zoomAndPanString8[] = "zoomAndPan";

static StringImpl::StaticASCIILiteral aData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    aString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9778235 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral accent_heightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    accent_heightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7818218 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral accumulateData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    accumulateString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12470039 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral additiveData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    additiveString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2986601 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral alignment_baselineData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    18,
    alignment_baselineString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15363520 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral alphabeticData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    alphabeticString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5333598 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral altGlyphData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    altGlyphString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12570899 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral altGlyphDefData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    altGlyphDefString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5789627 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral altGlyphItemData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    altGlyphItemString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14093917 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral amplitudeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    amplitudeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4611145 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral animateData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    animateString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15142871 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral animateColorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    animateColorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8168430 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral animateMotionData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    animateMotionString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9626227 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral animateTransformData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    animateTransformString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8940358 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral arabic_formData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    arabic_formString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11127318 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral ascentData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    ascentString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10886646 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral attributeNameData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    attributeNameString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8469069 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral attributeTypeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    attributeTypeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4267467 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral azimuthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    azimuthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11445731 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral baseFrequencyData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    baseFrequencyString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5843500 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral baseProfileData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    baseProfileString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6136015 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral baseline_shiftData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    baseline_shiftString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (738627 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral bboxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    bboxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3471533 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral beginData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    beginString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12626174 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral biasData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    biasString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16339666 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral buffered_renderingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    18,
    buffered_renderingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (711842 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral byData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    byString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2718574 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral calcModeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    calcModeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13855136 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral cap_heightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    cap_heightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2435412 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral circleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    circleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1709685 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral clipData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    clipString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15009294 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral clipPathData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    clipPathString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4241194 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral clipPathUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    clipPathUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6700353 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral clip_pathData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    clip_pathString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15117952 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral clip_ruleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    clip_ruleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9308965 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral colorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    colorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2734929 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral color_interpolationData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    19,
    color_interpolationString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5191234 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral color_interpolation_filtersData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    27,
    color_interpolation_filtersString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10987393 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral color_profileData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    color_profileString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4796600 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral color_renderingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    15,
    color_renderingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10166753 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral contentScriptTypeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    contentScriptTypeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9315197 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral contentStyleTypeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    contentStyleTypeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7281851 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral cursorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    cursorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1987604 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral cxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    cxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4988833 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral cyData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    cyString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1446155 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral dData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    dString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2286069 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral defsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    defsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3666553 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral descData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    descString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8557401 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral descentData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    descentString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1127408 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral diffuseConstantData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    15,
    diffuseConstantString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2992919 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral directionData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    directionString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16092904 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral displayData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    displayString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16245385 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral divisorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    divisorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5380631 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral dominant_baselineData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    dominant_baselineString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8742937 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral durData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    durString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1381072 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral dxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    dxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4552890 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral dyData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    dyString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7600873 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral edgeModeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    edgeModeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8996806 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral elevationData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    elevationString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4496523 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral ellipseData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    ellipseString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15372068 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral enable_backgroundData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    enable_backgroundString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7604741 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral endData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    endString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1590106 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral exponentData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    exponentString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7735438 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral externalResourcesRequiredData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    25,
    externalResourcesRequiredString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6394625 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feBlendData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feBlendString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11501676 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feColorMatrixData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    feColorMatrixString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3169415 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feComponentTransferData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    19,
    feComponentTransferString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3518927 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feCompositeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    feCompositeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12541773 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feConvolveMatrixData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    feConvolveMatrixString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14493860 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feDiffuseLightingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    feDiffuseLightingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3352565 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feDisplacementMapData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    feDisplacementMapString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5905267 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feDistantLightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    feDistantLightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (747025 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feDropShadowData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    feDropShadowString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10767402 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feFloodData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feFloodString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6640775 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feFuncAData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feFuncAString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4019930 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feFuncBData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feFuncBString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15012662 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feFuncGData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feFuncGString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4786906 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feFuncRData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feFuncRString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (95219 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feGaussianBlurData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    feGaussianBlurString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11103364 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feImageData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feImageString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7842896 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feMergeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    feMergeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1453606 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feMergeNodeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    feMergeNodeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15500549 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feMorphologyData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    feMorphologyString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8041573 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feOffsetData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    feOffsetString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10253256 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fePointLightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    fePointLightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15054408 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feSpecularLightingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    18,
    feSpecularLightingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10866110 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feSpotLightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    feSpotLightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3344980 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feTileData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    feTileString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2220132 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral feTurbulenceData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    feTurbulenceString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14661844 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fillData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    fillString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14906492 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fill_opacityData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    fill_opacityString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1178205 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fill_ruleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    fill_ruleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11672563 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral filterData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    filterString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16731886 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral filterResData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    filterResString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9476320 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral filterUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    filterUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11167090 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral flood_colorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    flood_colorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9861123 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral flood_opacityData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    flood_opacityString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12898900 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fontData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    fontString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4588695 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_faceData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    font_faceString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12627022 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_face_formatData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    font_face_formatString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8465693 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_face_nameData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    font_face_nameString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4830233 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_face_srcData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    font_face_srcString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1094419 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_face_uriData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    font_face_uriString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10647832 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_familyData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    font_familyString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11614204 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_sizeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    font_sizeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3230817 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_size_adjustData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    font_size_adjustString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7342273 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_stretchData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    font_stretchString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8655366 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_styleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    font_styleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6471658 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_variantData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    font_variantString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7877027 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral font_weightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    font_weightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7792151 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral foreignObjectData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    foreignObjectString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15048399 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral formatData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    formatString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15152429 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral frData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    frString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9385464 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fromData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    fromString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16135834 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    fxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15324007 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral fyData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    fyString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15642507 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral gData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    gString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16436612 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral g1Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    g1String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11608154 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral g2Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    g2String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4017113 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral glyphData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    glyphString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7621275 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral glyphRefData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    glyphRefString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7998179 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral glyph_nameData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    glyph_nameString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16482391 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral glyph_orientation_horizontalData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    28,
    glyph_orientation_horizontalString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9213710 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral glyph_orientation_verticalData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    26,
    glyph_orientation_verticalString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5038937 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral gradientTransformData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    gradientTransformString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7347535 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral gradientUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    gradientUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1404814 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral hangingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    hangingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10850364 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral heightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    heightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6697833 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral hkernData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    hkernString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (954644 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral horiz_adv_xData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    horiz_adv_xString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5218312 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral horiz_origin_xData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    horiz_origin_xString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7598127 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral horiz_origin_yData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    horiz_origin_yString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14834332 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral ideographicData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    ideographicString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4061484 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral imageData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    imageString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10287573 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral image_renderingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    15,
    image_renderingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16430331 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral inData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    inString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5937979 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral in2Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    in2String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14108186 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral interceptData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    interceptString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1705558 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral kData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    kString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2339254 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral k1Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    k1String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6632531 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral k2Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    k2String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14802177 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral k3Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    k3String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5328286 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral k4Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    k4String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1699474 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral kernelMatrixData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    kernelMatrixString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12629737 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral kernelUnitLengthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    kernelUnitLengthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12011177 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral kerningData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    kerningString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15053061 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral keyPointsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    keyPointsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4334432 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral keySplinesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    keySplinesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14518292 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral keyTimesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    keyTimesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16684339 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral langData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    langString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3702417 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral lengthAdjustData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    lengthAdjustString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13438957 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral letter_spacingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    letter_spacingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15248365 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral lighting_colorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    lighting_colorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8113130 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral limitingConeAngleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    limitingConeAngleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1376504 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral lineData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    lineString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15272783 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral linearGradientData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    linearGradientString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1246858 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral localData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    localString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9423053 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral markerData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    markerString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15384222 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral markerHeightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    markerHeightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3243627 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral markerUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    markerUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (126910 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral markerWidthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    markerWidthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2347631 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral marker_endData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    marker_endString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5221081 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral marker_midData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    marker_midString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14289583 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral marker_startData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    marker_startString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (980150 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral maskData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    maskString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10325940 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral maskContentUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    maskContentUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6357138 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral maskUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    maskUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13353827 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral mask_typeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    mask_typeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1273039 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral mathematicalData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    mathematicalString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10197022 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral maxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    maxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3449166 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral mediaData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    mediaString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13905581 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral metadataData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    metadataString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2268346 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral methodData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    methodString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14679268 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral minData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    minString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2196278 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral missing_glyphData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    missing_glyphString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2873042 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral modeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    modeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13319651 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral mpathData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    mpathString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9277366 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral nameData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    nameString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8774809 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral numOctavesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    numOctavesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6742044 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral offsetData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    offsetString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1221606 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral onbeginData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    onbeginString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12049348 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral onendData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    onendString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (811239 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral onzoomData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    onzoomString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1226916 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral opacityData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    opacityString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12231101 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral operatorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    operatorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16379917 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral orderData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    orderString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15651464 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral orientData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    orientString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5635487 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral orientationData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    orientationString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10339552 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral originData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    originString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2361284 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral overflowData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    overflowString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13155215 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral overline_positionData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    overline_positionString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13556011 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral overline_thicknessData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    18,
    overline_thicknessString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16671138 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral paint_orderData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    paint_orderString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3304976 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral panose_1Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    panose_1String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (641618 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pathData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    pathString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14212236 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pathLengthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    pathLengthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (691978 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral patternData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    patternString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16283150 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral patternContentUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    19,
    patternContentUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3102758 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral patternTransformData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    patternTransformString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15581536 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral patternUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    patternUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12052704 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pointer_eventsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    pointer_eventsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9363889 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pointsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    pointsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12718235 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pointsAtXData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    pointsAtXString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16510410 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pointsAtYData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    pointsAtYString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10912372 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral pointsAtZData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    pointsAtZString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13666400 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral polygonData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    polygonString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1875665 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral polylineData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    polylineString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9966402 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral preserveAlphaData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    preserveAlphaString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16654065 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral preserveAspectRatioData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    19,
    preserveAspectRatioString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15032206 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral primitiveUnitsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    primitiveUnitsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12203325 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral rData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    rString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9755863 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral radialGradientData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    radialGradientString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4356263 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral radiusData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    radiusString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2794824 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral rectData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    rectString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15193729 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral refXData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    refXString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11984993 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral refYData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    refYString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14103698 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral rendering_intentData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    rendering_intentString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10528535 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral repeatCountData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    repeatCountString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10019402 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral repeatDurData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    repeatDurString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8664793 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral requiredExtensionsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    18,
    requiredExtensionsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4208057 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral requiredFeaturesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    requiredFeaturesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11389123 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral restartData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    restartString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2504772 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral resultData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    resultString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15954886 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral rotateData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    rotateString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16211843 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral rxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    rxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5132163 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral ryData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    ryString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14820197 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral scaleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    scaleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7900465 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral scriptData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    scriptString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7137273 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral seedData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    seedString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15054065 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral setData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    setString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7291079 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral shape_renderingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    15,
    shape_renderingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7310465 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral slopeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    slopeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8800286 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral spacingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    spacingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11396576 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral specularConstantData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    specularConstantString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15821133 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral specularExponentData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    specularExponentString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12340909 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral spreadMethodData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    spreadMethodString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7294005 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral startOffsetData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    startOffsetString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16206982 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stdDeviationData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    stdDeviationString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9412814 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stemhData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    stemhString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1638345 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stemvData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    stemvString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15263686 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stitchTilesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    stitchTilesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14130215 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stopData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    stopString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16220638 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stop_colorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    stop_colorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4601095 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stop_opacityData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    stop_opacityString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15542229 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral strikethrough_positionData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    22,
    strikethrough_positionString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14866568 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral strikethrough_thicknessData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    23,
    strikethrough_thicknessString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4458024 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral strokeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    strokeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13630306 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_dasharrayData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    stroke_dasharrayString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13918191 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_dashoffsetData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    stroke_dashoffsetString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12491343 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_linecapData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    stroke_linecapString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2304011 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_linejoinData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    15,
    stroke_linejoinString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14943542 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_miterlimitData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    17,
    stroke_miterlimitString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3565435 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_opacityData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    stroke_opacityString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16354193 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral stroke_widthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    stroke_widthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15643309 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral styleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    styleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10993676 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral surfaceScaleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    surfaceScaleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3931981 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral svgData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    svgString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8018441 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral switchData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    switchString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1240910 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral symbolData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    symbolString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9487027 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral systemLanguageData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    systemLanguageString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16769792 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral tableValuesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    tableValuesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3989232 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral targetData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    targetString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1752822 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral targetXData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    targetXString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15131166 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral targetYData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    targetYString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9495385 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral textData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    textString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2784654 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral textLengthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    textLengthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10317958 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral textPathData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    textPathString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14264041 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral text_anchorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    11,
    text_anchorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (10988461 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral text_decorationData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    15,
    text_decorationString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8931788 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral text_renderingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    text_renderingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (5473995 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral titleData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    titleString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (2337488 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral toData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    toString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8637605 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral transformData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    transformString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12016467 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral transform_originData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    transform_originString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11461635 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral trefData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    trefString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8244125 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral tspanData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    tspanString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1121562 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral typeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    typeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1916283 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral u1Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    u1String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8892538 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral u2Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    u2String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3297321 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral underline_positionData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    18,
    underline_positionString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16729143 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral underline_thicknessData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    19,
    underline_thicknessString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8311364 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral unicodeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    unicodeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12294694 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral unicode_bidiData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    unicode_bidiString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16168075 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral unicode_rangeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    unicode_rangeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8777099 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral units_per_emData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    units_per_emString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14229671 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral useData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    3,
    useString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1434542 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral v_alphabeticData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    v_alphabeticString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4753593 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral v_hangingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    9,
    v_hangingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6170815 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral v_ideographicData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    v_ideographicString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12768143 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral v_mathematicalData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    14,
    v_mathematicalString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6401279 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral valuesData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    valuesString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (6531200 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral vector_effectData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    vector_effectString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16211112 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral versionData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    versionString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (8128447 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral vert_adv_yData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    vert_adv_yString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12348807 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral vert_origin_xData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    vert_origin_xString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7838799 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral vert_origin_yData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    13,
    vert_origin_yString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (13566707 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral viewData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    4,
    viewString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9558954 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral viewBoxData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    7,
    viewBoxString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12063430 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral viewTargetData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    viewTargetString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7658893 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral visibilityData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    visibilityString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7049701 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral vkernData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    vkernString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1724419 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral widthData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    5,
    widthString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12902275 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral widthsData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    6,
    widthsString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12497930 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral word_spacingData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    word_spacingString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (965879 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral writing_modeData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    12,
    writing_modeString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (3659809 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral xData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    xString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (15484113 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral x1Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    x1String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9037550 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral x2Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    x2String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (14272341 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral xChannelSelectorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    xChannelSelectorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (11124924 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral x_heightData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    8,
    x_heightString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (7361931 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral yData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    yString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (4984204 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral y1Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    y1String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9285315 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral y2Data = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    2,
    y2String8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (1776935 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral yChannelSelectorData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    16,
    yChannelSelectorString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (12848041 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral zData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    1,
    zString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (9090206 << StringImpl::StaticASCIILiteral::s_hashShift)
};
static StringImpl::StaticASCIILiteral zoomAndPanData = {
    StringImpl::StaticASCIILiteral::s_initialRefCount,
    10,
    zoomAndPanString8,
    StringImpl::StaticASCIILiteral::s_initialFlags | (16695696 << StringImpl::StaticASCIILiteral::s_hashShift)
};

// Tags
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, aTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, altGlyphTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, altGlyphDefTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, altGlyphItemTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, animateTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, animateColorTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, animateMotionTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, animateTransformTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, circleTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, clipPathTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, color_profileTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, cursorTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, defsTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, descTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, ellipseTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feBlendTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feColorMatrixTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feComponentTransferTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feCompositeTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feConvolveMatrixTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feDiffuseLightingTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feDisplacementMapTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feDistantLightTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feDropShadowTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feFloodTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feFuncATag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feFuncBTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feFuncGTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feFuncRTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feGaussianBlurTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feImageTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feMergeTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feMergeNodeTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feMorphologyTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feOffsetTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, fePointLightTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feSpecularLightingTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feSpotLightTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feTileTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, feTurbulenceTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, filterTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, fontTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, font_faceTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, font_face_formatTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, font_face_nameTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, font_face_srcTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, font_face_uriTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, foreignObjectTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, gTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, glyphTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, glyphRefTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, hkernTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, imageTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, lineTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, linearGradientTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, markerTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, maskTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, metadataTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, missing_glyphTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, mpathTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, pathTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, patternTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, polygonTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, polylineTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, radialGradientTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, rectTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, scriptTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, setTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, stopTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, styleTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, svgTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, switchTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, symbolTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, textTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, textPathTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, titleTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, trefTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, tspanTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, useTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, viewTag)
WEBCORE_EXPORT DEFINE_GLOBAL(SVGQualifiedName, vkernTag)


const WebCore::SVGQualifiedName* const* getSVGTags()
{
    static const WebCore::SVGQualifiedName* const SVGTags[] = {
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&aTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&altGlyphTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&altGlyphDefTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&altGlyphItemTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&animateTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&animateColorTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&animateMotionTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&animateTransformTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&circleTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&clipPathTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&color_profileTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&cursorTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&defsTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&descTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&ellipseTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feBlendTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feColorMatrixTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feComponentTransferTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feCompositeTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feConvolveMatrixTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feDiffuseLightingTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feDisplacementMapTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feDistantLightTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feDropShadowTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feFloodTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feFuncATag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feFuncBTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feFuncGTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feFuncRTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feGaussianBlurTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feImageTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feMergeTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feMergeNodeTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feMorphologyTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feOffsetTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&fePointLightTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feSpecularLightingTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feSpotLightTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feTileTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&feTurbulenceTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&filterTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&fontTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&font_faceTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&font_face_formatTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&font_face_nameTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&font_face_srcTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&font_face_uriTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&foreignObjectTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&gTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&glyphTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&glyphRefTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&hkernTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&imageTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&lineTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&linearGradientTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&markerTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&maskTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&metadataTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&missing_glyphTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&mpathTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&pathTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&patternTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&polygonTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&polylineTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&radialGradientTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&rectTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&scriptTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&setTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&stopTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&styleTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&svgTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&switchTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&symbolTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&textTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&textPathTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&titleTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&trefTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&tspanTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&useTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&viewTag),
        reinterpret_cast<const WebCore::SVGQualifiedName*>(&vkernTag),
    };
    return SVGTags;
}

// Attributes
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, accent_heightAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, accumulateAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, additiveAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, alignment_baselineAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, alphabeticAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, amplitudeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, animateAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, arabic_formAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, ascentAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, attributeNameAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, attributeTypeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, azimuthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, baseFrequencyAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, baseProfileAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, baseline_shiftAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, bboxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, beginAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, biasAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, buffered_renderingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, byAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, calcModeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, cap_heightAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, clipAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, clipPathUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, clip_pathAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, clip_ruleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, colorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, color_interpolationAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, color_interpolation_filtersAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, color_profileAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, color_renderingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, contentScriptTypeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, contentStyleTypeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, cursorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, cxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, cyAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, dAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, descentAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, diffuseConstantAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, directionAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, displayAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, divisorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, dominant_baselineAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, durAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, dxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, dyAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, edgeModeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, elevationAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, enable_backgroundAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, endAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, exponentAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, externalResourcesRequiredAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, fillAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, fill_opacityAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, fill_ruleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, filterAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, filterResAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, filterUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, flood_colorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, flood_opacityAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_familyAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_sizeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_size_adjustAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_stretchAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_styleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_variantAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, font_weightAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, formatAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, frAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, fromAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, fxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, fyAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, g1Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, g2Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, glyphRefAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, glyph_nameAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, glyph_orientation_horizontalAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, glyph_orientation_verticalAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, gradientTransformAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, gradientUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, hangingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, heightAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, horiz_adv_xAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, horiz_origin_xAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, horiz_origin_yAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, ideographicAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, image_renderingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, inAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, in2Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, interceptAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, kAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, k1Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, k2Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, k3Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, k4Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, kernelMatrixAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, kernelUnitLengthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, kerningAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, keyPointsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, keySplinesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, keyTimesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, langAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, lengthAdjustAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, letter_spacingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, lighting_colorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, limitingConeAngleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, localAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, markerHeightAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, markerUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, markerWidthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, marker_endAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, marker_midAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, marker_startAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, maskAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, maskContentUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, maskUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, mask_typeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, mathematicalAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, maxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, mediaAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, methodAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, minAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, modeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, nameAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, numOctavesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, offsetAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, onbeginAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, onendAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, onzoomAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, opacityAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, operatorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, orderAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, orientAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, orientationAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, originAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, overflowAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, overline_positionAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, overline_thicknessAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, paint_orderAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, panose_1Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pathAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pathLengthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, patternContentUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, patternTransformAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, patternUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pointer_eventsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pointsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pointsAtXAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pointsAtYAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, pointsAtZAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, preserveAlphaAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, preserveAspectRatioAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, primitiveUnitsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, rAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, radiusAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, refXAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, refYAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, rendering_intentAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, repeatCountAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, repeatDurAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, requiredExtensionsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, requiredFeaturesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, restartAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, resultAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, rotateAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, rxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, ryAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, scaleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, seedAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, shape_renderingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, slopeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, spacingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, specularConstantAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, specularExponentAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, spreadMethodAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, startOffsetAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stdDeviationAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stemhAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stemvAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stitchTilesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stop_colorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stop_opacityAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, strikethrough_positionAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, strikethrough_thicknessAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, strokeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_dasharrayAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_dashoffsetAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_linecapAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_linejoinAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_miterlimitAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_opacityAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, stroke_widthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, styleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, surfaceScaleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, systemLanguageAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, tableValuesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, targetAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, targetXAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, targetYAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, textLengthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, text_anchorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, text_decorationAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, text_renderingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, titleAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, toAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, transformAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, transform_originAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, typeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, u1Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, u2Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, underline_positionAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, underline_thicknessAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, unicodeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, unicode_bidiAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, unicode_rangeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, units_per_emAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, v_alphabeticAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, v_hangingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, v_ideographicAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, v_mathematicalAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, valuesAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, vector_effectAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, versionAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, vert_adv_yAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, vert_origin_xAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, vert_origin_yAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, viewBoxAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, viewTargetAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, visibilityAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, widthAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, widthsAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, word_spacingAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, writing_modeAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, xAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, x1Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, x2Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, xChannelSelectorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, x_heightAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, yAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, y1Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, y2Attr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, yChannelSelectorAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, zAttr)
WEBCORE_EXPORT DEFINE_GLOBAL(QualifiedName, zoomAndPanAttr)


const WebCore::QualifiedName* const* getSVGAttrs()
{
    static const WebCore::QualifiedName* const SVGAttrs[] = {
        reinterpret_cast<const WebCore::QualifiedName*>(&accent_heightAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&accumulateAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&additiveAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&alignment_baselineAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&alphabeticAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&amplitudeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&animateAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&arabic_formAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&ascentAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&attributeNameAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&attributeTypeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&azimuthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&baseFrequencyAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&baseProfileAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&baseline_shiftAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&bboxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&beginAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&biasAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&buffered_renderingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&byAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&calcModeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&cap_heightAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&clipAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&clipPathUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&clip_pathAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&clip_ruleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&colorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&color_interpolationAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&color_interpolation_filtersAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&color_profileAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&color_renderingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&contentScriptTypeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&contentStyleTypeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&cursorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&cxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&cyAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&dAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&descentAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&diffuseConstantAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&directionAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&displayAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&divisorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&dominant_baselineAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&durAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&dxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&dyAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&edgeModeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&elevationAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&enable_backgroundAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&endAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&exponentAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&externalResourcesRequiredAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&fillAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&fill_opacityAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&fill_ruleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&filterAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&filterResAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&filterUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&flood_colorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&flood_opacityAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_familyAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_sizeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_size_adjustAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_stretchAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_styleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_variantAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&font_weightAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&formatAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&frAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&fromAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&fxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&fyAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&g1Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&g2Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&glyphRefAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&glyph_nameAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&glyph_orientation_horizontalAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&glyph_orientation_verticalAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&gradientTransformAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&gradientUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&hangingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&heightAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&horiz_adv_xAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&horiz_origin_xAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&horiz_origin_yAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&ideographicAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&image_renderingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&inAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&in2Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&interceptAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&kAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&k1Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&k2Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&k3Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&k4Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&kernelMatrixAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&kernelUnitLengthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&kerningAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&keyPointsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&keySplinesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&keyTimesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&langAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&lengthAdjustAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&letter_spacingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&lighting_colorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&limitingConeAngleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&localAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&markerHeightAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&markerUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&markerWidthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&marker_endAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&marker_midAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&marker_startAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&maskAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&maskContentUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&maskUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&mask_typeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&mathematicalAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&maxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&mediaAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&methodAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&minAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&modeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&nameAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&numOctavesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&offsetAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&onbeginAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&onendAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&onzoomAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&opacityAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&operatorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&orderAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&orientAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&orientationAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&originAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&overflowAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&overline_positionAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&overline_thicknessAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&paint_orderAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&panose_1Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pathAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pathLengthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&patternContentUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&patternTransformAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&patternUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pointer_eventsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pointsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pointsAtXAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pointsAtYAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&pointsAtZAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&preserveAlphaAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&preserveAspectRatioAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&primitiveUnitsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&rAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&radiusAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&refXAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&refYAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&rendering_intentAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&repeatCountAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&repeatDurAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&requiredExtensionsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&requiredFeaturesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&restartAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&resultAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&rotateAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&rxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&ryAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&scaleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&seedAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&shape_renderingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&slopeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&spacingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&specularConstantAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&specularExponentAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&spreadMethodAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&startOffsetAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stdDeviationAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stemhAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stemvAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stitchTilesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stop_colorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stop_opacityAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&strikethrough_positionAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&strikethrough_thicknessAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&strokeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_dasharrayAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_dashoffsetAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_linecapAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_linejoinAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_miterlimitAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_opacityAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&stroke_widthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&styleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&surfaceScaleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&systemLanguageAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&tableValuesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&targetAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&targetXAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&targetYAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&textLengthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&text_anchorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&text_decorationAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&text_renderingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&titleAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&toAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&transformAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&transform_originAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&typeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&u1Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&u2Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&underline_positionAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&underline_thicknessAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&unicodeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&unicode_bidiAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&unicode_rangeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&units_per_emAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&v_alphabeticAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&v_hangingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&v_ideographicAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&v_mathematicalAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&valuesAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&vector_effectAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&versionAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&vert_adv_yAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&vert_origin_xAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&vert_origin_yAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&viewBoxAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&viewTargetAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&visibilityAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&widthAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&widthsAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&word_spacingAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&writing_modeAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&xAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&x1Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&x2Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&xChannelSelectorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&x_heightAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&yAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&y1Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&y2Attr),
        reinterpret_cast<const WebCore::QualifiedName*>(&yChannelSelectorAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&zAttr),
        reinterpret_cast<const WebCore::QualifiedName*>(&zoomAndPanAttr),
    };
    return SVGAttrs;
}

void init()
{
    static bool initialized = false;
    if (initialized)
        return;
    initialized = true;

    // Use placement new to initialize the globals.

    AtomicString::init();
    AtomicString svgNS("http://www.w3.org/2000/svg", AtomicString::ConstructFromLiteral);

    // Namespace
    new (NotNull, (void*)&svgNamespaceURI) AtomicString(svgNS);

#ifndef NDEBUG
    reinterpret_cast<StringImpl*>(&aData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&accent_heightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&accumulateData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&additiveData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&alignment_baselineData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&alphabeticData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&altGlyphData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&altGlyphDefData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&altGlyphItemData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&amplitudeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&animateData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&animateColorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&animateMotionData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&animateTransformData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&arabic_formData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&ascentData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&attributeNameData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&attributeTypeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&azimuthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&baseFrequencyData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&baseProfileData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&baseline_shiftData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&bboxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&beginData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&biasData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&buffered_renderingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&byData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&calcModeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&cap_heightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&circleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&clipData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&clipPathData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&clipPathUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&clip_pathData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&clip_ruleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&colorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&color_interpolationData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&color_interpolation_filtersData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&color_profileData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&color_renderingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&contentScriptTypeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&contentStyleTypeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&cursorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&cxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&cyData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&dData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&defsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&descData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&descentData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&diffuseConstantData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&directionData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&displayData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&divisorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&dominant_baselineData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&durData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&dxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&dyData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&edgeModeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&elevationData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&ellipseData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&enable_backgroundData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&endData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&exponentData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&externalResourcesRequiredData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feBlendData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feColorMatrixData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feComponentTransferData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feCompositeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feConvolveMatrixData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feDiffuseLightingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feDisplacementMapData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feDistantLightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feDropShadowData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feFloodData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feFuncAData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feFuncBData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feFuncGData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feFuncRData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feGaussianBlurData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feImageData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feMergeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feMergeNodeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feMorphologyData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feOffsetData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fePointLightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feSpecularLightingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feSpotLightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feTileData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&feTurbulenceData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fillData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fill_opacityData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fill_ruleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&filterData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&filterResData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&filterUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&flood_colorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&flood_opacityData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fontData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_faceData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_face_formatData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_face_nameData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_face_srcData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_face_uriData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_familyData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_sizeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_size_adjustData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_stretchData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_styleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_variantData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&font_weightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&foreignObjectData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&formatData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&frData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fromData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&fyData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&gData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&g1Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&g2Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&glyphData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&glyphRefData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&glyph_nameData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&glyph_orientation_horizontalData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&glyph_orientation_verticalData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&gradientTransformData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&gradientUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&hangingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&heightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&hkernData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&horiz_adv_xData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&horiz_origin_xData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&horiz_origin_yData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&ideographicData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&imageData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&image_renderingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&inData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&in2Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&interceptData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&kData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&k1Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&k2Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&k3Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&k4Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&kernelMatrixData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&kernelUnitLengthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&kerningData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&keyPointsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&keySplinesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&keyTimesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&langData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&lengthAdjustData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&letter_spacingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&lighting_colorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&limitingConeAngleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&lineData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&linearGradientData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&localData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&markerData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&markerHeightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&markerUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&markerWidthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&marker_endData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&marker_midData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&marker_startData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&maskData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&maskContentUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&maskUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&mask_typeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&mathematicalData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&maxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&mediaData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&metadataData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&methodData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&minData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&missing_glyphData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&modeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&mpathData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&nameData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&numOctavesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&offsetData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&onbeginData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&onendData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&onzoomData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&opacityData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&operatorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&orderData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&orientData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&orientationData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&originData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&overflowData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&overline_positionData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&overline_thicknessData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&paint_orderData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&panose_1Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pathData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pathLengthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&patternData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&patternContentUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&patternTransformData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&patternUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pointer_eventsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pointsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pointsAtXData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pointsAtYData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&pointsAtZData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&polygonData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&polylineData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&preserveAlphaData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&preserveAspectRatioData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&primitiveUnitsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&rData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&radialGradientData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&radiusData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&rectData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&refXData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&refYData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&rendering_intentData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&repeatCountData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&repeatDurData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&requiredExtensionsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&requiredFeaturesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&restartData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&resultData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&rotateData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&rxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&ryData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&scaleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&scriptData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&seedData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&setData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&shape_renderingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&slopeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&spacingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&specularConstantData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&specularExponentData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&spreadMethodData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&startOffsetData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stdDeviationData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stemhData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stemvData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stitchTilesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stopData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stop_colorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stop_opacityData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&strikethrough_positionData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&strikethrough_thicknessData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&strokeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_dasharrayData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_dashoffsetData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_linecapData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_linejoinData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_miterlimitData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_opacityData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&stroke_widthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&styleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&surfaceScaleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&svgData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&switchData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&symbolData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&systemLanguageData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&tableValuesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&targetData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&targetXData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&targetYData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&textData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&textLengthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&textPathData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&text_anchorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&text_decorationData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&text_renderingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&titleData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&toData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&transformData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&transform_originData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&trefData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&tspanData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&typeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&u1Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&u2Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&underline_positionData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&underline_thicknessData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&unicodeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&unicode_bidiData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&unicode_rangeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&units_per_emData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&useData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&v_alphabeticData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&v_hangingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&v_ideographicData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&v_mathematicalData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&valuesData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&vector_effectData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&versionData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&vert_adv_yData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&vert_origin_xData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&vert_origin_yData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&viewData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&viewBoxData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&viewTargetData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&visibilityData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&vkernData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&widthData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&widthsData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&word_spacingData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&writing_modeData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&xData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&x1Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&x2Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&xChannelSelectorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&x_heightData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&yData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&y1Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&y2Data)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&yChannelSelectorData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&zData)->assertHashIsCorrect();
    reinterpret_cast<StringImpl*>(&zoomAndPanData)->assertHashIsCorrect();
#endif // NDEBUG


    struct TagsTableEntry {
        void* targetAddress;
        StringImpl& name;
    };

    static const TagsTableEntry tagsTable[] = {
        { (void*)&aTag, *reinterpret_cast<StringImpl*>(&aData) },
        { (void*)&altGlyphTag, *reinterpret_cast<StringImpl*>(&altGlyphData) },
        { (void*)&altGlyphDefTag, *reinterpret_cast<StringImpl*>(&altGlyphDefData) },
        { (void*)&altGlyphItemTag, *reinterpret_cast<StringImpl*>(&altGlyphItemData) },
        { (void*)&animateTag, *reinterpret_cast<StringImpl*>(&animateData) },
        { (void*)&animateColorTag, *reinterpret_cast<StringImpl*>(&animateColorData) },
        { (void*)&animateMotionTag, *reinterpret_cast<StringImpl*>(&animateMotionData) },
        { (void*)&animateTransformTag, *reinterpret_cast<StringImpl*>(&animateTransformData) },
        { (void*)&circleTag, *reinterpret_cast<StringImpl*>(&circleData) },
        { (void*)&clipPathTag, *reinterpret_cast<StringImpl*>(&clipPathData) },
        { (void*)&color_profileTag, *reinterpret_cast<StringImpl*>(&color_profileData) },
        { (void*)&cursorTag, *reinterpret_cast<StringImpl*>(&cursorData) },
        { (void*)&defsTag, *reinterpret_cast<StringImpl*>(&defsData) },
        { (void*)&descTag, *reinterpret_cast<StringImpl*>(&descData) },
        { (void*)&ellipseTag, *reinterpret_cast<StringImpl*>(&ellipseData) },
        { (void*)&feBlendTag, *reinterpret_cast<StringImpl*>(&feBlendData) },
        { (void*)&feColorMatrixTag, *reinterpret_cast<StringImpl*>(&feColorMatrixData) },
        { (void*)&feComponentTransferTag, *reinterpret_cast<StringImpl*>(&feComponentTransferData) },
        { (void*)&feCompositeTag, *reinterpret_cast<StringImpl*>(&feCompositeData) },
        { (void*)&feConvolveMatrixTag, *reinterpret_cast<StringImpl*>(&feConvolveMatrixData) },
        { (void*)&feDiffuseLightingTag, *reinterpret_cast<StringImpl*>(&feDiffuseLightingData) },
        { (void*)&feDisplacementMapTag, *reinterpret_cast<StringImpl*>(&feDisplacementMapData) },
        { (void*)&feDistantLightTag, *reinterpret_cast<StringImpl*>(&feDistantLightData) },
        { (void*)&feDropShadowTag, *reinterpret_cast<StringImpl*>(&feDropShadowData) },
        { (void*)&feFloodTag, *reinterpret_cast<StringImpl*>(&feFloodData) },
        { (void*)&feFuncATag, *reinterpret_cast<StringImpl*>(&feFuncAData) },
        { (void*)&feFuncBTag, *reinterpret_cast<StringImpl*>(&feFuncBData) },
        { (void*)&feFuncGTag, *reinterpret_cast<StringImpl*>(&feFuncGData) },
        { (void*)&feFuncRTag, *reinterpret_cast<StringImpl*>(&feFuncRData) },
        { (void*)&feGaussianBlurTag, *reinterpret_cast<StringImpl*>(&feGaussianBlurData) },
        { (void*)&feImageTag, *reinterpret_cast<StringImpl*>(&feImageData) },
        { (void*)&feMergeTag, *reinterpret_cast<StringImpl*>(&feMergeData) },
        { (void*)&feMergeNodeTag, *reinterpret_cast<StringImpl*>(&feMergeNodeData) },
        { (void*)&feMorphologyTag, *reinterpret_cast<StringImpl*>(&feMorphologyData) },
        { (void*)&feOffsetTag, *reinterpret_cast<StringImpl*>(&feOffsetData) },
        { (void*)&fePointLightTag, *reinterpret_cast<StringImpl*>(&fePointLightData) },
        { (void*)&feSpecularLightingTag, *reinterpret_cast<StringImpl*>(&feSpecularLightingData) },
        { (void*)&feSpotLightTag, *reinterpret_cast<StringImpl*>(&feSpotLightData) },
        { (void*)&feTileTag, *reinterpret_cast<StringImpl*>(&feTileData) },
        { (void*)&feTurbulenceTag, *reinterpret_cast<StringImpl*>(&feTurbulenceData) },
        { (void*)&filterTag, *reinterpret_cast<StringImpl*>(&filterData) },
        { (void*)&fontTag, *reinterpret_cast<StringImpl*>(&fontData) },
        { (void*)&font_faceTag, *reinterpret_cast<StringImpl*>(&font_faceData) },
        { (void*)&font_face_formatTag, *reinterpret_cast<StringImpl*>(&font_face_formatData) },
        { (void*)&font_face_nameTag, *reinterpret_cast<StringImpl*>(&font_face_nameData) },
        { (void*)&font_face_srcTag, *reinterpret_cast<StringImpl*>(&font_face_srcData) },
        { (void*)&font_face_uriTag, *reinterpret_cast<StringImpl*>(&font_face_uriData) },
        { (void*)&foreignObjectTag, *reinterpret_cast<StringImpl*>(&foreignObjectData) },
        { (void*)&gTag, *reinterpret_cast<StringImpl*>(&gData) },
        { (void*)&glyphTag, *reinterpret_cast<StringImpl*>(&glyphData) },
        { (void*)&glyphRefTag, *reinterpret_cast<StringImpl*>(&glyphRefData) },
        { (void*)&hkernTag, *reinterpret_cast<StringImpl*>(&hkernData) },
        { (void*)&imageTag, *reinterpret_cast<StringImpl*>(&imageData) },
        { (void*)&lineTag, *reinterpret_cast<StringImpl*>(&lineData) },
        { (void*)&linearGradientTag, *reinterpret_cast<StringImpl*>(&linearGradientData) },
        { (void*)&markerTag, *reinterpret_cast<StringImpl*>(&markerData) },
        { (void*)&maskTag, *reinterpret_cast<StringImpl*>(&maskData) },
        { (void*)&metadataTag, *reinterpret_cast<StringImpl*>(&metadataData) },
        { (void*)&missing_glyphTag, *reinterpret_cast<StringImpl*>(&missing_glyphData) },
        { (void*)&mpathTag, *reinterpret_cast<StringImpl*>(&mpathData) },
        { (void*)&pathTag, *reinterpret_cast<StringImpl*>(&pathData) },
        { (void*)&patternTag, *reinterpret_cast<StringImpl*>(&patternData) },
        { (void*)&polygonTag, *reinterpret_cast<StringImpl*>(&polygonData) },
        { (void*)&polylineTag, *reinterpret_cast<StringImpl*>(&polylineData) },
        { (void*)&radialGradientTag, *reinterpret_cast<StringImpl*>(&radialGradientData) },
        { (void*)&rectTag, *reinterpret_cast<StringImpl*>(&rectData) },
        { (void*)&scriptTag, *reinterpret_cast<StringImpl*>(&scriptData) },
        { (void*)&setTag, *reinterpret_cast<StringImpl*>(&setData) },
        { (void*)&stopTag, *reinterpret_cast<StringImpl*>(&stopData) },
        { (void*)&styleTag, *reinterpret_cast<StringImpl*>(&styleData) },
        { (void*)&svgTag, *reinterpret_cast<StringImpl*>(&svgData) },
        { (void*)&switchTag, *reinterpret_cast<StringImpl*>(&switchData) },
        { (void*)&symbolTag, *reinterpret_cast<StringImpl*>(&symbolData) },
        { (void*)&textTag, *reinterpret_cast<StringImpl*>(&textData) },
        { (void*)&textPathTag, *reinterpret_cast<StringImpl*>(&textPathData) },
        { (void*)&titleTag, *reinterpret_cast<StringImpl*>(&titleData) },
        { (void*)&trefTag, *reinterpret_cast<StringImpl*>(&trefData) },
        { (void*)&tspanTag, *reinterpret_cast<StringImpl*>(&tspanData) },
        { (void*)&useTag, *reinterpret_cast<StringImpl*>(&useData) },
        { (void*)&viewTag, *reinterpret_cast<StringImpl*>(&viewData) },
        { (void*)&vkernTag, *reinterpret_cast<StringImpl*>(&vkernData) },
    };

    for (unsigned i = 0; i < WTF_ARRAY_LENGTH(tagsTable); ++i)
        createQualifiedName(tagsTable[i].targetAddress, &tagsTable[i].name, svgNS);

    struct AttributesTableEntry {
        void* targetAddress;
        StringImpl& name;
    };

    static const AttributesTableEntry attributesTable[] = {
        { (void*)&accent_heightAttr, *reinterpret_cast<StringImpl*>(&accent_heightData) },
        { (void*)&accumulateAttr, *reinterpret_cast<StringImpl*>(&accumulateData) },
        { (void*)&additiveAttr, *reinterpret_cast<StringImpl*>(&additiveData) },
        { (void*)&alignment_baselineAttr, *reinterpret_cast<StringImpl*>(&alignment_baselineData) },
        { (void*)&alphabeticAttr, *reinterpret_cast<StringImpl*>(&alphabeticData) },
        { (void*)&amplitudeAttr, *reinterpret_cast<StringImpl*>(&amplitudeData) },
        { (void*)&animateAttr, *reinterpret_cast<StringImpl*>(&animateData) },
        { (void*)&arabic_formAttr, *reinterpret_cast<StringImpl*>(&arabic_formData) },
        { (void*)&ascentAttr, *reinterpret_cast<StringImpl*>(&ascentData) },
        { (void*)&attributeNameAttr, *reinterpret_cast<StringImpl*>(&attributeNameData) },
        { (void*)&attributeTypeAttr, *reinterpret_cast<StringImpl*>(&attributeTypeData) },
        { (void*)&azimuthAttr, *reinterpret_cast<StringImpl*>(&azimuthData) },
        { (void*)&baseFrequencyAttr, *reinterpret_cast<StringImpl*>(&baseFrequencyData) },
        { (void*)&baseProfileAttr, *reinterpret_cast<StringImpl*>(&baseProfileData) },
        { (void*)&baseline_shiftAttr, *reinterpret_cast<StringImpl*>(&baseline_shiftData) },
        { (void*)&bboxAttr, *reinterpret_cast<StringImpl*>(&bboxData) },
        { (void*)&beginAttr, *reinterpret_cast<StringImpl*>(&beginData) },
        { (void*)&biasAttr, *reinterpret_cast<StringImpl*>(&biasData) },
        { (void*)&buffered_renderingAttr, *reinterpret_cast<StringImpl*>(&buffered_renderingData) },
        { (void*)&byAttr, *reinterpret_cast<StringImpl*>(&byData) },
        { (void*)&calcModeAttr, *reinterpret_cast<StringImpl*>(&calcModeData) },
        { (void*)&cap_heightAttr, *reinterpret_cast<StringImpl*>(&cap_heightData) },
        { (void*)&clipAttr, *reinterpret_cast<StringImpl*>(&clipData) },
        { (void*)&clipPathUnitsAttr, *reinterpret_cast<StringImpl*>(&clipPathUnitsData) },
        { (void*)&clip_pathAttr, *reinterpret_cast<StringImpl*>(&clip_pathData) },
        { (void*)&clip_ruleAttr, *reinterpret_cast<StringImpl*>(&clip_ruleData) },
        { (void*)&colorAttr, *reinterpret_cast<StringImpl*>(&colorData) },
        { (void*)&color_interpolationAttr, *reinterpret_cast<StringImpl*>(&color_interpolationData) },
        { (void*)&color_interpolation_filtersAttr, *reinterpret_cast<StringImpl*>(&color_interpolation_filtersData) },
        { (void*)&color_profileAttr, *reinterpret_cast<StringImpl*>(&color_profileData) },
        { (void*)&color_renderingAttr, *reinterpret_cast<StringImpl*>(&color_renderingData) },
        { (void*)&contentScriptTypeAttr, *reinterpret_cast<StringImpl*>(&contentScriptTypeData) },
        { (void*)&contentStyleTypeAttr, *reinterpret_cast<StringImpl*>(&contentStyleTypeData) },
        { (void*)&cursorAttr, *reinterpret_cast<StringImpl*>(&cursorData) },
        { (void*)&cxAttr, *reinterpret_cast<StringImpl*>(&cxData) },
        { (void*)&cyAttr, *reinterpret_cast<StringImpl*>(&cyData) },
        { (void*)&dAttr, *reinterpret_cast<StringImpl*>(&dData) },
        { (void*)&descentAttr, *reinterpret_cast<StringImpl*>(&descentData) },
        { (void*)&diffuseConstantAttr, *reinterpret_cast<StringImpl*>(&diffuseConstantData) },
        { (void*)&directionAttr, *reinterpret_cast<StringImpl*>(&directionData) },
        { (void*)&displayAttr, *reinterpret_cast<StringImpl*>(&displayData) },
        { (void*)&divisorAttr, *reinterpret_cast<StringImpl*>(&divisorData) },
        { (void*)&dominant_baselineAttr, *reinterpret_cast<StringImpl*>(&dominant_baselineData) },
        { (void*)&durAttr, *reinterpret_cast<StringImpl*>(&durData) },
        { (void*)&dxAttr, *reinterpret_cast<StringImpl*>(&dxData) },
        { (void*)&dyAttr, *reinterpret_cast<StringImpl*>(&dyData) },
        { (void*)&edgeModeAttr, *reinterpret_cast<StringImpl*>(&edgeModeData) },
        { (void*)&elevationAttr, *reinterpret_cast<StringImpl*>(&elevationData) },
        { (void*)&enable_backgroundAttr, *reinterpret_cast<StringImpl*>(&enable_backgroundData) },
        { (void*)&endAttr, *reinterpret_cast<StringImpl*>(&endData) },
        { (void*)&exponentAttr, *reinterpret_cast<StringImpl*>(&exponentData) },
        { (void*)&externalResourcesRequiredAttr, *reinterpret_cast<StringImpl*>(&externalResourcesRequiredData) },
        { (void*)&fillAttr, *reinterpret_cast<StringImpl*>(&fillData) },
        { (void*)&fill_opacityAttr, *reinterpret_cast<StringImpl*>(&fill_opacityData) },
        { (void*)&fill_ruleAttr, *reinterpret_cast<StringImpl*>(&fill_ruleData) },
        { (void*)&filterAttr, *reinterpret_cast<StringImpl*>(&filterData) },
        { (void*)&filterResAttr, *reinterpret_cast<StringImpl*>(&filterResData) },
        { (void*)&filterUnitsAttr, *reinterpret_cast<StringImpl*>(&filterUnitsData) },
        { (void*)&flood_colorAttr, *reinterpret_cast<StringImpl*>(&flood_colorData) },
        { (void*)&flood_opacityAttr, *reinterpret_cast<StringImpl*>(&flood_opacityData) },
        { (void*)&font_familyAttr, *reinterpret_cast<StringImpl*>(&font_familyData) },
        { (void*)&font_sizeAttr, *reinterpret_cast<StringImpl*>(&font_sizeData) },
        { (void*)&font_size_adjustAttr, *reinterpret_cast<StringImpl*>(&font_size_adjustData) },
        { (void*)&font_stretchAttr, *reinterpret_cast<StringImpl*>(&font_stretchData) },
        { (void*)&font_styleAttr, *reinterpret_cast<StringImpl*>(&font_styleData) },
        { (void*)&font_variantAttr, *reinterpret_cast<StringImpl*>(&font_variantData) },
        { (void*)&font_weightAttr, *reinterpret_cast<StringImpl*>(&font_weightData) },
        { (void*)&formatAttr, *reinterpret_cast<StringImpl*>(&formatData) },
        { (void*)&frAttr, *reinterpret_cast<StringImpl*>(&frData) },
        { (void*)&fromAttr, *reinterpret_cast<StringImpl*>(&fromData) },
        { (void*)&fxAttr, *reinterpret_cast<StringImpl*>(&fxData) },
        { (void*)&fyAttr, *reinterpret_cast<StringImpl*>(&fyData) },
        { (void*)&g1Attr, *reinterpret_cast<StringImpl*>(&g1Data) },
        { (void*)&g2Attr, *reinterpret_cast<StringImpl*>(&g2Data) },
        { (void*)&glyphRefAttr, *reinterpret_cast<StringImpl*>(&glyphRefData) },
        { (void*)&glyph_nameAttr, *reinterpret_cast<StringImpl*>(&glyph_nameData) },
        { (void*)&glyph_orientation_horizontalAttr, *reinterpret_cast<StringImpl*>(&glyph_orientation_horizontalData) },
        { (void*)&glyph_orientation_verticalAttr, *reinterpret_cast<StringImpl*>(&glyph_orientation_verticalData) },
        { (void*)&gradientTransformAttr, *reinterpret_cast<StringImpl*>(&gradientTransformData) },
        { (void*)&gradientUnitsAttr, *reinterpret_cast<StringImpl*>(&gradientUnitsData) },
        { (void*)&hangingAttr, *reinterpret_cast<StringImpl*>(&hangingData) },
        { (void*)&heightAttr, *reinterpret_cast<StringImpl*>(&heightData) },
        { (void*)&horiz_adv_xAttr, *reinterpret_cast<StringImpl*>(&horiz_adv_xData) },
        { (void*)&horiz_origin_xAttr, *reinterpret_cast<StringImpl*>(&horiz_origin_xData) },
        { (void*)&horiz_origin_yAttr, *reinterpret_cast<StringImpl*>(&horiz_origin_yData) },
        { (void*)&ideographicAttr, *reinterpret_cast<StringImpl*>(&ideographicData) },
        { (void*)&image_renderingAttr, *reinterpret_cast<StringImpl*>(&image_renderingData) },
        { (void*)&inAttr, *reinterpret_cast<StringImpl*>(&inData) },
        { (void*)&in2Attr, *reinterpret_cast<StringImpl*>(&in2Data) },
        { (void*)&interceptAttr, *reinterpret_cast<StringImpl*>(&interceptData) },
        { (void*)&kAttr, *reinterpret_cast<StringImpl*>(&kData) },
        { (void*)&k1Attr, *reinterpret_cast<StringImpl*>(&k1Data) },
        { (void*)&k2Attr, *reinterpret_cast<StringImpl*>(&k2Data) },
        { (void*)&k3Attr, *reinterpret_cast<StringImpl*>(&k3Data) },
        { (void*)&k4Attr, *reinterpret_cast<StringImpl*>(&k4Data) },
        { (void*)&kernelMatrixAttr, *reinterpret_cast<StringImpl*>(&kernelMatrixData) },
        { (void*)&kernelUnitLengthAttr, *reinterpret_cast<StringImpl*>(&kernelUnitLengthData) },
        { (void*)&kerningAttr, *reinterpret_cast<StringImpl*>(&kerningData) },
        { (void*)&keyPointsAttr, *reinterpret_cast<StringImpl*>(&keyPointsData) },
        { (void*)&keySplinesAttr, *reinterpret_cast<StringImpl*>(&keySplinesData) },
        { (void*)&keyTimesAttr, *reinterpret_cast<StringImpl*>(&keyTimesData) },
        { (void*)&langAttr, *reinterpret_cast<StringImpl*>(&langData) },
        { (void*)&lengthAdjustAttr, *reinterpret_cast<StringImpl*>(&lengthAdjustData) },
        { (void*)&letter_spacingAttr, *reinterpret_cast<StringImpl*>(&letter_spacingData) },
        { (void*)&lighting_colorAttr, *reinterpret_cast<StringImpl*>(&lighting_colorData) },
        { (void*)&limitingConeAngleAttr, *reinterpret_cast<StringImpl*>(&limitingConeAngleData) },
        { (void*)&localAttr, *reinterpret_cast<StringImpl*>(&localData) },
        { (void*)&markerHeightAttr, *reinterpret_cast<StringImpl*>(&markerHeightData) },
        { (void*)&markerUnitsAttr, *reinterpret_cast<StringImpl*>(&markerUnitsData) },
        { (void*)&markerWidthAttr, *reinterpret_cast<StringImpl*>(&markerWidthData) },
        { (void*)&marker_endAttr, *reinterpret_cast<StringImpl*>(&marker_endData) },
        { (void*)&marker_midAttr, *reinterpret_cast<StringImpl*>(&marker_midData) },
        { (void*)&marker_startAttr, *reinterpret_cast<StringImpl*>(&marker_startData) },
        { (void*)&maskAttr, *reinterpret_cast<StringImpl*>(&maskData) },
        { (void*)&maskContentUnitsAttr, *reinterpret_cast<StringImpl*>(&maskContentUnitsData) },
        { (void*)&maskUnitsAttr, *reinterpret_cast<StringImpl*>(&maskUnitsData) },
        { (void*)&mask_typeAttr, *reinterpret_cast<StringImpl*>(&mask_typeData) },
        { (void*)&mathematicalAttr, *reinterpret_cast<StringImpl*>(&mathematicalData) },
        { (void*)&maxAttr, *reinterpret_cast<StringImpl*>(&maxData) },
        { (void*)&mediaAttr, *reinterpret_cast<StringImpl*>(&mediaData) },
        { (void*)&methodAttr, *reinterpret_cast<StringImpl*>(&methodData) },
        { (void*)&minAttr, *reinterpret_cast<StringImpl*>(&minData) },
        { (void*)&modeAttr, *reinterpret_cast<StringImpl*>(&modeData) },
        { (void*)&nameAttr, *reinterpret_cast<StringImpl*>(&nameData) },
        { (void*)&numOctavesAttr, *reinterpret_cast<StringImpl*>(&numOctavesData) },
        { (void*)&offsetAttr, *reinterpret_cast<StringImpl*>(&offsetData) },
        { (void*)&onbeginAttr, *reinterpret_cast<StringImpl*>(&onbeginData) },
        { (void*)&onendAttr, *reinterpret_cast<StringImpl*>(&onendData) },
        { (void*)&onzoomAttr, *reinterpret_cast<StringImpl*>(&onzoomData) },
        { (void*)&opacityAttr, *reinterpret_cast<StringImpl*>(&opacityData) },
        { (void*)&operatorAttr, *reinterpret_cast<StringImpl*>(&operatorData) },
        { (void*)&orderAttr, *reinterpret_cast<StringImpl*>(&orderData) },
        { (void*)&orientAttr, *reinterpret_cast<StringImpl*>(&orientData) },
        { (void*)&orientationAttr, *reinterpret_cast<StringImpl*>(&orientationData) },
        { (void*)&originAttr, *reinterpret_cast<StringImpl*>(&originData) },
        { (void*)&overflowAttr, *reinterpret_cast<StringImpl*>(&overflowData) },
        { (void*)&overline_positionAttr, *reinterpret_cast<StringImpl*>(&overline_positionData) },
        { (void*)&overline_thicknessAttr, *reinterpret_cast<StringImpl*>(&overline_thicknessData) },
        { (void*)&paint_orderAttr, *reinterpret_cast<StringImpl*>(&paint_orderData) },
        { (void*)&panose_1Attr, *reinterpret_cast<StringImpl*>(&panose_1Data) },
        { (void*)&pathAttr, *reinterpret_cast<StringImpl*>(&pathData) },
        { (void*)&pathLengthAttr, *reinterpret_cast<StringImpl*>(&pathLengthData) },
        { (void*)&patternContentUnitsAttr, *reinterpret_cast<StringImpl*>(&patternContentUnitsData) },
        { (void*)&patternTransformAttr, *reinterpret_cast<StringImpl*>(&patternTransformData) },
        { (void*)&patternUnitsAttr, *reinterpret_cast<StringImpl*>(&patternUnitsData) },
        { (void*)&pointer_eventsAttr, *reinterpret_cast<StringImpl*>(&pointer_eventsData) },
        { (void*)&pointsAttr, *reinterpret_cast<StringImpl*>(&pointsData) },
        { (void*)&pointsAtXAttr, *reinterpret_cast<StringImpl*>(&pointsAtXData) },
        { (void*)&pointsAtYAttr, *reinterpret_cast<StringImpl*>(&pointsAtYData) },
        { (void*)&pointsAtZAttr, *reinterpret_cast<StringImpl*>(&pointsAtZData) },
        { (void*)&preserveAlphaAttr, *reinterpret_cast<StringImpl*>(&preserveAlphaData) },
        { (void*)&preserveAspectRatioAttr, *reinterpret_cast<StringImpl*>(&preserveAspectRatioData) },
        { (void*)&primitiveUnitsAttr, *reinterpret_cast<StringImpl*>(&primitiveUnitsData) },
        { (void*)&rAttr, *reinterpret_cast<StringImpl*>(&rData) },
        { (void*)&radiusAttr, *reinterpret_cast<StringImpl*>(&radiusData) },
        { (void*)&refXAttr, *reinterpret_cast<StringImpl*>(&refXData) },
        { (void*)&refYAttr, *reinterpret_cast<StringImpl*>(&refYData) },
        { (void*)&rendering_intentAttr, *reinterpret_cast<StringImpl*>(&rendering_intentData) },
        { (void*)&repeatCountAttr, *reinterpret_cast<StringImpl*>(&repeatCountData) },
        { (void*)&repeatDurAttr, *reinterpret_cast<StringImpl*>(&repeatDurData) },
        { (void*)&requiredExtensionsAttr, *reinterpret_cast<StringImpl*>(&requiredExtensionsData) },
        { (void*)&requiredFeaturesAttr, *reinterpret_cast<StringImpl*>(&requiredFeaturesData) },
        { (void*)&restartAttr, *reinterpret_cast<StringImpl*>(&restartData) },
        { (void*)&resultAttr, *reinterpret_cast<StringImpl*>(&resultData) },
        { (void*)&rotateAttr, *reinterpret_cast<StringImpl*>(&rotateData) },
        { (void*)&rxAttr, *reinterpret_cast<StringImpl*>(&rxData) },
        { (void*)&ryAttr, *reinterpret_cast<StringImpl*>(&ryData) },
        { (void*)&scaleAttr, *reinterpret_cast<StringImpl*>(&scaleData) },
        { (void*)&seedAttr, *reinterpret_cast<StringImpl*>(&seedData) },
        { (void*)&shape_renderingAttr, *reinterpret_cast<StringImpl*>(&shape_renderingData) },
        { (void*)&slopeAttr, *reinterpret_cast<StringImpl*>(&slopeData) },
        { (void*)&spacingAttr, *reinterpret_cast<StringImpl*>(&spacingData) },
        { (void*)&specularConstantAttr, *reinterpret_cast<StringImpl*>(&specularConstantData) },
        { (void*)&specularExponentAttr, *reinterpret_cast<StringImpl*>(&specularExponentData) },
        { (void*)&spreadMethodAttr, *reinterpret_cast<StringImpl*>(&spreadMethodData) },
        { (void*)&startOffsetAttr, *reinterpret_cast<StringImpl*>(&startOffsetData) },
        { (void*)&stdDeviationAttr, *reinterpret_cast<StringImpl*>(&stdDeviationData) },
        { (void*)&stemhAttr, *reinterpret_cast<StringImpl*>(&stemhData) },
        { (void*)&stemvAttr, *reinterpret_cast<StringImpl*>(&stemvData) },
        { (void*)&stitchTilesAttr, *reinterpret_cast<StringImpl*>(&stitchTilesData) },
        { (void*)&stop_colorAttr, *reinterpret_cast<StringImpl*>(&stop_colorData) },
        { (void*)&stop_opacityAttr, *reinterpret_cast<StringImpl*>(&stop_opacityData) },
        { (void*)&strikethrough_positionAttr, *reinterpret_cast<StringImpl*>(&strikethrough_positionData) },
        { (void*)&strikethrough_thicknessAttr, *reinterpret_cast<StringImpl*>(&strikethrough_thicknessData) },
        { (void*)&strokeAttr, *reinterpret_cast<StringImpl*>(&strokeData) },
        { (void*)&stroke_dasharrayAttr, *reinterpret_cast<StringImpl*>(&stroke_dasharrayData) },
        { (void*)&stroke_dashoffsetAttr, *reinterpret_cast<StringImpl*>(&stroke_dashoffsetData) },
        { (void*)&stroke_linecapAttr, *reinterpret_cast<StringImpl*>(&stroke_linecapData) },
        { (void*)&stroke_linejoinAttr, *reinterpret_cast<StringImpl*>(&stroke_linejoinData) },
        { (void*)&stroke_miterlimitAttr, *reinterpret_cast<StringImpl*>(&stroke_miterlimitData) },
        { (void*)&stroke_opacityAttr, *reinterpret_cast<StringImpl*>(&stroke_opacityData) },
        { (void*)&stroke_widthAttr, *reinterpret_cast<StringImpl*>(&stroke_widthData) },
        { (void*)&styleAttr, *reinterpret_cast<StringImpl*>(&styleData) },
        { (void*)&surfaceScaleAttr, *reinterpret_cast<StringImpl*>(&surfaceScaleData) },
        { (void*)&systemLanguageAttr, *reinterpret_cast<StringImpl*>(&systemLanguageData) },
        { (void*)&tableValuesAttr, *reinterpret_cast<StringImpl*>(&tableValuesData) },
        { (void*)&targetAttr, *reinterpret_cast<StringImpl*>(&targetData) },
        { (void*)&targetXAttr, *reinterpret_cast<StringImpl*>(&targetXData) },
        { (void*)&targetYAttr, *reinterpret_cast<StringImpl*>(&targetYData) },
        { (void*)&textLengthAttr, *reinterpret_cast<StringImpl*>(&textLengthData) },
        { (void*)&text_anchorAttr, *reinterpret_cast<StringImpl*>(&text_anchorData) },
        { (void*)&text_decorationAttr, *reinterpret_cast<StringImpl*>(&text_decorationData) },
        { (void*)&text_renderingAttr, *reinterpret_cast<StringImpl*>(&text_renderingData) },
        { (void*)&titleAttr, *reinterpret_cast<StringImpl*>(&titleData) },
        { (void*)&toAttr, *reinterpret_cast<StringImpl*>(&toData) },
        { (void*)&transformAttr, *reinterpret_cast<StringImpl*>(&transformData) },
        { (void*)&transform_originAttr, *reinterpret_cast<StringImpl*>(&transform_originData) },
        { (void*)&typeAttr, *reinterpret_cast<StringImpl*>(&typeData) },
        { (void*)&u1Attr, *reinterpret_cast<StringImpl*>(&u1Data) },
        { (void*)&u2Attr, *reinterpret_cast<StringImpl*>(&u2Data) },
        { (void*)&underline_positionAttr, *reinterpret_cast<StringImpl*>(&underline_positionData) },
        { (void*)&underline_thicknessAttr, *reinterpret_cast<StringImpl*>(&underline_thicknessData) },
        { (void*)&unicodeAttr, *reinterpret_cast<StringImpl*>(&unicodeData) },
        { (void*)&unicode_bidiAttr, *reinterpret_cast<StringImpl*>(&unicode_bidiData) },
        { (void*)&unicode_rangeAttr, *reinterpret_cast<StringImpl*>(&unicode_rangeData) },
        { (void*)&units_per_emAttr, *reinterpret_cast<StringImpl*>(&units_per_emData) },
        { (void*)&v_alphabeticAttr, *reinterpret_cast<StringImpl*>(&v_alphabeticData) },
        { (void*)&v_hangingAttr, *reinterpret_cast<StringImpl*>(&v_hangingData) },
        { (void*)&v_ideographicAttr, *reinterpret_cast<StringImpl*>(&v_ideographicData) },
        { (void*)&v_mathematicalAttr, *reinterpret_cast<StringImpl*>(&v_mathematicalData) },
        { (void*)&valuesAttr, *reinterpret_cast<StringImpl*>(&valuesData) },
        { (void*)&vector_effectAttr, *reinterpret_cast<StringImpl*>(&vector_effectData) },
        { (void*)&versionAttr, *reinterpret_cast<StringImpl*>(&versionData) },
        { (void*)&vert_adv_yAttr, *reinterpret_cast<StringImpl*>(&vert_adv_yData) },
        { (void*)&vert_origin_xAttr, *reinterpret_cast<StringImpl*>(&vert_origin_xData) },
        { (void*)&vert_origin_yAttr, *reinterpret_cast<StringImpl*>(&vert_origin_yData) },
        { (void*)&viewBoxAttr, *reinterpret_cast<StringImpl*>(&viewBoxData) },
        { (void*)&viewTargetAttr, *reinterpret_cast<StringImpl*>(&viewTargetData) },
        { (void*)&visibilityAttr, *reinterpret_cast<StringImpl*>(&visibilityData) },
        { (void*)&widthAttr, *reinterpret_cast<StringImpl*>(&widthData) },
        { (void*)&widthsAttr, *reinterpret_cast<StringImpl*>(&widthsData) },
        { (void*)&word_spacingAttr, *reinterpret_cast<StringImpl*>(&word_spacingData) },
        { (void*)&writing_modeAttr, *reinterpret_cast<StringImpl*>(&writing_modeData) },
        { (void*)&xAttr, *reinterpret_cast<StringImpl*>(&xData) },
        { (void*)&x1Attr, *reinterpret_cast<StringImpl*>(&x1Data) },
        { (void*)&x2Attr, *reinterpret_cast<StringImpl*>(&x2Data) },
        { (void*)&xChannelSelectorAttr, *reinterpret_cast<StringImpl*>(&xChannelSelectorData) },
        { (void*)&x_heightAttr, *reinterpret_cast<StringImpl*>(&x_heightData) },
        { (void*)&yAttr, *reinterpret_cast<StringImpl*>(&yData) },
        { (void*)&y1Attr, *reinterpret_cast<StringImpl*>(&y1Data) },
        { (void*)&y2Attr, *reinterpret_cast<StringImpl*>(&y2Data) },
        { (void*)&yChannelSelectorAttr, *reinterpret_cast<StringImpl*>(&yChannelSelectorData) },
        { (void*)&zAttr, *reinterpret_cast<StringImpl*>(&zData) },
        { (void*)&zoomAndPanAttr, *reinterpret_cast<StringImpl*>(&zoomAndPanData) },
    };

    for (unsigned i = 0; i < WTF_ARRAY_LENGTH(attributesTable); ++i)
        createQualifiedName(attributesTable[i].targetAddress, &attributesTable[i].name);
}

} }

