180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/*
280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2012 Google Inc.
380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be
580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file.
680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */
780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#ifndef SkOTTable_OS_2_V3_DEFINED
980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#define SkOTTable_OS_2_V3_DEFINED
1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkEndian.h"
1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkIBMFamilyClass.h"
1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkOTTableTypes.h"
1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkPanose.h"
1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkTypedEnum.h"
1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#pragma pack(push, 1)
1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querustruct SkOTTableOS2_V3 {
2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT version;
21363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger    static const SK_OT_USHORT VERSION = SkTEndian_SwapBE16(3);
22363e546ed626b6dbbc42f5db87b3594bc0b5944bDerek Sollenberger
2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT xAvgCharWidth;
2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    struct WeightClass {
2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        SK_TYPED_ENUM(Value, SK_OT_USHORT,
2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Thin, SkTEndian_SwapBE16(100)))
2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((ExtraLight, SkTEndian_SwapBE16(200)))
2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Light, SkTEndian_SwapBE16(300)))
2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Normal, SkTEndian_SwapBE16(400)))
3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Medium, SkTEndian_SwapBE16(500)))
3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((SemiBold, SkTEndian_SwapBE16(600)))
3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Bold, SkTEndian_SwapBE16(700)))
3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((ExtraBold, SkTEndian_SwapBE16(800)))
3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Black, SkTEndian_SwapBE16(900)))
3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_SEQ_END,
3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        SK_SEQ_END)
3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        SK_OT_USHORT value;
3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    } usWeightClass;
3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    struct WidthClass {
4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        SK_TYPED_ENUM(Value, SK_OT_USHORT,
4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((UltraCondensed, SkTEndian_SwapBE16(1)))
4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((ExtraCondensed, SkTEndian_SwapBE16(2)))
4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Condensed, SkTEndian_SwapBE16(3)))
4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((SemiCondensed, SkTEndian_SwapBE16(4)))
4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Medium, SkTEndian_SwapBE16(5)))
4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((SemiExpanded, SkTEndian_SwapBE16(6)))
4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((Expanded, SkTEndian_SwapBE16(7)))
4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((ExtraExpanded, SkTEndian_SwapBE16(8)))
4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            ((UltraExpanded, SkTEndian_SwapBE16(9)))
5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_SEQ_END,
5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        (value)SK_SEQ_END)
5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    } usWidthClass;
5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    union Type {
5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Field {
5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //8-15
5680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
5780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                NoSubsetting,
5880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Bitmap,
5980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved10,
6080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved11,
6180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved12,
6280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved13,
6380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved14,
6480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved15)
6580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //0-7
6680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
6780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved00,
6880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Restricted,
6980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                PreviewPrint,
7080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Editable,
7180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved04,
7280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved05,
7380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved06,
7480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved07)
7580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } field;
7680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Raw {
7780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT Installable = SkTEndian_SwapBE16(0);
7880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT RestrictedMask = SkTEndian_SwapBE16(1 << 1);
7980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT PreviewPrintMask = SkTEndian_SwapBE16(1 << 2);
8080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT EditableMask = SkTEndian_SwapBE16(1 << 3);
8180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT NoSubsettingMask = SkTEndian_SwapBE16(1 << 8);
8280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT BitmapMask = SkTEndian_SwapBE16(1 << 9);
8380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_USHORT value;
8480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } raw;
8580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    } fsType;
8680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySubscriptXSize;
8780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySubscriptYSize;
8880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySubscriptXOffset;
8980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySubscriptYOffset;
9080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySuperscriptXSize;
9180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySuperscriptYSize;
9280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySuperscriptXOffset;
9380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT ySuperscriptYOffset;
9480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT yStrikeoutSize;
9580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT yStrikeoutPosition;
9680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SkIBMFamilyClass sFamilyClass;
9780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SkPanose panose;
9880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    union UnicodeRange {
9980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Field {
10080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 24-31
10180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
10280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Thai,
10380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Lao,
10480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Georgian,
10580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved027,
10680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                HangulJamo,
10780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                LatinExtendedAdditional,
10880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                GreekExtended,
10980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                GeneralPunctuation)
11080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 16-23
11180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
11280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Bengali,
11380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Gurmukhi,
11480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Gujarati,
11580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Oriya,
11680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Tamil,
11780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Telugu,
11880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Kannada,
11980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Malayalam)
12080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 8-15
12180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
12280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved008,
12380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Cyrillic,
12480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Armenian,
12580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Hebrew,
12680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved012,
12780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Arabic,
12880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved014,
12980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Devanagari)
13080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 0-7
13180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
13280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                BasicLatin,
13380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Latin1Supplement,
13480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                LatinExtendedA,
13580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                LatinExtendedB,
13680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                IPAExtensions,
13780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                SpacingModifierLetters,
13880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CombiningDiacriticalMarks,
13980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                GreekAndCoptic)
14080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
14180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 24-31
14280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
14380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Hangul,
14480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                NonPlane0,
14580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved058,
14680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CJKUnifiedIdeographs,
14780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                PrivateUseArea,
14880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CJKCompatibilityIdeographs,
14980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                AlphabeticPresentationForms,
15080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                ArabicPresentationFormsA)
15180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 16-23
15280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
15380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CJKSymbolsAndPunctuation,
15480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Hiragana,
15580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Katakana,
15680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Bopomofo,
15780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                HangulCompatibilityJamo,
15880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved053,
15980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                EnclosedCJKLettersAndMonths,
16080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CJKCompatibility)
16180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 8-15
16280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
16380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                ControlPictures,
16480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                OpticalCharacterRecognition,
16580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                EnclosedAlphanumerics,
16680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                BoxDrawing,
16780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                BlockElements,
16880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                GeometricShapes,
16980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MiscellaneousSymbols,
17080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Dingbats)
17180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 0-7
17280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
17380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                SuperscriptsAndSubscripts,
17480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CurrencySymbols,
17580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CombiningDiacriticalMarksForSymbols,
17680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                LetterlikeSymbols,
17780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                NumberForms,
17880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Arrows,
17980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MathematicalOperators,
18080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MiscellaneousTechnical)
18180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
18280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l2 24-31
18380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
18480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MusicalSymbols,
18580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MathematicalAlphanumericSymbols,
18680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                PrivateUse,
18780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                VariationSelectors,
18880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Tags,
18980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved093,
19080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved094,
19180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved095)
19280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l2 16-23
19380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
19480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Khmer,
19580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Mongolian,
19680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Braille,
19780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Yi,
19880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Tagalog_Hanunoo_Buhid_Tagbanwa,
19980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                OldItalic,
20080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Gothic,
20180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Deseret)
20280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l2 8-15
20380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
20480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Thaana,
20580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Sinhala,
20680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Myanmar,
20780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Ethiopic,
20880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Cherokee,
20980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                UnifiedCanadianSyllabics,
21080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Ogham,
21180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Runic)
21280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l2 0-7
21380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
21480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CombiningHalfMarks,
21580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                CJKCompatibilityForms,
21680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                SmallFormVariants,
21780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                ArabicPresentationFormsB,
21880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                HalfwidthAndFullwidthForms,
21980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Specials,
22080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Tibetan,
22180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Syriac)
22280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
22380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l3 24-31
22480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
22580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved120,
22680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved121,
22780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved122,
22880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved123,
22980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved124,
23080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved125,
23180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved126,
23280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved127)
23380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l3 16-23
23480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
23580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved112,
23680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved113,
23780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved114,
23880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved115,
23980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved116,
24080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved117,
24180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved118,
24280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved119)
24380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l3 8-15
24480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
24580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved104,
24680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved105,
24780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved106,
24880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved107,
24980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved108,
25080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved109,
25180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved110,
25280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved111)
25380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l3 0-7
25480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
25580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved096,
25680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved097,
25780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved098,
25880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved099,
25980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved100,
26080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved101,
26180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved102,
26280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved103)
26380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } field;
26480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Raw {
26580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            struct l0 {
26680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG BasicLatinMask = SkTEndian_SwapBE32(1 << 0);
26780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Latin1SupplementMask = SkTEndian_SwapBE32(1 << 1);
26880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG LatinExtendedAMask = SkTEndian_SwapBE32(1 << 2);
26980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG LatinExtendedBMask = SkTEndian_SwapBE32(1 << 3);
27080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG IPAExtensionsMask = SkTEndian_SwapBE32(1 << 4);
27180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SpacingModifierLettersMask = SkTEndian_SwapBE32(1 << 5);
27280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CombiningDiacriticalMarksMask = SkTEndian_SwapBE32(1 << 6);
27380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GreekAndCopticMask = SkTEndian_SwapBE32(1 << 7);
27480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                //Reserved
27580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CyrillicMask = SkTEndian_SwapBE32(1 << 9);
27680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ArmenianMask = SkTEndian_SwapBE32(1 << 10);
27780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG HebrewMask = SkTEndian_SwapBE32(1 << 11);
27880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                //Reserved
27980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ArabicMask = SkTEndian_SwapBE32(1 << 13);
28080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                //Reserved
28180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG DevanagariMask = SkTEndian_SwapBE32(1 << 15);
28280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG BengaliMask = SkTEndian_SwapBE32(1 << 16);
28380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GurmukhiMask = SkTEndian_SwapBE32(1 << 17);
28480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GujaratiMask = SkTEndian_SwapBE32(1 << 18);
28580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG OriyaMask = SkTEndian_SwapBE32(1 << 19);
28680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG TamilMask = SkTEndian_SwapBE32(1 << 20);
28780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG TeluguMask = SkTEndian_SwapBE32(1 << 21);
28880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG KannadaMask = SkTEndian_SwapBE32(1 << 22);
28980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MalayalamMask = SkTEndian_SwapBE32(1 << 23);
29080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ThaiMask = SkTEndian_SwapBE32(1 << 24);
29180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG LaoMask = SkTEndian_SwapBE32(1 << 25);
29280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GeorgianMask = SkTEndian_SwapBE32(1 << 26);
29380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                //Reserved
29480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG HangulJamoMask = SkTEndian_SwapBE32(1 << 28);
29580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG LatinExtendedAdditionalMask = SkTEndian_SwapBE32(1 << 29);
29680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GreekExtendedMask = SkTEndian_SwapBE32(1 << 30);
29780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GeneralPunctuationMask = SkTEndian_SwapBE32(1 << 31);
29880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            };
29980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            struct l1 {
30080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SuperscriptsAndSubscriptsMask = SkTEndian_SwapBE32(1 << (32 - 32));
30180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CurrencySymbolsMask = SkTEndian_SwapBE32(1 << (33 - 32));
30280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CombiningDiacriticalMarksForSymbolsMask = SkTEndian_SwapBE32(1 << (34 - 32));
30380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG LetterlikeSymbolsMask = SkTEndian_SwapBE32(1 << (35 - 32));
30480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG NumberFormsMask = SkTEndian_SwapBE32(1 << (36 - 32));
30580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ArrowsMask = SkTEndian_SwapBE32(1 << (37 - 32));
30680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MathematicalOperatorsMask = SkTEndian_SwapBE32(1 << (38 - 32));
30780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MiscellaneousTechnicalMask = SkTEndian_SwapBE32(1 << (39 - 32));
30880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ControlPicturesMask = SkTEndian_SwapBE32(1 << (40 - 32));
30980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG OpticalCharacterRecognitionMask = SkTEndian_SwapBE32(1 << (41 - 32));
31080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG EnclosedAlphanumericsMask = SkTEndian_SwapBE32(1 << (42 - 32));
31180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG BoxDrawingMask = SkTEndian_SwapBE32(1 << (43 - 32));
31280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG BlockElementsMask = SkTEndian_SwapBE32(1 << (44 - 32));
31380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GeometricShapesMask = SkTEndian_SwapBE32(1 << (45 - 32));
31480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MiscellaneousSymbolsMask = SkTEndian_SwapBE32(1 << (46 - 32));
31580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG DingbatsMask = SkTEndian_SwapBE32(1 << (47 - 32));
31680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CJKSymbolsAndPunctuationMask = SkTEndian_SwapBE32(1 << (48 - 32));
31780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG HiraganaMask = SkTEndian_SwapBE32(1 << (49 - 32));
31880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG KatakanaMask = SkTEndian_SwapBE32(1 << (50 - 32));
31980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG BopomofoMask = SkTEndian_SwapBE32(1 << (51 - 32));
32080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG HangulCompatibilityJamoMask = SkTEndian_SwapBE32(1 << (52 - 32));
32180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                //Reserved
32280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG EnclosedCJKLettersAndMonthsMask = SkTEndian_SwapBE32(1 << (54 - 32));
32380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CJKCompatibilityMask = SkTEndian_SwapBE32(1 << (55 - 32));
32480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG HangulMask = SkTEndian_SwapBE32(1 << (56 - 32));
32580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG NonPlane0Mask = SkTEndian_SwapBE32(1 << (57 - 32));
32680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                //Reserved
32780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CJKUnifiedIdeographsMask = SkTEndian_SwapBE32(1 << (59 - 32));
32880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG PrivateUseAreaMask = SkTEndian_SwapBE32(1 << (60 - 32));
32980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CJKCompatibilityIdeographsMask = SkTEndian_SwapBE32(1 << (61 - 32));
33080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG AlphabeticPresentationFormsMask = SkTEndian_SwapBE32(1 << (62 - 32));
33180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ArabicPresentationFormsAMask = SkTEndian_SwapBE32(1 << (63 - 32));
33280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            };
33380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            struct l2 {
33480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CombiningHalfMarksMask = SkTEndian_SwapBE32(1 << (64 - 64));
33580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CJKCompatibilityFormsMask = SkTEndian_SwapBE32(1 << (65 - 64));
33680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SmallFormVariantsMask = SkTEndian_SwapBE32(1 << (66 - 64));
33780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ArabicPresentationFormsBMask = SkTEndian_SwapBE32(1 << (67 - 64));
33880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG HalfwidthAndFullwidthFormsMask = SkTEndian_SwapBE32(1 << (68 - 64));
33980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SpecialsMask = SkTEndian_SwapBE32(1 << (69 - 64));
34080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG TibetanMask = SkTEndian_SwapBE32(1 << (70 - 64));
34180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SyriacMask = SkTEndian_SwapBE32(1 << (71 - 64));
34280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ThaanaMask = SkTEndian_SwapBE32(1 << (72 - 64));
34380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SinhalaMask = SkTEndian_SwapBE32(1 << (73 - 64));
34480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MyanmarMask = SkTEndian_SwapBE32(1 << (74 - 64));
34580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG EthiopicMask = SkTEndian_SwapBE32(1 << (75 - 64));
34680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG CherokeeMask = SkTEndian_SwapBE32(1 << (76 - 64));
34780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG UnifiedCanadianSyllabicsMask = SkTEndian_SwapBE32(1 << (77 - 64));
34880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG OghamMask = SkTEndian_SwapBE32(1 << (78 - 64));
34980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG RunicMask = SkTEndian_SwapBE32(1 << (79 - 64));
35080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG KhmerMask = SkTEndian_SwapBE32(1 << (80 - 64));
35180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MongolianMask = SkTEndian_SwapBE32(1 << (81 - 64));
35280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG BrailleMask = SkTEndian_SwapBE32(1 << (82 - 64));
35380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG YiMask = SkTEndian_SwapBE32(1 << (83 - 64));
35480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Tagalog_Hanunoo_Buhid_TagbanwaMask = SkTEndian_SwapBE32(1 << (84 - 64));
35580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG OldItalicMask = SkTEndian_SwapBE32(1 << (85 - 64));
35680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG GothicMask = SkTEndian_SwapBE32(1 << (86 - 64));
35780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG DeseretMask = SkTEndian_SwapBE32(1 << (87 - 64));
35880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MusicalSymbolsMask = SkTEndian_SwapBE32(1 << (88 - 64));
35980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MathematicalAlphanumericSymbolsMask = SkTEndian_SwapBE32(1 << (89 - 64));
36080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG PrivateUseMask = SkTEndian_SwapBE32(1 << (90 - 64));
36180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG VariationSelectorsMask = SkTEndian_SwapBE32(1 << (91 - 64));
36280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG TagsMask = SkTEndian_SwapBE32(1 << (92 - 64));
36380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            };
36480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_ULONG value[4];
36580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } raw;
36680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    } ulUnicodeRange;
36780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_CHAR achVendID[4];
36880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    union Selection {
36980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Field {
37080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //8-15
37180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
37280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved08,
37380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved09,
37480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved10,
37580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved11,
37680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved12,
37780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved13,
37880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved14,
37980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved15)
38080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //0-7
38180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
38280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Italic,
38380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Underscore,
38480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Negative,
38580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Outlined,
38680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Strikeout,
38780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Bold,
38880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Regular,
38980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved07)
39080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } field;
39180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Raw {
39280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT ItalicMask = SkTEndian_SwapBE16(1 << 0);
39380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT UnderscoreMask = SkTEndian_SwapBE16(1 << 1);
39480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT NegativeMask = SkTEndian_SwapBE16(1 << 2);
39580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT OutlinedMask = SkTEndian_SwapBE16(1 << 3);
39680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT StrikeoutMask = SkTEndian_SwapBE16(1 << 4);
39780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT BoldMask = SkTEndian_SwapBE16(1 << 5);
39880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            static const SK_OT_USHORT RegularMask = SkTEndian_SwapBE16(1 << 6);
39980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_USHORT value;
40080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } raw;
40180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    } fsSelection;
40280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usFirstCharIndex;
40380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usLastCharIndex;
40480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    //version0
40580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT sTypoAscender;
40680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT sTypoDescender;
40780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT sTypoLineGap;
40880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usWinAscent;
40980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usWinDescent;
41080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    //version1
41180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    union CodePageRange {
41280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Field {
41380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 24-31
41480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
41580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved24,
41680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved25,
41780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved26,
41880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved27,
41980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved28,
42080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MacintoshCharacterSet,
42180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                OEMCharacterSet,
42280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                SymbolCharacterSet)
42380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 16-23
42480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
42580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Thai_874,
42680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                JISJapan_932,
42780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                ChineseSimplified_936,
42880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                KoreanWansung_949,
42980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                ChineseTraditional_950,
43080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                KoreanJohab_1361,
43180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved22,
43280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved23)
43380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 8-15
43480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
43580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Vietnamese,
43680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved09,
43780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved10,
43880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved11,
43980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved12,
44080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved13,
44180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved14,
44280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved15)
44380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l0 0-7
44480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
44580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Latin1_1252,
44680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Latin2EasternEurope_1250,
44780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Cyrillic_1251,
44880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Greek_1253,
44980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Turkish_1254,
45080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Hebrew_1255,
45180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Arabic_1256,
45280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                WindowsBaltic_1257)
45380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
45480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 24-31
45580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
45680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                IBMTurkish_857,
45780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                IBMCyrillic_855,
45880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Latin2_852,
45980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MSDOSBaltic_775,
46080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Greek_737,
46180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Arabic_708,
46280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                WELatin1_850,
46380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                US_437)
46480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 16-23
46580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
46680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                IBMGreek_869,
46780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MSDOSRussian_866,
46880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MSDOSNordic_865,
46980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Arabic_864,
47080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MSDOSCanadianFrench_863,
47180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Hebrew_862,
47280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MSDOSIcelandic_861,
47380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                MSDOSPortuguese_860)
47480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 8-15
47580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
47680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved40,
47780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved41,
47880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved42,
47980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved43,
48080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved44,
48180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved45,
48280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved46,
48380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved47)
48480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            //l1 0-7
48580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_BYTE_BITFIELD(
48680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved32,
48780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved33,
48880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved34,
48980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved35,
49080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved36,
49180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved37,
49280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved38,
49380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                Reserved39)
49480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } field;
49580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        struct Raw {
49680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            struct l0 {
49780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Latin1_1252Mask = SkTEndian_SwapBE32(1 << 0);
49880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Latin2EasternEurope_1250Mask = SkTEndian_SwapBE32(1 << 1);
49980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Cyrillic_1251Mask = SkTEndian_SwapBE32(1 << 2);
50080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Greek_1253Mask = SkTEndian_SwapBE32(1 << 3);
50180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Turkish_1254Mask = SkTEndian_SwapBE32(1 << 4);
50280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Hebrew_1255Mask = SkTEndian_SwapBE32(1 << 5);
50380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Arabic_1256Mask = SkTEndian_SwapBE32(1 << 6);
50480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG WindowsBaltic_1257Mask = SkTEndian_SwapBE32(1 << 7);
50580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Vietnamese_1258Mask = SkTEndian_SwapBE32(1 << 8);
50680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Thai_874Mask = SkTEndian_SwapBE32(1 << 16);
50780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG JISJapan_932Mask = SkTEndian_SwapBE32(1 << 17);
50880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ChineseSimplified_936Mask = SkTEndian_SwapBE32(1 << 18);
50980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG KoreanWansung_949Mask = SkTEndian_SwapBE32(1 << 19);
51080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG ChineseTraditional_950Mask = SkTEndian_SwapBE32(1 << 20);
51180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG KoreanJohab_1361Mask = SkTEndian_SwapBE32(1 << 21);
51280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MacintoshCharacterSetMask = SkTEndian_SwapBE32(1 << 29);
51380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG OEMCharacterSetMask = SkTEndian_SwapBE32(1 << 30);
51480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG SymbolCharacterSetMask = SkTEndian_SwapBE32(1 << 31);
51580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            };
51680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            struct l1 {
51780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG IBMGreek_869Mask = SkTEndian_SwapBE32(1 << (48 - 32));
51880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MSDOSRussian_866Mask = SkTEndian_SwapBE32(1 << (49 - 32));
51980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MSDOSNordic_865Mask = SkTEndian_SwapBE32(1 << (50 - 32));
52080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Arabic_864Mask = SkTEndian_SwapBE32(1 << (51 - 32));
52180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MSDOSCanadianFrench_863Mask = SkTEndian_SwapBE32(1 << (52 - 32));
52280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Hebrew_862Mask = SkTEndian_SwapBE32(1 << (53 - 32));
52380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MSDOSIcelandic_861Mask = SkTEndian_SwapBE32(1 << (54 - 32));
52480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MSDOSPortuguese_860Mask = SkTEndian_SwapBE32(1 << (55 - 32));
52580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG IBMTurkish_857Mask = SkTEndian_SwapBE32(1 << (56 - 32));
52680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG IBMCyrillic_855Mask = SkTEndian_SwapBE32(1 << (57 - 32));
52780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Latin2_852Mask = SkTEndian_SwapBE32(1 << (58 - 32));
52880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG MSDOSBaltic_775Mask = SkTEndian_SwapBE32(1 << (59 - 32));
52980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Greek_737Mask = SkTEndian_SwapBE32(1 << (60 - 32));
53080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG Arabic_708Mask = SkTEndian_SwapBE32(1 << (61 - 32));
53180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG WELatin1_850Mask = SkTEndian_SwapBE32(1 << (62 - 32));
53280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru                static const SK_OT_ULONG US_437Mask = SkTEndian_SwapBE32(1 << (63 - 32));
53380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            };
53480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru            SK_OT_ULONG value[2];
53580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        } raw;
53680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    } ulCodePageRange;
53780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    //version2
53880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT sxHeight;
53980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_SHORT sCapHeight;
54080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usDefaultChar;
54180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usBreakChar;
54280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_OT_USHORT usMaxContext;
54380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru};
54480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
54580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#pragma pack(pop)
54680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
54780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
54880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSK_COMPILE_ASSERT(sizeof(SkOTTableOS2_V3) == 96, sizeof_SkOTTableOS2_V3_not_96);
54980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
55080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif
551