diff --git a/.gitignore b/.gitignore
index 7e6cfd6136..f8f9741bb1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,24 +112,3 @@ tests/*/publish/
# Android
project.properties
-
-# Ignore large binary files
-external/curl
-external/freetype2
-external/glfw3
-external/jpeg
-external/linux-specific
-external/lua/lua/prebuilt/ios
-external/lua/luajit/prebuilt
-external/png
-external/sqlite3
-external/tiff
-external/webp
-external/websockets
-external/win32-specific
-external/winrt-specific
-external/wp8-specific
-templates/lua-template-runtime/runtime
-tests/cpp-tests/Resources
-tests/lua-tests/res
-/cocos2d-x-deps-v3-1.zip
diff --git a/tests/cpp-tests/Resources/.gitignore b/tests/cpp-tests/Resources/.gitignore
new file mode 100755
index 0000000000..1d65afe366
--- /dev/null
+++ b/tests/cpp-tests/Resources/.gitignore
@@ -0,0 +1,2 @@
+#Do now ignore Marmalade icf files
+!*.icf
diff --git a/tests/cpp-tests/Resources/CocosBuilderExample.ccbproj b/tests/cpp-tests/Resources/CocosBuilderExample.ccbproj
new file mode 100755
index 0000000000..c47ec34ace
--- /dev/null
+++ b/tests/cpp-tests/Resources/CocosBuilderExample.ccbproj
@@ -0,0 +1,72 @@
+
+
+
+
+ deviceOrientationLandscapeLeft
+
+ deviceOrientationLandscapeRight
+
+ deviceOrientationPortrait
+
+ deviceOrientationUpsideDown
+
+ exporter
+ ccbi
+ fileType
+ CocosBuilderProject
+ fileVersion
+ 1
+ flattenPaths
+
+ generatedSpriteSheets
+
+ javascriptBased
+
+ javascriptMainCCB
+
+ onlyPublishCCBs
+
+ publishDirectory
+ .
+ publishDirectoryAndroid
+
+ publishDirectoryHTML5
+
+ publishEnabledAndroid
+
+ publishEnabledHTML5
+
+ publishEnablediPhone
+
+ publishResolutionHTML5_height
+ 640
+ publishResolutionHTML5_scale
+ 2
+ publishResolutionHTML5_width
+ 960
+ publishResolution_
+
+ publishResolution_hd
+
+ publishResolution_ipad
+
+ publishResolution_ipadhd
+
+ publishResolution_large
+
+ publishResolution_medium
+
+ publishResolution_small
+
+ publishResolution_xlarge
+
+ publishResolution_xsmall
+
+ publishToZipFile
+
+ resourceAutoScaleFactor
+ 4
+ resourcePaths
+
+
+
diff --git a/tests/cpp-tests/Resources/CocosBuilderExample.ccbresourcelog b/tests/cpp-tests/Resources/CocosBuilderExample.ccbresourcelog
new file mode 100755
index 0000000000..9f6795b5a0
--- /dev/null
+++ b/tests/cpp-tests/Resources/CocosBuilderExample.ccbresourcelog
@@ -0,0 +1,416 @@
+animations/animations-2.plist
+animations/animations.plist
+animations/dragon_animation.png
+animations/ghosts.plist
+animations/ghosts.png
+animations/grossini-aliases.plist
+animations/grossini-aliases.png
+animations/grossini.plist
+animations/grossini.png
+animations/grossini_blue.plist
+animations/grossini_blue.png
+animations/grossini_family.plist
+animations/grossini_family.png
+animations/grossini_gray.plist
+animations/grossini_gray.png
+ccb/animated-grossini.plist
+ccb/animated-grossini.png
+ccb/btn-a-0.png
+ccb/btn-a-1.png
+ccb/btn-a-2.png
+ccb/btn-b-0.png
+ccb/btn-b-1.png
+ccb/btn-b-2.png
+ccb/btn-back-0.png
+ccb/btn-back-1.png
+ccb/btn-test-0.png
+ccb/btn-test-1.png
+ccb/btn-test-2.png
+ccb/burst.png
+ccb/ccb/TestAnimations.ccbi
+ccb/ccb/TestAnimationsSub.ccbi
+ccb/ccb/TestButtons.ccbi
+ccb/ccb/TestHeader.ccbi
+ccb/ccb/TestLabels.ccbi
+ccb/ccb/TestMenus.ccbi
+ccb/ccb/TestParticleSystems.ccbi
+ccb/ccb/TestScrollViews.ccbi
+ccb/ccb/TestScrollViewsContentA.ccbi
+ccb/ccb/TestSprites.ccbi
+ccb/comic andy.ttf
+ccb/flower.jpg
+ccb/grossini-generic.plist
+ccb/grossini-generic.png
+ccb/HelloCocosBuilder.ccbi
+ccb/jungle-left.png
+ccb/jungle-right.png
+ccb/jungle.png
+ccb/logo-icon.png
+ccb/logo.png
+ccb/markerfelt24shadow.fnt
+ccb/markerfelt24shadow.png
+ccb/particle-fire.png
+ccb/particle-smoke.png
+ccb/particle-snow.png
+ccb/particle-stars.png
+ccb/scale-9-demo.png
+extensions/background.png
+extensions/button.png
+extensions/buttonBackground.png
+extensions/buttonHighlighted.png
+extensions/CCControlColourPickerSpriteSheet.plist
+extensions/CCControlColourPickerSpriteSheet.png
+extensions/green_edit.png
+extensions/orange_edit.png
+extensions/potentiometerButton.png
+extensions/potentiometerProgress.png
+extensions/potentiometerTrack.png
+extensions/ribbon.png
+extensions/sliderProgress.png
+extensions/sliderProgress2.png
+extensions/sliderThumb.png
+extensions/sliderTrack.png
+extensions/sliderTrack2.png
+extensions/stepper-minus.png
+extensions/stepper-plus.png
+extensions/switch-mask.png
+extensions/switch-off.png
+extensions/switch-on.png
+extensions/switch-thumb.png
+extensions/yellow_edit.png
+fonts/A Damn Mess.ttf
+fonts/Abberancy.ttf
+fonts/Abduction.ttf
+fonts/American Typewriter.ttf
+fonts/arial-unicode-26.fnt
+fonts/arial-unicode-26.png
+fonts/arial.ttf
+fonts/arial16.fnt
+fonts/arial16.png
+fonts/bitmapFontChinese.fnt
+fonts/bitmapFontChinese.png
+fonts/bitmapFontTest.fnt
+fonts/bitmapFontTest.png
+fonts/bitmapFontTest2.fnt
+fonts/bitmapFontTest2.png
+fonts/bitmapFontTest3.fnt
+fonts/bitmapFontTest3.png
+fonts/bitmapFontTest4.fnt
+fonts/bitmapFontTest4.png
+fonts/bitmapFontTest5.fnt
+fonts/bitmapFontTest5.png
+fonts/Courier New.ttf
+fonts/font-issue1343-hd.fnt
+fonts/font-issue1343-hd.png
+fonts/font-issue1343.fnt
+fonts/font-issue1343.png
+fonts/futura-48.fnt
+fonts/futura-48.png
+fonts/geneva-32.fnt
+fonts/helvetica-32.fnt
+fonts/helvetica-geneva-32.png
+fonts/konqa32.fnt
+fonts/konqa32.png
+fonts/labelatlas.png
+fonts/larabie-16.plist
+fonts/larabie-16.png
+fonts/Marker Felt.ttf
+fonts/markerFelt.fnt
+fonts/markerFelt.png
+fonts/Paint Boy.ttf
+fonts/Schwarzwald Regular.ttf
+fonts/Scissor Cuts.ttf
+fonts/tahoma.ttf
+fonts/Thonburi.ttf
+fonts/ThonburiBold.ttf
+fonts/tuffy_bold_italic-charmap.plist
+fonts/tuffy_bold_italic-charmap.png
+fonts/west_england-64.fnt
+fonts/west_england-64.png
+fps_images.png
+hd/animations/dragon_animation.png
+hd/ccb/burst.png
+hd/extensions/background.png
+hd/extensions/button.png
+hd/extensions/buttonHighlighted.png
+hd/extensions/CCControlColourPickerSpriteSheet.plist
+hd/extensions/CCControlColourPickerSpriteSheet.png
+hd/extensions/potentiometerButton.png
+hd/extensions/potentiometerProgress.png
+hd/extensions/potentiometerTrack.png
+hd/extensions/ribbon.png
+hd/extensions/sliderProgress.png
+hd/extensions/sliderProgress2.png
+hd/extensions/sliderThumb.png
+hd/extensions/sliderTrack.png
+hd/extensions/sliderTrack2.png
+hd/extensions/stepper-minus.png
+hd/extensions/stepper-plus.png
+hd/fonts/font-issue1343.fnt
+hd/fonts/font-issue1343.png
+hd/fonts/konqa32.fnt
+hd/fonts/konqa32.png
+hd/fonts/labelatlas.png
+hd/fonts/larabie-16.plist
+hd/fonts/larabie-16.png
+hd/fonts/markerFelt.fnt
+hd/fonts/markerFelt.png
+hd/fonts/tuffy_bold_italic-charmap.plist
+hd/fonts/tuffy_bold_italic-charmap.png
+hd/fps_images.png
+hd/Images/arrows.png
+hd/Images/arrowsBar.png
+hd/Images/b1.png
+hd/Images/b2.png
+hd/Images/background1.jpg
+hd/Images/background1.png
+hd/Images/background2.jpg
+hd/Images/background2.png
+hd/Images/background3.png
+hd/Images/ball.png
+hd/Images/blocks.png
+hd/Images/bugs/circle.plist
+hd/Images/bugs/circle.png
+hd/Images/bugs/picture.png
+hd/Images/bugs/test_issue_1179.png
+hd/Images/close.png
+hd/Images/f1.png
+hd/Images/f2.png
+hd/Images/grossini.png
+hd/Images/grossini_dance_atlas.png
+hd/Images/grossinis_sister1.png
+hd/Images/grossinis_sister2.png
+hd/Images/Icon.png
+hd/Images/only_in_hd.pvr.ccz
+hd/Images/paddle.png
+hd/Images/particles.png
+hd/Images/r1.png
+hd/Images/r2.png
+hd/TileMaps/tiles.png
+hd/TileMaps/tmw_desert_spacing.png
+Hello.png
+Images/arrows.png
+Images/arrowsBar.png
+Images/atlastest.png
+Images/b1.png
+Images/b2.png
+Images/background.png
+Images/background1.jpg
+Images/background1.png
+Images/background2.jpg
+Images/background2.png
+Images/background3.jpg
+Images/background3.png
+Images/ball.png
+Images/bitmapFontTest3.fnt
+Images/bitmapFontTest3.png
+Images/blocks.png
+Images/btn-about-normal.png
+Images/btn-about-selected.png
+Images/btn-highscores-normal.png
+Images/btn-highscores-selected.png
+Images/btn-play-normal.png
+Images/btn-play-selected.png
+Images/bugs/bug886.jpg
+Images/bugs/bug886.png
+Images/bugs/circle.plist
+Images/bugs/circle.png
+Images/bugs/corner.png
+Images/bugs/edge.png
+Images/bugs/fill.png
+Images/bugs/picture.png
+Images/bugs/RetinaDisplay.jpg
+Images/close.png
+Images/Comet.png
+Images/f1.png
+Images/f2.png
+Images/fire-grayscale.png
+Images/fire.png
+Images/Fog.png
+Images/grossini.png
+Images/grossini_128x256_mipmap.pvr
+Images/grossini_dance_01.png
+Images/grossini_dance_02.png
+Images/grossini_dance_03.png
+Images/grossini_dance_04.png
+Images/grossini_dance_05.png
+Images/grossini_dance_06.png
+Images/grossini_dance_07.png
+Images/grossini_dance_08.png
+Images/grossini_dance_09.png
+Images/grossini_dance_10.png
+Images/grossini_dance_11.png
+Images/grossini_dance_12.png
+Images/grossini_dance_13.png
+Images/grossini_dance_14.png
+Images/grossini_dance_atlas-mono.png
+Images/grossini_dance_atlas.png
+Images/grossini_dance_atlas_nomipmap.png
+Images/grossini_pvr_rgba4444.pvr
+Images/grossini_pvr_rgba8888.pvr
+Images/grossinis_sister1-testalpha.png
+Images/grossinis_sister1-testalpha.ppng
+Images/grossinis_sister1.png
+Images/grossinis_sister2.png
+Images/HelloWorld.png
+Images/Icon.png
+Images/labelatlas.png
+Images/landscape-1024x1024.png
+Images/logo-mipmap.pvr
+Images/logo-nomipmap.pvr
+Images/menuitemsprite.png
+Images/paddle.png
+Images/particles.png
+Images/pattern1.png
+Images/Pea.png
+Images/piece.png
+Images/PlanetCute-1024x1024.png
+Images/powered.png
+Images/r1.png
+Images/r2.png
+Images/SendScoreButton.png
+Images/SendScoreButtonPressed.png
+Images/snow.png
+Images/SpinningPeas.png
+Images/SpookyPeas.png
+Images/sprites_test/sprite-0-0.png
+Images/sprites_test/sprite-0-1.png
+Images/sprites_test/sprite-0-2.png
+Images/sprites_test/sprite-0-3.png
+Images/sprites_test/sprite-0-4.png
+Images/sprites_test/sprite-0-5.png
+Images/sprites_test/sprite-0-6.png
+Images/sprites_test/sprite-0-7.png
+Images/sprites_test/sprite-1-0.png
+Images/sprites_test/sprite-1-1.png
+Images/sprites_test/sprite-1-2.png
+Images/sprites_test/sprite-1-3.png
+Images/sprites_test/sprite-1-4.png
+Images/sprites_test/sprite-1-5.png
+Images/sprites_test/sprite-1-6.png
+Images/sprites_test/sprite-1-7.png
+Images/sprites_test/sprite-2-0.png
+Images/sprites_test/sprite-2-1.png
+Images/sprites_test/sprite-2-2.png
+Images/sprites_test/sprite-2-3.png
+Images/sprites_test/sprite-2-4.png
+Images/sprites_test/sprite-2-5.png
+Images/sprites_test/sprite-2-6.png
+Images/sprites_test/sprite-2-7.png
+Images/sprites_test/sprite-3-0.png
+Images/sprites_test/sprite-3-1.png
+Images/sprites_test/sprite-3-2.png
+Images/sprites_test/sprite-3-3.png
+Images/sprites_test/sprite-3-4.png
+Images/sprites_test/sprite-3-5.png
+Images/sprites_test/sprite-3-6.png
+Images/sprites_test/sprite-3-7.png
+Images/sprites_test/sprite-4-0.png
+Images/sprites_test/sprite-4-1.png
+Images/sprites_test/sprite-4-2.png
+Images/sprites_test/sprite-4-3.png
+Images/sprites_test/sprite-4-4.png
+Images/sprites_test/sprite-4-5.png
+Images/sprites_test/sprite-4-6.png
+Images/sprites_test/sprite-4-7.png
+Images/sprites_test/sprite-5-0.png
+Images/sprites_test/sprite-5-1.png
+Images/sprites_test/sprite-5-2.png
+Images/sprites_test/sprite-5-3.png
+Images/sprites_test/sprite-5-4.png
+Images/sprites_test/sprite-5-5.png
+Images/sprites_test/sprite-5-6.png
+Images/sprites_test/sprite-5-7.png
+Images/sprites_test/sprite-6-0.png
+Images/sprites_test/sprite-6-1.png
+Images/sprites_test/sprite-6-2.png
+Images/sprites_test/sprite-6-3.png
+Images/sprites_test/sprite-6-4.png
+Images/sprites_test/sprite-6-5.png
+Images/sprites_test/sprite-6-6.png
+Images/sprites_test/sprite-6-7.png
+Images/sprites_test/sprite-7-0.png
+Images/sprites_test/sprite-7-1.png
+Images/sprites_test/sprite-7-2.png
+Images/sprites_test/sprite-7-3.png
+Images/sprites_test/sprite-7-4.png
+Images/sprites_test/sprite-7-5.png
+Images/sprites_test/sprite-7-6.png
+Images/sprites_test/sprite-7-7.png
+Images/spritesheet1.png
+Images/stars-grayscale.png
+Images/stars.png
+Images/stars2-grayscale.png
+Images/stars2.png
+Images/streak.png
+Images/test-rgba1.png
+Images/test_1021x1024.png
+Images/test_1021x1024_a8.pvr
+Images/test_1021x1024_rgb888.pvr
+Images/test_1021x1024_rgba4444.pvr
+Images/test_1021x1024_rgba8888.pvr
+Images/test_blend.png
+Images/test_image-bad_encoding.pvr
+Images/test_image.png
+Images/test_image.pvr
+Images/test_image_a8.pvr
+Images/test_image_ai88.pvr
+Images/test_image_bgra8888.pvr
+Images/test_image_i8.pvr
+Images/test_image_pvrtc2bpp.pvr
+Images/test_image_pvrtc4bpp.pvr
+Images/test_image_rgb565.pvr
+Images/test_image_rgb888.pvr
+Images/test_image_rgba4444.pvr
+Images/test_image_rgba4444.pvr.ccz
+Images/test_image_rgba4444_mipmap.pvr
+Images/test_image_rgba5551.pvr
+Images/test_image_rgba8888.pvr
+Images/texture1024x1024.png
+Images/texture2048x2048.png
+Images/texture512x512.png
+Images/white-512x512.png
+ipad/ccb/burst.png
+ipad/ccb/jungle-left.png
+ipad/ccb/jungle-right.png
+ipad/extensions/background.png
+ipad/extensions/CCControlColourPickerSpriteSheet.plist
+ipad/extensions/CCControlColourPickerSpriteSheet.png
+ipad/extensions/potentiometerButton.png
+ipad/extensions/potentiometerProgress.png
+ipad/extensions/potentiometerTrack.png
+ipadhd/extensions/potentiometerButton.png
+ipadhd/extensions/potentiometerProgress.png
+ipadhd/extensions/potentiometerTrack.png
+ipadhd/extensions/stepper-minus.png
+ipadhd/extensions/stepper-plus.png
+ipadhd/fps_images.png
+Particles/BoilingFoam.plist
+Particles/BurstPipe.plist
+Particles/Comet.plist
+Particles/debian.plist
+Particles/ExplodingRing.plist
+Particles/Flower.plist
+Particles/Galaxy.plist
+Particles/LavaFlow.plist
+Particles/Phoenix.plist
+Particles/SmallSun.plist
+Particles/SpinningPeas.plist
+Particles/Spiral.plist
+Particles/SpookyPeas.plist
+Particles/TestPremultipliedAlpha.plist
+Particles/Upsidedown.plist
+TileMaps/fixed-ortho-test2.png
+TileMaps/hexa-tiles.png
+TileMaps/iso-test.png
+TileMaps/iso-test2.png
+TileMaps/iso.png
+TileMaps/ortho-test1.png
+TileMaps/ortho-test1_bw.png
+TileMaps/ortho-test2.png
+TileMaps/tiles.png
+TileMaps/tmw_desert_spacing.png
+zwoptex/grossini-generic.plist
+zwoptex/grossini-generic.png
+zwoptex/grossini.plist
+zwoptex/grossini.png
diff --git a/tests/cpp-tests/Resources/Hello.png b/tests/cpp-tests/Resources/Hello.png
new file mode 100755
index 0000000000..5fe89fb5bd
Binary files /dev/null and b/tests/cpp-tests/Resources/Hello.png differ
diff --git a/tests/cpp-tests/Resources/Images/Comet.png b/tests/cpp-tests/Resources/Images/Comet.png
new file mode 100755
index 0000000000..fa1209bc51
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/Comet.png differ
diff --git a/tests/cpp-tests/Resources/Images/CyanSquare.png b/tests/cpp-tests/Resources/Images/CyanSquare.png
new file mode 100755
index 0000000000..6d0efb7003
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/CyanSquare.png differ
diff --git a/tests/cpp-tests/Resources/Images/CyanTriangle.png b/tests/cpp-tests/Resources/Images/CyanTriangle.png
new file mode 100755
index 0000000000..b443ce9ba9
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/CyanTriangle.png differ
diff --git a/tests/cpp-tests/Resources/Images/ETC1.pkm b/tests/cpp-tests/Resources/Images/ETC1.pkm
new file mode 100755
index 0000000000..7807e7efeb
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/ETC1.pkm differ
diff --git a/tests/cpp-tests/Resources/Images/Fog.png b/tests/cpp-tests/Resources/Images/Fog.png
new file mode 100755
index 0000000000..fc30666cf7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/Fog.png differ
diff --git a/tests/cpp-tests/Resources/Images/HelloWorld.png b/tests/cpp-tests/Resources/Images/HelloWorld.png
new file mode 100755
index 0000000000..5fe89fb5bd
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/HelloWorld.png differ
diff --git a/tests/cpp-tests/Resources/Images/Icon.png b/tests/cpp-tests/Resources/Images/Icon.png
new file mode 100755
index 0000000000..4fcc6fddff
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/Icon.png differ
diff --git a/tests/cpp-tests/Resources/Images/MagentaSquare.png b/tests/cpp-tests/Resources/Images/MagentaSquare.png
new file mode 100755
index 0000000000..e9f161e7ac
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/MagentaSquare.png differ
diff --git a/tests/cpp-tests/Resources/Images/Pea.png b/tests/cpp-tests/Resources/Images/Pea.png
new file mode 100755
index 0000000000..4b97bd1265
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/Pea.png differ
diff --git a/tests/cpp-tests/Resources/Images/SendScoreButton.png b/tests/cpp-tests/Resources/Images/SendScoreButton.png
new file mode 100755
index 0000000000..c0b900a5eb
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/SendScoreButton.png differ
diff --git a/tests/cpp-tests/Resources/Images/SendScoreButtonPressed.png b/tests/cpp-tests/Resources/Images/SendScoreButtonPressed.png
new file mode 100755
index 0000000000..71a4316b42
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/SendScoreButtonPressed.png differ
diff --git a/tests/cpp-tests/Resources/Images/SpinningPeas.png b/tests/cpp-tests/Resources/Images/SpinningPeas.png
new file mode 100755
index 0000000000..378d55f052
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/SpinningPeas.png differ
diff --git a/tests/cpp-tests/Resources/Images/SpookyPeas.png b/tests/cpp-tests/Resources/Images/SpookyPeas.png
new file mode 100755
index 0000000000..378d55f052
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/SpookyPeas.png differ
diff --git a/tests/cpp-tests/Resources/Images/YellowSquare.png b/tests/cpp-tests/Resources/Images/YellowSquare.png
new file mode 100755
index 0000000000..a6b4818def
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/YellowSquare.png differ
diff --git a/tests/cpp-tests/Resources/Images/YellowTriangle.png b/tests/cpp-tests/Resources/Images/YellowTriangle.png
new file mode 100755
index 0000000000..e6e03b352e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/YellowTriangle.png differ
diff --git a/tests/cpp-tests/Resources/Images/arrows.png b/tests/cpp-tests/Resources/Images/arrows.png
new file mode 100755
index 0000000000..b32243805d
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/arrows.png differ
diff --git a/tests/cpp-tests/Resources/Images/arrowsBar.png b/tests/cpp-tests/Resources/Images/arrowsBar.png
new file mode 100755
index 0000000000..2c70da3c7e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/arrowsBar.png differ
diff --git a/tests/cpp-tests/Resources/Images/atlastest.png b/tests/cpp-tests/Resources/Images/atlastest.png
new file mode 100755
index 0000000000..2aaf84affb
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/atlastest.png differ
diff --git a/tests/cpp-tests/Resources/Images/b1.png b/tests/cpp-tests/Resources/Images/b1.png
new file mode 100755
index 0000000000..547e1c78c6
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/b1.png differ
diff --git a/tests/cpp-tests/Resources/Images/b2.png b/tests/cpp-tests/Resources/Images/b2.png
new file mode 100755
index 0000000000..2818054a9c
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/b2.png differ
diff --git a/tests/cpp-tests/Resources/Images/background.png b/tests/cpp-tests/Resources/Images/background.png
new file mode 100755
index 0000000000..61c1c53747
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background.png differ
diff --git a/tests/cpp-tests/Resources/Images/background1.jpg b/tests/cpp-tests/Resources/Images/background1.jpg
new file mode 100755
index 0000000000..4dc6f5683e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background1.jpg differ
diff --git a/tests/cpp-tests/Resources/Images/background1.png b/tests/cpp-tests/Resources/Images/background1.png
new file mode 100755
index 0000000000..abd4b23cdf
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background1.png differ
diff --git a/tests/cpp-tests/Resources/Images/background2.jpg b/tests/cpp-tests/Resources/Images/background2.jpg
new file mode 100755
index 0000000000..d04c7f9966
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background2.jpg differ
diff --git a/tests/cpp-tests/Resources/Images/background2.png b/tests/cpp-tests/Resources/Images/background2.png
new file mode 100755
index 0000000000..b56dda22b7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background2.png differ
diff --git a/tests/cpp-tests/Resources/Images/background3.jpg b/tests/cpp-tests/Resources/Images/background3.jpg
new file mode 100755
index 0000000000..5cd54279f3
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background3.jpg differ
diff --git a/tests/cpp-tests/Resources/Images/background3.png b/tests/cpp-tests/Resources/Images/background3.png
new file mode 100755
index 0000000000..15d3c36ce1
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/background3.png differ
diff --git a/tests/cpp-tests/Resources/Images/ball.png b/tests/cpp-tests/Resources/Images/ball.png
new file mode 100755
index 0000000000..632bf68652
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/ball.png differ
diff --git a/tests/cpp-tests/Resources/Images/bitmapFontTest3.fnt b/tests/cpp-tests/Resources/Images/bitmapFontTest3.fnt
new file mode 100755
index 0000000000..83499d6698
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/bitmapFontTest3.fnt
@@ -0,0 +1,102 @@
+info face="ActionJackson" size=28 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=30 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="bitmapFontTest3.png"
+chars count=94
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=24 xadvance=23 page=0 chnl=0
+char id=114 x=0 y=0 width=16 height=25 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=0
+char id=82 x=16 y=0 width=16 height=25 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=0
+char id=62 x=32 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=60 x=41 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=125 x=51 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=123 x=60 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=93 x=70 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=91 x=79 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=41 x=89 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=40 x=98 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=56 x=108 y=0 width=17 height=24 xoffset=0 yoffset=1 xadvance=15 page=0 chnl=0
+char id=105 x=125 y=0 width=19 height=24 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0
+char id=101 x=144 y=0 width=18 height=24 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=0
+char id=73 x=162 y=0 width=19 height=24 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0
+char id=69 x=181 y=0 width=18 height=24 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=0
+char id=59 x=199 y=0 width=11 height=23 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0
+char id=63 x=210 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=33 x=226 y=0 width=8 height=23 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
+char id=48 x=234 y=0 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=57 x=252 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=54 x=268 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=53 x=285 y=0 width=19 height=23 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=52 x=304 y=0 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=51 x=322 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=49 x=338 y=0 width=16 height=23 xoffset=1 yoffset=2 xadvance=15 page=0 chnl=0
+char id=122 x=354 y=0 width=19 height=23 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=121 x=373 y=0 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=118 x=393 y=0 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=116 x=414 y=0 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=113 x=435 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=112 x=452 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=110 x=469 y=0 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=109 x=0 y=25 width=25 height=23 xoffset=0 yoffset=2 xadvance=22 page=0 chnl=0
+char id=108 x=25 y=25 width=21 height=23 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=0
+char id=107 x=46 y=25 width=19 height=23 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0
+char id=106 x=65 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=100 x=85 y=25 width=19 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=98 x=104 y=25 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=97 x=122 y=25 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=90 x=143 y=25 width=19 height=23 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=89 x=162 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=86 x=182 y=25 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=84 x=203 y=25 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=81 x=224 y=25 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=80 x=241 y=25 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=78 x=258 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=77 x=278 y=25 width=25 height=23 xoffset=0 yoffset=2 xadvance=22 page=0 chnl=0
+char id=76 x=303 y=25 width=21 height=23 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=0
+char id=75 x=324 y=25 width=19 height=23 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0
+char id=74 x=343 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=68 x=363 y=25 width=19 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=66 x=382 y=25 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=65 x=400 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=55 x=420 y=25 width=18 height=22 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=50 x=438 y=25 width=18 height=22 xoffset=1 yoffset=2 xadvance=17 page=0 chnl=0
+char id=120 x=456 y=25 width=23 height=22 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=117 x=479 y=25 width=22 height=22 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=115 x=0 y=48 width=16 height=22 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=111 x=16 y=48 width=17 height=22 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=102 x=33 y=48 width=20 height=22 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=88 x=53 y=48 width=23 height=22 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=85 x=76 y=48 width=22 height=22 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=83 x=98 y=48 width=16 height=22 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=79 x=114 y=48 width=17 height=22 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=70 x=131 y=48 width=20 height=22 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=92 x=151 y=48 width=12 height=21 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=119 x=163 y=48 width=24 height=21 xoffset=0 yoffset=2 xadvance=21 page=0 chnl=0
+char id=104 x=187 y=48 width=20 height=21 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=103 x=207 y=48 width=22 height=21 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=87 x=229 y=48 width=24 height=21 xoffset=0 yoffset=2 xadvance=21 page=0 chnl=0
+char id=72 x=253 y=48 width=20 height=21 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=71 x=273 y=48 width=22 height=21 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=47 x=295 y=48 width=11 height=20 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=124 x=306 y=48 width=11 height=20 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=99 x=317 y=48 width=18 height=20 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=67 x=335 y=48 width=18 height=20 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=126 x=353 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=38 x=370 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=35 x=387 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=37 x=404 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=36 x=421 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=94 x=438 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=64 x=455 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=43 x=472 y=48 width=17 height=17 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=58 x=489 y=48 width=9 height=17 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
+char id=61 x=0 y=70 width=17 height=14 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=0
+char id=44 x=17 y=70 width=11 height=14 xoffset=0 yoffset=16 xadvance=9 page=0 chnl=0
+char id=39 x=28 y=70 width=11 height=14 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=0
+char id=96 x=39 y=70 width=10 height=13 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=0
+char id=34 x=49 y=70 width=20 height=13 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=0
+char id=95 x=69 y=70 width=16 height=8 xoffset=1 yoffset=17 xadvance=16 page=0 chnl=0
+char id=45 x=85 y=70 width=17 height=8 xoffset=1 yoffset=10 xadvance=16 page=0 chnl=0
+char id=42 x=102 y=70 width=8 height=7 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=0
+char id=46 x=110 y=70 width=9 height=7 xoffset=0 yoffset=18 xadvance=7 page=0 chnl=0
+kernings count=1
+kerning first=79 second=66 amount=-1
+kerning first=79 second=89 amount=-3
diff --git a/tests/cpp-tests/Resources/Images/bitmapFontTest3.png b/tests/cpp-tests/Resources/Images/bitmapFontTest3.png
new file mode 100755
index 0000000000..d19379f5e7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bitmapFontTest3.png differ
diff --git a/tests/cpp-tests/Resources/Images/blocks.png b/tests/cpp-tests/Resources/Images/blocks.png
new file mode 100755
index 0000000000..c409b3bbbd
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/blocks.png differ
diff --git a/tests/cpp-tests/Resources/Images/blocks9.png b/tests/cpp-tests/Resources/Images/blocks9.png
new file mode 100755
index 0000000000..b02c0c7ca0
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/blocks9.png differ
diff --git a/tests/cpp-tests/Resources/Images/blocks9r.png b/tests/cpp-tests/Resources/Images/blocks9r.png
new file mode 100755
index 0000000000..d6c08720ae
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/blocks9r.png differ
diff --git a/tests/cpp-tests/Resources/Images/blocks9ss.plist b/tests/cpp-tests/Resources/Images/blocks9ss.plist
new file mode 100755
index 0000000000..d6f649cf75
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/blocks9ss.plist
@@ -0,0 +1,87 @@
+
+
+
+
+ frames
+
+ blocks9.png
+
+ frame
+ {{67,153},{96,96}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{96,96}}
+ sourceSize
+ {96,96}
+
+ blocks9r.png
+
+ frame
+ {{67,55},{96,96}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{96,96}}
+ sourceSize
+ {96,96}
+
+ grossini_dance_01.png
+
+ frame
+ {{67,2},{51,109}}
+ offset
+ {0,-1}
+ rotated
+
+ sourceColorRect
+ {{17,7},{51,109}}
+ sourceSize
+ {85,121}
+
+ grossini_dance_02.png
+
+ frame
+ {{2,113},{63,109}}
+ offset
+ {-6,-1}
+ rotated
+
+ sourceColorRect
+ {{5,7},{63,109}}
+ sourceSize
+ {85,121}
+
+ grossini_dance_03.png
+
+ frame
+ {{2,2},{63,109}}
+ offset
+ {-6,-1}
+ rotated
+
+ sourceColorRect
+ {{5,7},{63,109}}
+ sourceSize
+ {85,121}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ blocks9ss.png
+ size
+ {256,256}
+ smartupdate
+ $TexturePacker:SmartUpdate:d2e254c947e029d7d89809b3b6cdb952$
+ textureFileName
+ blocks9ss.png
+
+
+
diff --git a/tests/cpp-tests/Resources/Images/blocks9ss.png b/tests/cpp-tests/Resources/Images/blocks9ss.png
new file mode 100755
index 0000000000..9acb77c8a2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/blocks9ss.png differ
diff --git a/tests/cpp-tests/Resources/Images/blocks9ss.tps b/tests/cpp-tests/Resources/Images/blocks9ss.tps
new file mode 100755
index 0000000000..9f0eb77f1a
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/blocks9ss.tps differ
diff --git a/tests/cpp-tests/Resources/Images/btn-about-normal-vertical.png b/tests/cpp-tests/Resources/Images/btn-about-normal-vertical.png
new file mode 100755
index 0000000000..b8fbfaffab
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-about-normal-vertical.png differ
diff --git a/tests/cpp-tests/Resources/Images/btn-about-normal.png b/tests/cpp-tests/Resources/Images/btn-about-normal.png
new file mode 100755
index 0000000000..cc70572ceb
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-about-normal.png differ
diff --git a/tests/cpp-tests/Resources/Images/btn-about-selected.png b/tests/cpp-tests/Resources/Images/btn-about-selected.png
new file mode 100755
index 0000000000..3e128add37
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-about-selected.png differ
diff --git a/tests/cpp-tests/Resources/Images/btn-highscores-normal.png b/tests/cpp-tests/Resources/Images/btn-highscores-normal.png
new file mode 100755
index 0000000000..2ef41a2836
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-highscores-normal.png differ
diff --git a/tests/cpp-tests/Resources/Images/btn-highscores-selected.png b/tests/cpp-tests/Resources/Images/btn-highscores-selected.png
new file mode 100755
index 0000000000..cda72edb44
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-highscores-selected.png differ
diff --git a/tests/cpp-tests/Resources/Images/btn-play-normal.png b/tests/cpp-tests/Resources/Images/btn-play-normal.png
new file mode 100755
index 0000000000..baf17158fc
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-play-normal.png differ
diff --git a/tests/cpp-tests/Resources/Images/btn-play-selected.png b/tests/cpp-tests/Resources/Images/btn-play-selected.png
new file mode 100755
index 0000000000..80b6a2ffec
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/btn-play-selected.png differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/RetinaDisplay.jpg b/tests/cpp-tests/Resources/Images/bugs/RetinaDisplay.jpg
new file mode 100755
index 0000000000..948532b7a8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/RetinaDisplay.jpg differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/bug886.jpg b/tests/cpp-tests/Resources/Images/bugs/bug886.jpg
new file mode 100755
index 0000000000..bfd0b39e2c
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/bug886.jpg differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/bug886.png b/tests/cpp-tests/Resources/Images/bugs/bug886.png
new file mode 100755
index 0000000000..6b9dcb4915
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/bug886.png differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/circle.plist b/tests/cpp-tests/Resources/Images/bugs/circle.plist
new file mode 100755
index 0000000000..3f3effaf44
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/bugs/circle.plist
@@ -0,0 +1,31 @@
+
+
+
+
+ frames
+
+ circle.png
+
+ frame
+ {{0,0},{64,64}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{64,64}}
+ sourceSize
+ {64,64}
+
+
+ metadata
+
+ format
+ 2
+ size
+ {64,64}
+ textureFileName
+ circle.png
+
+
+
diff --git a/tests/cpp-tests/Resources/Images/bugs/circle.png b/tests/cpp-tests/Resources/Images/bugs/circle.png
new file mode 100755
index 0000000000..e49cdb3fde
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/circle.png differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/corner.png b/tests/cpp-tests/Resources/Images/bugs/corner.png
new file mode 100755
index 0000000000..c8d26a4d61
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/corner.png differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/edge.png b/tests/cpp-tests/Resources/Images/bugs/edge.png
new file mode 100755
index 0000000000..62cdfbdaad
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/edge.png differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/fill.png b/tests/cpp-tests/Resources/Images/bugs/fill.png
new file mode 100755
index 0000000000..b8845ac3f7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/fill.png differ
diff --git a/tests/cpp-tests/Resources/Images/bugs/picture.png b/tests/cpp-tests/Resources/Images/bugs/picture.png
new file mode 100755
index 0000000000..1833e88f76
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/bugs/picture.png differ
diff --git a/tests/cpp-tests/Resources/Images/close.png b/tests/cpp-tests/Resources/Images/close.png
new file mode 100755
index 0000000000..8593bf9f32
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/close.png differ
diff --git a/tests/cpp-tests/Resources/Images/encryptedAtlas.plist b/tests/cpp-tests/Resources/Images/encryptedAtlas.plist
new file mode 100755
index 0000000000..ab586aefc6
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/encryptedAtlas.plist
@@ -0,0 +1,35 @@
+
+
+
+
+ frames
+
+ powered.png
+
+ frame
+ {{2,2},{200,297}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{200,297}}
+ sourceSize
+ {200,297}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ encryptedAtlas.pvr.ccz
+ size
+ {256,512}
+ smartupdate
+ $TexturePacker:SmartUpdate:24ccd3600ef46d42456b982614d6d174$
+ textureFileName
+ encryptedAtlas.pvr.ccz
+
+
+
diff --git a/tests/cpp-tests/Resources/Images/encryptedAtlas.pvr.ccz b/tests/cpp-tests/Resources/Images/encryptedAtlas.pvr.ccz
new file mode 100755
index 0000000000..1d159464aa
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/encryptedAtlas.pvr.ccz differ
diff --git a/tests/cpp-tests/Resources/Images/encryptedAtlas.tps b/tests/cpp-tests/Resources/Images/encryptedAtlas.tps
new file mode 100755
index 0000000000..d5c479c706
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/encryptedAtlas.tps
@@ -0,0 +1,162 @@
+
+
+
+ fileFormatVersion
+ 1
+ variation
+ main
+ verbose
+
+ autoSDSettings
+
+ allowRotation
+
+ quiet
+
+ premultiplyAlpha
+
+ shapeDebug
+
+ dpi
+ 72
+ dataFormat
+ cocos2d
+ textureFileName
+ encryptedAtlas.pvr.ccz
+ flipPVR
+
+ ditherType
+ NearestNeighbour
+ backgroundColor
+ 0
+ libGdx
+
+ filtering
+
+ x
+ Linear
+ y
+ Linear
+
+
+ shapePadding
+ 2
+ jpgQuality
+ 80
+ pngOptimizationLevel
+ 0
+ textureSubPath
+
+ textureFormat
+ pvr2ccz
+ borderPadding
+ 2
+ maxTextureSize
+
+ width
+ 2048
+ height
+ 2048
+
+ fixedTextureSize
+
+ width
+ -1
+ height
+ -1
+
+ reduceBorderArtifacts
+
+ algorithmSettings
+
+ algorithm
+ MaxRects
+ freeSizeMode
+ Best
+ sizeConstraints
+ POT
+ forceSquared
+
+ forceWordAligned
+
+ maxRects
+
+ heuristic
+ Best
+
+ basic
+
+ sortBy
+ Best
+ order
+ Ascending
+
+
+ andEngine
+
+ minFilter
+ Linear
+ packageName
+ Texture
+ javaFileName
+ compressedAtlas.java
+ wrap
+
+ s
+ Clamp
+ t
+ Clamp
+
+ magFilter
+ MagLinear
+
+ dataFileName
+ encryptedAtlas.plist
+ mainExtension
+
+ forceIdenticalLayout
+
+ outputFormat
+ RGBA8888
+ contentProtection
+
+ key
+ aaaaaaaabbbbbbbbccccccccdddddddd
+
+ autoAliasEnabled
+
+ trimSpriteNames
+
+ globalSpriteSettings
+
+ scale
+ 1
+ scaleMode
+ Smooth
+ innerPadding
+ 0
+ extrude
+ 0
+ trimThreshold
+ 1
+ trimMode
+ Trim
+ heuristicMask
+
+
+ fileList
+
+ powered.png
+
+ ignoreFileList
+
+ replaceList
+
+ ignoredWarnings
+
+ commonDivisorX
+ 1
+ commonDivisorY
+ 1
+
+
diff --git a/tests/cpp-tests/Resources/Images/f1.png b/tests/cpp-tests/Resources/Images/f1.png
new file mode 100755
index 0000000000..4fd7bdbbb4
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/f1.png differ
diff --git a/tests/cpp-tests/Resources/Images/f2.png b/tests/cpp-tests/Resources/Images/f2.png
new file mode 100755
index 0000000000..e752eda24d
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/f2.png differ
diff --git a/tests/cpp-tests/Resources/Images/fire-grayscale.png b/tests/cpp-tests/Resources/Images/fire-grayscale.png
new file mode 100755
index 0000000000..01e96e2f31
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/fire-grayscale.png differ
diff --git a/tests/cpp-tests/Resources/Images/fire.png b/tests/cpp-tests/Resources/Images/fire.png
new file mode 100755
index 0000000000..81c6d2410b
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/fire.png differ
diff --git a/tests/cpp-tests/Resources/Images/fire_rgba8888.pvr b/tests/cpp-tests/Resources/Images/fire_rgba8888.pvr
new file mode 100755
index 0000000000..b3fd4dfa58
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/fire_rgba8888.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/grossini.png b/tests/cpp-tests/Resources/Images/grossini.png
new file mode 100755
index 0000000000..afb316017e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_128x256_mipmap.pvr b/tests/cpp-tests/Resources/Images/grossini_128x256_mipmap.pvr
new file mode 100755
index 0000000000..724f97ccf4
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_128x256_mipmap.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_01.png b/tests/cpp-tests/Resources/Images/grossini_dance_01.png
new file mode 100755
index 0000000000..97e93d394d
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_01.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_02.png b/tests/cpp-tests/Resources/Images/grossini_dance_02.png
new file mode 100755
index 0000000000..2eba532a32
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_02.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_03.png b/tests/cpp-tests/Resources/Images/grossini_dance_03.png
new file mode 100755
index 0000000000..544a1356d3
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_03.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_04.png b/tests/cpp-tests/Resources/Images/grossini_dance_04.png
new file mode 100755
index 0000000000..21db6b0c9b
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_04.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_05.png b/tests/cpp-tests/Resources/Images/grossini_dance_05.png
new file mode 100755
index 0000000000..26fc1bb3fc
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_05.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_06.png b/tests/cpp-tests/Resources/Images/grossini_dance_06.png
new file mode 100755
index 0000000000..5248eb636d
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_06.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_07.png b/tests/cpp-tests/Resources/Images/grossini_dance_07.png
new file mode 100755
index 0000000000..159cb86c12
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_07.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_08.png b/tests/cpp-tests/Resources/Images/grossini_dance_08.png
new file mode 100755
index 0000000000..afb316017e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_08.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_09.png b/tests/cpp-tests/Resources/Images/grossini_dance_09.png
new file mode 100755
index 0000000000..3595e45a6f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_09.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_10.png b/tests/cpp-tests/Resources/Images/grossini_dance_10.png
new file mode 100755
index 0000000000..6f3e36a767
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_10.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_11.png b/tests/cpp-tests/Resources/Images/grossini_dance_11.png
new file mode 100755
index 0000000000..c201f068f2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_11.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_12.png b/tests/cpp-tests/Resources/Images/grossini_dance_12.png
new file mode 100755
index 0000000000..89395c2461
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_12.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_13.png b/tests/cpp-tests/Resources/Images/grossini_dance_13.png
new file mode 100755
index 0000000000..5026872179
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_13.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_14.png b/tests/cpp-tests/Resources/Images/grossini_dance_14.png
new file mode 100755
index 0000000000..38c10271fa
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_14.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_atlas-mono.png b/tests/cpp-tests/Resources/Images/grossini_dance_atlas-mono.png
new file mode 100755
index 0000000000..0a08f47624
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_atlas-mono.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_atlas.png b/tests/cpp-tests/Resources/Images/grossini_dance_atlas.png
new file mode 100755
index 0000000000..4f654ae902
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_atlas.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_dance_atlas_nomipmap.png b/tests/cpp-tests/Resources/Images/grossini_dance_atlas_nomipmap.png
new file mode 100755
index 0000000000..433053e373
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_dance_atlas_nomipmap.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_pvr_rgba4444.pvr b/tests/cpp-tests/Resources/Images/grossini_pvr_rgba4444.pvr
new file mode 100755
index 0000000000..b6ae782ff2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_pvr_rgba4444.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/grossini_pvr_rgba8888.pvr b/tests/cpp-tests/Resources/Images/grossini_pvr_rgba8888.pvr
new file mode 100755
index 0000000000..c419e691f9
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossini_pvr_rgba8888.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha.png b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha.png
new file mode 100755
index 0000000000..cde864f674
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha.ppng b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha.ppng
new file mode 100755
index 0000000000..10b625a828
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha.ppng differ
diff --git a/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha_nopremult.pvr b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha_nopremult.pvr
new file mode 100755
index 0000000000..84ea5afd22
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha_nopremult.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha_premult.pvr b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha_premult.pvr
new file mode 100755
index 0000000000..e0d91fe1e8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossinis_sister1-testalpha_premult.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/grossinis_sister1.png b/tests/cpp-tests/Resources/Images/grossinis_sister1.png
new file mode 100755
index 0000000000..6de1205c68
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossinis_sister1.png differ
diff --git a/tests/cpp-tests/Resources/Images/grossinis_sister2.png b/tests/cpp-tests/Resources/Images/grossinis_sister2.png
new file mode 100755
index 0000000000..3683d7f79f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/grossinis_sister2.png differ
diff --git a/tests/cpp-tests/Resources/Images/hole_effect.png b/tests/cpp-tests/Resources/Images/hole_effect.png
new file mode 100755
index 0000000000..24ea114ebd
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/hole_effect.png differ
diff --git a/tests/cpp-tests/Resources/Images/hole_stencil.png b/tests/cpp-tests/Resources/Images/hole_stencil.png
new file mode 100755
index 0000000000..e27f848906
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/hole_stencil.png differ
diff --git a/tests/cpp-tests/Resources/Images/labelatlas.png b/tests/cpp-tests/Resources/Images/labelatlas.png
new file mode 100755
index 0000000000..e91d0af540
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/labelatlas.png differ
diff --git a/tests/cpp-tests/Resources/Images/logo-mipmap.pvr b/tests/cpp-tests/Resources/Images/logo-mipmap.pvr
new file mode 100755
index 0000000000..d90ae4877f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/logo-mipmap.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/logo-nomipmap.pvr b/tests/cpp-tests/Resources/Images/logo-nomipmap.pvr
new file mode 100755
index 0000000000..7f6be67c91
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/logo-nomipmap.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/menuitemsprite.png b/tests/cpp-tests/Resources/Images/menuitemsprite.png
new file mode 100755
index 0000000000..afc28e1967
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/menuitemsprite.png differ
diff --git a/tests/cpp-tests/Resources/Images/noise.png b/tests/cpp-tests/Resources/Images/noise.png
new file mode 100755
index 0000000000..32a561c7f6
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/noise.png differ
diff --git a/tests/cpp-tests/Resources/Images/nonencryptedAtlas.plist b/tests/cpp-tests/Resources/Images/nonencryptedAtlas.plist
new file mode 100755
index 0000000000..b10ab13cbd
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/nonencryptedAtlas.plist
@@ -0,0 +1,35 @@
+
+
+
+
+ frames
+
+ Icon.png
+
+ frame
+ {{2,2},{57,57}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{57,57}}
+ sourceSize
+ {57,57}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ nonencryptedAtlas.pvr.ccz
+ size
+ {64,64}
+ smartupdate
+ $TexturePacker:SmartUpdate:5b30a75137a4f533396670236d41f11c$
+ textureFileName
+ nonencryptedAtlas.pvr.ccz
+
+
+
diff --git a/tests/cpp-tests/Resources/Images/nonencryptedAtlas.pvr.ccz b/tests/cpp-tests/Resources/Images/nonencryptedAtlas.pvr.ccz
new file mode 100755
index 0000000000..765b6ab030
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/nonencryptedAtlas.pvr.ccz differ
diff --git a/tests/cpp-tests/Resources/Images/nonencryptedAtlas.tps b/tests/cpp-tests/Resources/Images/nonencryptedAtlas.tps
new file mode 100755
index 0000000000..1d5d3edc0d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/nonencryptedAtlas.tps
@@ -0,0 +1,162 @@
+
+
+
+ fileFormatVersion
+ 1
+ variation
+ main
+ verbose
+
+ autoSDSettings
+
+ allowRotation
+
+ quiet
+
+ premultiplyAlpha
+
+ shapeDebug
+
+ dpi
+ 72
+ dataFormat
+ cocos2d
+ textureFileName
+ nonencryptedAtlas.pvr.ccz
+ flipPVR
+
+ ditherType
+ NearestNeighbour
+ backgroundColor
+ 0
+ libGdx
+
+ filtering
+
+ x
+ Linear
+ y
+ Linear
+
+
+ shapePadding
+ 2
+ jpgQuality
+ 80
+ pngOptimizationLevel
+ 0
+ textureSubPath
+
+ textureFormat
+ pvr2ccz
+ borderPadding
+ 2
+ maxTextureSize
+
+ width
+ 2048
+ height
+ 2048
+
+ fixedTextureSize
+
+ width
+ -1
+ height
+ -1
+
+ reduceBorderArtifacts
+
+ algorithmSettings
+
+ algorithm
+ MaxRects
+ freeSizeMode
+ Best
+ sizeConstraints
+ POT
+ forceSquared
+
+ forceWordAligned
+
+ maxRects
+
+ heuristic
+ Best
+
+ basic
+
+ sortBy
+ Best
+ order
+ Ascending
+
+
+ andEngine
+
+ minFilter
+ Linear
+ packageName
+ Texture
+ javaFileName
+ compressedAtlas.java
+ wrap
+
+ s
+ Clamp
+ t
+ Clamp
+
+ magFilter
+ MagLinear
+
+ dataFileName
+ nonencryptedAtlas.plist
+ mainExtension
+
+ forceIdenticalLayout
+
+ outputFormat
+ RGBA8888
+ contentProtection
+
+ key
+
+
+ autoAliasEnabled
+
+ trimSpriteNames
+
+ globalSpriteSettings
+
+ scale
+ 1
+ scaleMode
+ Smooth
+ innerPadding
+ 0
+ extrude
+ 0
+ trimThreshold
+ 1
+ trimMode
+ Trim
+ heuristicMask
+
+
+ fileList
+
+ Icon.png
+
+ ignoreFileList
+
+ replaceList
+
+ ignoredWarnings
+
+ commonDivisorX
+ 1
+ commonDivisorY
+ 1
+
+
diff --git a/tests/cpp-tests/Resources/Images/paddle.png b/tests/cpp-tests/Resources/Images/paddle.png
new file mode 100755
index 0000000000..03cc9816c2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/paddle.png differ
diff --git a/tests/cpp-tests/Resources/Images/particles.png b/tests/cpp-tests/Resources/Images/particles.png
new file mode 100755
index 0000000000..ca6519ea57
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/particles.png differ
diff --git a/tests/cpp-tests/Resources/Images/pattern1.png b/tests/cpp-tests/Resources/Images/pattern1.png
new file mode 100755
index 0000000000..86ce74f2f2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/pattern1.png differ
diff --git a/tests/cpp-tests/Resources/Images/piece.png b/tests/cpp-tests/Resources/Images/piece.png
new file mode 100755
index 0000000000..8a63dc85f3
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/piece.png differ
diff --git a/tests/cpp-tests/Resources/Images/powered.png b/tests/cpp-tests/Resources/Images/powered.png
new file mode 100755
index 0000000000..98a5695df6
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/powered.png differ
diff --git a/tests/cpp-tests/Resources/Images/r1.png b/tests/cpp-tests/Resources/Images/r1.png
new file mode 100755
index 0000000000..827a77226e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/r1.png differ
diff --git a/tests/cpp-tests/Resources/Images/r2.png b/tests/cpp-tests/Resources/Images/r2.png
new file mode 100755
index 0000000000..727a1c687e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/r2.png differ
diff --git a/tests/cpp-tests/Resources/Images/snow.png b/tests/cpp-tests/Resources/Images/snow.png
new file mode 100755
index 0000000000..9e12963498
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/snow.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-0.png
new file mode 100755
index 0000000000..54dd046cac
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-1.png
new file mode 100755
index 0000000000..94b993ff6a
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-2.png
new file mode 100755
index 0000000000..a960fb422b
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-3.png
new file mode 100755
index 0000000000..248adc2861
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-4.png
new file mode 100755
index 0000000000..6d9fffe207
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-5.png
new file mode 100755
index 0000000000..7edc344f62
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-6.png
new file mode 100755
index 0000000000..8b07eec9ab
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-7.png
new file mode 100755
index 0000000000..465f8987d1
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-0-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-0.png
new file mode 100755
index 0000000000..b9e8b1ccd1
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-1.png
new file mode 100755
index 0000000000..cb9c7cc5da
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-2.png
new file mode 100755
index 0000000000..f401ee3cc5
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-3.png
new file mode 100755
index 0000000000..59e4aa28c2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-4.png
new file mode 100755
index 0000000000..076bd79a9d
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-5.png
new file mode 100755
index 0000000000..7be6aae280
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-6.png
new file mode 100755
index 0000000000..a094ec3920
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-7.png
new file mode 100755
index 0000000000..0661a3ceb5
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-1-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-0.png
new file mode 100755
index 0000000000..858e724856
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-1.png
new file mode 100755
index 0000000000..f58a1d5612
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-2.png
new file mode 100755
index 0000000000..d2c2ca52c5
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-3.png
new file mode 100755
index 0000000000..2850465796
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-4.png
new file mode 100755
index 0000000000..eb07b0bc97
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-5.png
new file mode 100755
index 0000000000..f6a37ad718
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-6.png
new file mode 100755
index 0000000000..b8585641b3
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-7.png
new file mode 100755
index 0000000000..f2f37134cf
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-2-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-0.png
new file mode 100755
index 0000000000..cfa22a2e37
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-1.png
new file mode 100755
index 0000000000..f9ffcf4afc
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-2.png
new file mode 100755
index 0000000000..75bcbe70b0
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-3.png
new file mode 100755
index 0000000000..b94e7331d7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-4.png
new file mode 100755
index 0000000000..05a25a5e38
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-5.png
new file mode 100755
index 0000000000..fe5fb49166
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-6.png
new file mode 100755
index 0000000000..76e085fd51
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-7.png
new file mode 100755
index 0000000000..2cc0027a8f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-3-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-0.png
new file mode 100755
index 0000000000..3d452a84ad
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-1.png
new file mode 100755
index 0000000000..378f91102f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-2.png
new file mode 100755
index 0000000000..32a3a5a25c
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-3.png
new file mode 100755
index 0000000000..8e491dc466
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-4.png
new file mode 100755
index 0000000000..72a5fa7cc8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-5.png
new file mode 100755
index 0000000000..6a45458fbe
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-6.png
new file mode 100755
index 0000000000..a85227dfec
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-7.png
new file mode 100755
index 0000000000..323db8d923
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-4-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-0.png
new file mode 100755
index 0000000000..cb82489db3
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-1.png
new file mode 100755
index 0000000000..efcc883e83
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-2.png
new file mode 100755
index 0000000000..1c93479476
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-3.png
new file mode 100755
index 0000000000..ce9af4ea11
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-4.png
new file mode 100755
index 0000000000..b8bb2a0b06
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-5.png
new file mode 100755
index 0000000000..7cbd26e6ee
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-6.png
new file mode 100755
index 0000000000..4e927716ec
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-7.png
new file mode 100755
index 0000000000..39a374f7d1
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-5-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-0.png
new file mode 100755
index 0000000000..648e110602
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-1.png
new file mode 100755
index 0000000000..ac22fd3be7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-2.png
new file mode 100755
index 0000000000..68bc9f5187
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-3.png
new file mode 100755
index 0000000000..e5b021ebbe
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-4.png
new file mode 100755
index 0000000000..580cb35121
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-5.png
new file mode 100755
index 0000000000..fbda801103
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-6.png
new file mode 100755
index 0000000000..a44fcf9d75
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-7.png
new file mode 100755
index 0000000000..def42d0bcf
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-6-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-0.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-0.png
new file mode 100755
index 0000000000..c785688f11
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-0.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-1.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-1.png
new file mode 100755
index 0000000000..9cf9145af2
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-1.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-2.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-2.png
new file mode 100755
index 0000000000..ead396ac25
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-2.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-3.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-3.png
new file mode 100755
index 0000000000..e905bf5342
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-3.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-4.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-4.png
new file mode 100755
index 0000000000..07cf84c009
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-4.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-5.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-5.png
new file mode 100755
index 0000000000..ab1daafd3b
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-5.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-6.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-6.png
new file mode 100755
index 0000000000..b5f98b8520
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-6.png differ
diff --git a/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-7.png b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-7.png
new file mode 100755
index 0000000000..50ffb8f7c6
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/sprites_test/sprite-7-7.png differ
diff --git a/tests/cpp-tests/Resources/Images/spritesheet1.png b/tests/cpp-tests/Resources/Images/spritesheet1.png
new file mode 100755
index 0000000000..9246a8bc97
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/spritesheet1.png differ
diff --git a/tests/cpp-tests/Resources/Images/stars-grayscale.png b/tests/cpp-tests/Resources/Images/stars-grayscale.png
new file mode 100755
index 0000000000..94a4ec693c
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/stars-grayscale.png differ
diff --git a/tests/cpp-tests/Resources/Images/stars.png b/tests/cpp-tests/Resources/Images/stars.png
new file mode 100755
index 0000000000..f493dcc334
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/stars.png differ
diff --git a/tests/cpp-tests/Resources/Images/stars2-grayscale.png b/tests/cpp-tests/Resources/Images/stars2-grayscale.png
new file mode 100755
index 0000000000..c11557b03e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/stars2-grayscale.png differ
diff --git a/tests/cpp-tests/Resources/Images/stars2.png b/tests/cpp-tests/Resources/Images/stars2.png
new file mode 100755
index 0000000000..cfb429d1c4
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/stars2.png differ
diff --git a/tests/cpp-tests/Resources/Images/stone.png b/tests/cpp-tests/Resources/Images/stone.png
new file mode 100755
index 0000000000..b42f9d96ee
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/stone.png differ
diff --git a/tests/cpp-tests/Resources/Images/streak.png b/tests/cpp-tests/Resources/Images/streak.png
new file mode 100755
index 0000000000..b228f382bd
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/streak.png differ
diff --git a/tests/cpp-tests/Resources/Images/test-rgba1.png b/tests/cpp-tests/Resources/Images/test-rgba1.png
new file mode 100755
index 0000000000..c9e55ee9b8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test-rgba1.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_1021x1024_a8.pvr.gz b/tests/cpp-tests/Resources/Images/test_1021x1024_a8.pvr.gz
new file mode 100755
index 0000000000..24690d1505
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_1021x1024_a8.pvr.gz differ
diff --git a/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGBA_Explicit_mipmaps.ktx b/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGBA_Explicit_mipmaps.ktx
new file mode 100755
index 0000000000..afba165fc1
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGBA_Explicit_mipmaps.ktx differ
diff --git a/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGBA_Interpolated_mipmaps.ktx b/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGBA_Interpolated_mipmaps.ktx
new file mode 100755
index 0000000000..290cfe3d8f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGBA_Interpolated_mipmaps.ktx differ
diff --git a/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGB_mipmaps.ktx b/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGB_mipmaps.ktx
new file mode 100755
index 0000000000..9c60ddcfa8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_256x256_ATC_RGB_mipmaps.ktx differ
diff --git a/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt1_mipmaps.dds b/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt1_mipmaps.dds
new file mode 100755
index 0000000000..18953e1395
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt1_mipmaps.dds differ
diff --git a/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt3_mipmaps.dds b/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt3_mipmaps.dds
new file mode 100755
index 0000000000..9350dc3e72
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt3_mipmaps.dds differ
diff --git a/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt5_mipmaps.dds b/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt5_mipmaps.dds
new file mode 100755
index 0000000000..3cfe75ddf3
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_256x256_s3tc_dxt5_mipmaps.dds differ
diff --git a/tests/cpp-tests/Resources/Images/test_512x512_s3tc_dxt5_with_no_mipmaps.dds b/tests/cpp-tests/Resources/Images/test_512x512_s3tc_dxt5_with_no_mipmaps.dds
new file mode 100755
index 0000000000..359857b480
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_512x512_s3tc_dxt5_with_no_mipmaps.dds differ
diff --git a/tests/cpp-tests/Resources/Images/test_blend.png b/tests/cpp-tests/Resources/Images/test_blend.png
new file mode 100755
index 0000000000..415e1dede7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_blend.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_image-bad_encoding.pvr b/tests/cpp-tests/Resources/Images/test_image-bad_encoding.pvr
new file mode 100755
index 0000000000..04682d55db
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image-bad_encoding.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image.jpeg b/tests/cpp-tests/Resources/Images/test_image.jpeg
new file mode 100755
index 0000000000..fa7d9720b9
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image.jpeg differ
diff --git a/tests/cpp-tests/Resources/Images/test_image.png b/tests/cpp-tests/Resources/Images/test_image.png
new file mode 100755
index 0000000000..fc2c0d6853
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_image.pvr b/tests/cpp-tests/Resources/Images/test_image.pvr
new file mode 100755
index 0000000000..7a2ec4ff88
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image.pvrraw b/tests/cpp-tests/Resources/Images/test_image.pvrraw
new file mode 100755
index 0000000000..ab762df68f
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image.pvrraw differ
diff --git a/tests/cpp-tests/Resources/Images/test_image.tiff b/tests/cpp-tests/Resources/Images/test_image.tiff
new file mode 100755
index 0000000000..e9e9d9ecde
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image.tiff differ
diff --git a/tests/cpp-tests/Resources/Images/test_image.webp b/tests/cpp-tests/Resources/Images/test_image.webp
new file mode 100755
index 0000000000..1b9d131d6c
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image.webp differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_a8.pvr b/tests/cpp-tests/Resources/Images/test_image_a8.pvr
new file mode 100755
index 0000000000..c22a440b14
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_a8.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_a8_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_a8_v3.pvr
new file mode 100755
index 0000000000..eb9c3e1172
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_a8_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_ai88.png b/tests/cpp-tests/Resources/Images/test_image_ai88.png
new file mode 100755
index 0000000000..3bb0dd06b5
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_ai88.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_ai88.pvr b/tests/cpp-tests/Resources/Images/test_image_ai88.pvr
new file mode 100755
index 0000000000..db4ed9519e
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_ai88.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_ai88_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_ai88_v3.pvr
new file mode 100755
index 0000000000..5695b90ce8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_ai88_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_bgra8888.pvr b/tests/cpp-tests/Resources/Images/test_image_bgra8888.pvr
new file mode 100755
index 0000000000..d77883dc0d
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_bgra8888.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_bgra8888_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_bgra8888_v3.pvr
new file mode 100755
index 0000000000..64b2beb998
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_bgra8888_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_i8.png b/tests/cpp-tests/Resources/Images/test_image_i8.png
new file mode 100755
index 0000000000..bf522eef00
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_i8.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_i8.pvr b/tests/cpp-tests/Resources/Images/test_image_i8.pvr
new file mode 100755
index 0000000000..5def235ea6
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_i8.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_i8_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_i8_v3.pvr
new file mode 100755
index 0000000000..ff83cac568
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_i8_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_pvrtc2bpp.pvr b/tests/cpp-tests/Resources/Images/test_image_pvrtc2bpp.pvr
new file mode 100755
index 0000000000..a663cc9e4a
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_pvrtc2bpp.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_pvrtc2bpp_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_pvrtc2bpp_v3.pvr
new file mode 100755
index 0000000000..07b9139fd6
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_pvrtc2bpp_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_pvrtc4bpp.pvr b/tests/cpp-tests/Resources/Images/test_image_pvrtc4bpp.pvr
new file mode 100755
index 0000000000..68f54932c4
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_pvrtc4bpp.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_pvrtc4bpp_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_pvrtc4bpp_v3.pvr
new file mode 100755
index 0000000000..446aedac09
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_pvrtc4bpp_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_pvrtcii2bpp_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_pvrtcii2bpp_v3.pvr
new file mode 100755
index 0000000000..c100a53563
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_pvrtcii2bpp_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_pvrtcii4bpp_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_pvrtcii4bpp_v3.pvr
new file mode 100755
index 0000000000..730ceded2b
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_pvrtcii4bpp_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgb565.pvr b/tests/cpp-tests/Resources/Images/test_image_rgb565.pvr
new file mode 100755
index 0000000000..cde4068ce9
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgb565.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgb565_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_rgb565_v3.pvr
new file mode 100755
index 0000000000..485788b604
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgb565_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgb888.png b/tests/cpp-tests/Resources/Images/test_image_rgb888.png
new file mode 100755
index 0000000000..21d2f91a86
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgb888.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgb888.pvr b/tests/cpp-tests/Resources/Images/test_image_rgb888.pvr
new file mode 100755
index 0000000000..1144361b77
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgb888.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgb888_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_rgb888_v3.pvr
new file mode 100755
index 0000000000..adfbd15067
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgb888_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr
new file mode 100755
index 0000000000..c8d8a35c07
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr.ccz b/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr.ccz
new file mode 100755
index 0000000000..fa65441100
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr.ccz differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr.gz b/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr.gz
new file mode 100755
index 0000000000..9490fd92a8
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba4444.pvr.gz differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba4444_mipmap.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba4444_mipmap.pvr
new file mode 100755
index 0000000000..37ff32f0e0
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba4444_mipmap.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba4444_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba4444_v3.pvr
new file mode 100755
index 0000000000..09f6050afd
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba4444_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba5551.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba5551.pvr
new file mode 100755
index 0000000000..e80cfbc832
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba5551.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba5551_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba5551_v3.pvr
new file mode 100755
index 0000000000..0e38d14714
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba5551_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba8888.png b/tests/cpp-tests/Resources/Images/test_image_rgba8888.png
new file mode 100755
index 0000000000..6106230854
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba8888.png differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba8888.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba8888.pvr
new file mode 100755
index 0000000000..caef6f79ac
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba8888.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/test_image_rgba8888_v3.pvr b/tests/cpp-tests/Resources/Images/test_image_rgba8888_v3.pvr
new file mode 100755
index 0000000000..2d74c29eaf
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/test_image_rgba8888_v3.pvr differ
diff --git a/tests/cpp-tests/Resources/Images/texture1024x1024.png b/tests/cpp-tests/Resources/Images/texture1024x1024.png
new file mode 100755
index 0000000000..9e98dbe222
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/texture1024x1024.png differ
diff --git a/tests/cpp-tests/Resources/Images/texture2048x2048.png b/tests/cpp-tests/Resources/Images/texture2048x2048.png
new file mode 100755
index 0000000000..282ae566e7
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/texture2048x2048.png differ
diff --git a/tests/cpp-tests/Resources/Images/texture512x512.png b/tests/cpp-tests/Resources/Images/texture512x512.png
new file mode 100755
index 0000000000..5eafc45f88
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/texture512x512.png differ
diff --git a/tests/cpp-tests/Resources/Images/ui.plist b/tests/cpp-tests/Resources/Images/ui.plist
new file mode 100755
index 0000000000..0aee2258bf
--- /dev/null
+++ b/tests/cpp-tests/Resources/Images/ui.plist
@@ -0,0 +1,139 @@
+
+
+
+
+ frames
+
+ button_actived.png
+
+ frame
+ {{113,55},{21,13}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{21,13}}
+ sourceSize
+ {21,13}
+
+ button_normal.png
+
+ frame
+ {{113,32},{21,13}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{21,13}}
+ sourceSize
+ {21,13}
+
+ coin.png
+
+ frame
+ {{89,32},{22,22}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{22,22}}
+ sourceSize
+ {22,22}
+
+ crystal.png
+
+ frame
+ {{89,2},{28,28}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{1,1},{28,28}}
+ sourceSize
+ {30,30}
+
+ dialog_bg.png
+
+ frame
+ {{75,177},{46,46}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{46,46}}
+ sourceSize
+ {46,46}
+
+ dialog_corner.png
+
+ frame
+ {{89,56},{12,16}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{12,16}}
+ sourceSize
+ {12,16}
+
+ item_bg.png
+
+ frame
+ {{75,129},{46,46}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{46,46}}
+ sourceSize
+ {46,46}
+
+ mini_map_bg.png
+
+ frame
+ {{2,129},{71,71}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{71,71}}
+ sourceSize
+ {71,71}
+
+ user_info_panel.png
+
+ frame
+ {{2,2},{125,85}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{125,85}}
+ sourceSize
+ {125,85}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ ui.png
+ size
+ {128,256}
+ smartupdate
+ $TexturePacker:SmartUpdate:7251d97127580b1f2d0103d9b80ba020$
+ textureFileName
+ ui.png
+
+
+
diff --git a/tests/cpp-tests/Resources/Images/ui.png b/tests/cpp-tests/Resources/Images/ui.png
new file mode 100755
index 0000000000..baf6a6bef4
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/ui.png differ
diff --git a/tests/cpp-tests/Resources/Images/water_2_dxt1.dds b/tests/cpp-tests/Resources/Images/water_2_dxt1.dds
new file mode 100755
index 0000000000..8e3e387726
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/water_2_dxt1.dds differ
diff --git a/tests/cpp-tests/Resources/Images/water_2_dxt3.dds b/tests/cpp-tests/Resources/Images/water_2_dxt3.dds
new file mode 100755
index 0000000000..a1fef1a07b
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/water_2_dxt3.dds differ
diff --git a/tests/cpp-tests/Resources/Images/water_2_dxt5.dds b/tests/cpp-tests/Resources/Images/water_2_dxt5.dds
new file mode 100755
index 0000000000..93bb52e576
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/water_2_dxt5.dds differ
diff --git a/tests/cpp-tests/Resources/Images/white-512x512.png b/tests/cpp-tests/Resources/Images/white-512x512.png
new file mode 100755
index 0000000000..9a0eb5a892
Binary files /dev/null and b/tests/cpp-tests/Resources/Images/white-512x512.png differ
diff --git a/tests/cpp-tests/Resources/Misc/resources-hd/test4.txt b/tests/cpp-tests/Resources/Misc/resources-hd/test4.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-hd/test4.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-ipad/test2.txt b/tests/cpp-tests/Resources/Misc/resources-ipad/test2.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-ipad/test2.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-ipadhd/test1.txt b/tests/cpp-tests/Resources/Misc/resources-ipadhd/test1.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-ipadhd/test1.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-iphone/test6.txt b/tests/cpp-tests/Resources/Misc/resources-iphone/test6.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-iphone/test6.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-mac/test2.txt b/tests/cpp-tests/Resources/Misc/resources-mac/test2.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-mac/test2.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-machd/test1.txt b/tests/cpp-tests/Resources/Misc/resources-machd/test1.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-machd/test1.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-wide/test5.txt b/tests/cpp-tests/Resources/Misc/resources-wide/test5.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-wide/test5.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/resources-widehd/test3.txt b/tests/cpp-tests/Resources/Misc/resources-widehd/test3.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/resources-widehd/test3.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/searchpath1/file1.txt b/tests/cpp-tests/Resources/Misc/searchpath1/file1.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/searchpath1/file1.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Misc/searchpath2/resources-ipad/file2.txt b/tests/cpp-tests/Resources/Misc/searchpath2/resources-ipad/file2.txt
new file mode 100755
index 0000000000..0527e6bd2d
--- /dev/null
+++ b/tests/cpp-tests/Resources/Misc/searchpath2/resources-ipad/file2.txt
@@ -0,0 +1 @@
+This is a test
diff --git a/tests/cpp-tests/Resources/Particles/BoilingFoam.plist b/tests/cpp-tests/Resources/Particles/BoilingFoam.plist
new file mode 100755
index 0000000000..82e9ad17b6
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/BoilingFoam.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 90.099998474121094
+ angleVariance
+ 32.049999237060547
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 1
+ finishColorGreen
+ 0.70999997854232788
+ finishColorRed
+ 0.5899999737739563
+ finishColorVarianceAlpha
+ 1
+ finishColorVarianceBlue
+ 0.20999999344348907
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 40.770000457763672
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 269
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 0.99000000953674316
+ particleLifespanVariance
+ 0.12999999523162842
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 16.5
+ sourcePositionVariancey
+ 34.799999237060547
+ sourcePositionx
+ 162.83000183105469
+ sourcePositiony
+ 194.32000732421875
+ speed
+ 71
+ speedVariance
+ 30
+ startColorAlpha
+ 0.0
+ startColorBlue
+ 0.0
+ startColorGreen
+ 1
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.34000000357627869
+ startColorVarianceGreen
+ 0.0
+ startColorVarianceRed
+ 0.0
+ startParticleSize
+ 64
+ startParticleSizeVariance
+ 5
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ BoilingFoam.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/BurstPipe.plist b/tests/cpp-tests/Resources/Particles/BurstPipe.plist
new file mode 100755
index 0000000000..73e83aa4ec
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/BurstPipe.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 0.0
+ angleVariance
+ 360
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.38999998569488525
+ finishColorGreen
+ 0.25999999046325684
+ finishColorRed
+ 0.14000000059604645
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 28.489999771118164
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ -671.04998779296875
+ maxParticles
+ 1000
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 0.46050000190734863
+ particleLifespanVariance
+ 0.59210002422332764
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 4.4000000953674316
+ sourcePositionx
+ 160
+ sourcePositiony
+ 308.39999389648438
+ speed
+ 177.6300048828125
+ speedVariance
+ 0.0
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.6600000262260437
+ startColorGreen
+ 0.49000000953674316
+ startColorRed
+ 0.0
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.0
+ startColorVarianceGreen
+ 0.0
+ startColorVarianceRed
+ 0.5899999737739563
+ startParticleSize
+ 0.0
+ startParticleSizeVariance
+ 18.950000762939453
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ BurstPipe.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/Comet.plist b/tests/cpp-tests/Resources/Particles/Comet.plist
new file mode 100755
index 0000000000..a38247277f
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/Comet.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 46.849998474121094
+ angleVariance
+ 0.0
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 0.0
+ finishColorRed
+ 0.15999999642372131
+ finishColorVarianceAlpha
+ 1
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 64
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ -276.32000732421875
+ gravityy
+ 355.260009765625
+ maxParticles
+ 1000
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 0.19740000367164612
+ particleLifespanVariance
+ 2.1710999011993408
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ -4.5
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 226.5
+ sourcePositiony
+ 156.39999389648438
+ speed
+ 0.0
+ speedVariance
+ 203.94999694824219
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.14000000059604645
+ startColorGreen
+ 0.43999999761581421
+ startColorRed
+ 0.79000002145767212
+ startColorVarianceAlpha
+ 0.5
+ startColorVarianceBlue
+ 0.20000000298023224
+ startColorVarianceGreen
+ 0.20000000298023224
+ startColorVarianceRed
+ 0.0
+ startParticleSize
+ 41.680000305175781
+ startParticleSizeVariance
+ 0.0
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ Comet.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/ExplodingRing.plist b/tests/cpp-tests/Resources/Particles/ExplodingRing.plist
new file mode 100755
index 0000000000..bfb446e962
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/ExplodingRing.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 360
+ angleVariance
+ 360
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ 0.0099999997764825821
+ emitterType
+ 0.0
+ finishColorAlpha
+ 0.8399999737739563
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 0.0
+ finishColorRed
+ 0.0
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 13.590000152587891
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 1.1499999761581421
+ gravityy
+ 1.5800000429153442
+ maxParticles
+ 809
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 0.0
+ particleLifespanVariance
+ 1.118399977684021
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 160
+ sourcePositiony
+ 262.79998779296875
+ speed
+ 243.41999816894531
+ speedVariance
+ 1
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.36000001430511475
+ startColorGreen
+ 0.56000000238418579
+ startColorRed
+ 0.88999998569488525
+ startColorVarianceAlpha
+ 0.5
+ startColorVarianceBlue
+ 0.20000000298023224
+ startColorVarianceGreen
+ 0.20000000298023224
+ startColorVarianceRed
+ 0.20000000298023224
+ startParticleSize
+ 34.110000610351562
+ startParticleSizeVariance
+ 38.319999694824219
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ ExplodingRing.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/Flower.plist b/tests/cpp-tests/Resources/Particles/Flower.plist
new file mode 100755
index 0000000000..c059b96675
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/Flower.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 90
+ angleVariance
+ 360
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 0.0
+ finishColorRed
+ 0.0
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 30
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 250
+ maxRadius
+ 276.20999145507812
+ maxRadiusVariance
+ 154.94999694824219
+ minRadius
+ 0.0
+ particleLifespan
+ 4
+ particleLifespanVariance
+ 1
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ -60
+ rotatePerSecond
+ 35.529998779296875
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 169.91000366210938
+ sourcePositiony
+ 228.71000671386719
+ speed
+ 80
+ speedVariance
+ 10
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.5
+ startColorGreen
+ 0.5
+ startColorRed
+ 0.5
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.5
+ startColorVarianceGreen
+ 0.5
+ startColorVarianceRed
+ 0.5
+ startParticleSize
+ 30
+ startParticleSizeVariance
+ 10
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 15
+ textureFileName
+ Flower.png
+ textureImageData
+ H4sIAAAAAAAAAwGaBGX7iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAA5mlDQ1BJQ0MgUHJvZmlsZQAAeAFjYGCsSCwoyGESYGDIzSspcg9yjIyIjFJgv8rAzsDIAAaJycUFjgEBPhAeNvLbNYjay7ogs2ad1vz46kTgxG2Ka/z0r9ZuwKYDSYwlJbU4GcjfAsSlyQVFJQwMjDpAtnp2SJAzkB0CZPOVlxSAxFOAbBGoeiCTQdo5MSczqSixJDVFwb0osVLBOT8nv6i4IDE5FSRNXVCSWgF0AwODc35BZVFmekaJgiPQt6lAO3MLSktSi3QUPPOS9RgYkkuLyqA2MzIZMzCAwhPC/xwIDidGsTMAFkw91gWJ+yQAAANvSURBVEgNxZU7aFRREIb/uXnsZpPoxoAYxBSBKKaIKBYiqF0awTQ2iqiNoqCFnWJpkSiCFoIgIgqWKoqCxEJQQSIWBgmI+GgsBDVmNZvdTTbZ8Z85d+/mCYKFZ2DZe8/MN3PmzMwF/nHJcvaaQgShKKUiU8vpLQGgaQPqKXUJYBYzlPJSmKhK1pP2Txu1BS1oxUpKFm0uWX9qRYu2aON8fdBPvPRF5Zt0Ik1pQorSGMegMP/TmKIUUdJISnT0DX3BMAFEI3oW37EDBWSISBMRDhEAUyjR3I4W6Wod1ZPRyAKApnEX2/EGu2OExWBZMID5LxLZwDdr8Fquyq1q5HESebaMn/0y+vSY5PmUdn8GYProv4BJ5NGq9+QBDqMg0wFRBVjqVniyzuk2uYl3SwDy6NVTeCrH8Rt5OvHlAF5cMM8y81m9hCy9fPaQLYKyH2ASG/QgxmQvcvjlCK+NAAgXFy6tDSv0NFrlGb4yCxEqzECR4XfqHuTkBMZdfmEixBDqoJ6qKb/ADE/fzBQVdBd60O6yitWwieYTMpDckF2yLwJ4AKs7QxjE6qBZnmBKe9FFgJmv1x2YlOu+W62RetpxGSfi5RjCIA2UFBEZeaubdR2DnkC9dqAkD/neds23SR3tYoC1jEFMbMuUGIt81bWS1SZJsQteOTwYml5oNPcObxmD1CQKUUmRmymdlQ98DiY1HfsXA6xh50uFubcOoIpC6thc9ma+jj3NAZiBibetl26JZ8/Q+xedYS7a+K7su0Ev4GJA8GamphTKpoBmpq4s75nGN34jHSwn2512zAydVeIIOCaCsTVsybtuEu3aw8y/xBh+Ylwee110+a5pOSSMl1BIod+tYQveNJ1+7/dpbmKIG5jQfmzkLmdCjLAAmFtbFpg1bOi4DV5112g4hh8OyOG3DCKnh7HFERZD2S3DVTDXtW7crBd47gFWnY2Pue2c14vSjkMYXtSNBFTnQRceYRSDy86D87pFtuLTonlARJpG3TosQ25uc3HhRAoHHNB+6ZaP4QBWhcnSJi3IPZxJOm7xTLQUF3BF90WJXTJUyfkpR3CHZ7cBtuxU5uXu1yEtSlPwnJD0Gm7Lc+bCGsl+rXGs/vldiuvEbmo6zELdiQNy1BAJoFIXzQbm332ZqvoJIBjXfon5q29jzeJ//fsDttmrmko6AygAAAAASUVORK5CYIJuAiUFmgQAAA==
+
+
diff --git a/tests/cpp-tests/Resources/Particles/Galaxy.plist b/tests/cpp-tests/Resources/Particles/Galaxy.plist
new file mode 100755
index 0000000000..11f6938741
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/Galaxy.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 90
+ angleVariance
+ 360
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 0.0
+ finishColorRed
+ 0.0
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 37
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 934
+ maxRadius
+ 276.20999145507812
+ maxRadiusVariance
+ 154.94999694824219
+ minRadius
+ 0.0
+ particleLifespan
+ 4
+ particleLifespanVariance
+ 1
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ -20
+ rotatePerSecond
+ 35.529998779296875
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 169.91000366210938
+ sourcePositiony
+ 228.71000671386719
+ speed
+ 59.209999084472656
+ speedVariance
+ 10
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.75999999046325684
+ startColorGreen
+ 0.25
+ startColorRed
+ 0.11999999731779099
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.0
+ startColorVarianceGreen
+ 0.0
+ startColorVarianceRed
+ 0.0
+ startParticleSize
+ 37
+ startParticleSizeVariance
+ 10
+ tangentialAccelVariance
+ 50
+ tangentialAcceleration
+ 50
+ textureFileName
+ Galaxy.png
+ textureImageData
+ H4sIAAAAAAAAAwFmA5n8iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADLUlEQVRYCcXX51JbQRCEUeOc/f6v6ZzxHKFPLAoI84epmrp7985294QVxcXl5eWjh7Sn9yB/MWcej19sXQb87/iP8f+yiztWAOmzcYL5k/F9AX9m7/fWf83zTmLOVeD5AHECWieiKpR95D8nlhPcepbH7TYBL+dI/mrWRCRkrQIBZY9Q5vzb+PdxQj2P2ikBCPnrxb0TRMQpAYiRIa9lVcregR0TgATZm/G3W7cmxn5VaA6qQNkjEkNAMbPcDOpBJfYF6DMByJC/H3+3XSfC97IziATov8FD8HUcDmzZs+bETSF0Z+cEICeCE0TYOQFlHznSZoTQkwIc5PW+FqwC7NUGVagCXTvlXzNHXnXE5LsrulYAYFduX4Ts11b4LlaWlbXBWzNH2GxojzN4jgogJgENYreganyYGELsq1YCAOp9CZX5eivEwy9mltcvPvqwirBHSGKIQE6Eitg35forO5mxSo5cDJyVHIf3TRVSIxNgiUgIUO5Abel2qII4hLJnSk5M7XC2rMPGU5s2APO++11PiKBVUECEyAq5athHyvS6TO2vhOHB72/ILK+VtHnb0+EEAkeiLZGV2UpyG94cvRbgh+KcGyzenZb5l3FPbbBfzDks3zcmE9aBCIBF1FCt16meO98M6L3BEpeohIUHP65ZXvXJM2IH8oCAATZYiJWc+a7swJF/HvddnHjnuLgwE4RvY1XAAVMuwAHvHPA61cUDNnD6DUws8k/j2kJEZ8NahdjbWIBeVvJIgSISh4yJ8931SgBwpMhVwtPZKiIeaSJmeWWrgMolENh6pSKXrTjftcKU66m9ziViFSI+AWJ3tgoQADTwrtdKLvvinE2AfcAylTXyj9tn1UiE8ztbBdhUIiD2u9ez3PS5LP0QJe6UgKpgJhpOuPBv2DEBMubAmbI3H0BqDYEJcBOAy06mqpCI/xIw5zYViFx/gZc98IZyX0DtITIR+4M4n27afgX6CgB52dffsq9FawWqkipUCWLyWR7aKQEiHVwFuHbrX7batApNRO3wPOj77O3swf8zuquAneJZaEPZ14KqcOOKrYdOre8j4BTWvfZl8qD2D7ghcomuE8XXAAAAAElFTkSuQmCCksg8PmYDAAA=
+
+
diff --git a/tests/cpp-tests/Resources/Particles/LavaFlow.plist b/tests/cpp-tests/Resources/Particles/LavaFlow.plist
new file mode 100755
index 0000000000..c24278f675
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/LavaFlow.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 0.0
+ angleVariance
+ 360
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 1
+ finishColorRed
+ 1
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 0.0
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ -197.3699951171875
+ maxParticles
+ 861
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 0.46050000190734863
+ particleLifespanVariance
+ 0.85530000925064087
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 7
+ sourcePositionVariancey
+ 7
+ sourcePositionx
+ 160
+ sourcePositiony
+ 210
+ speed
+ 225
+ speedVariance
+ 6.5799999237060547
+ startColorAlpha
+ 0.090000003576278687
+ startColorBlue
+ 0.0
+ startColorGreen
+ 0.0
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.0
+ startColorVarianceGreen
+ 0.0
+ startColorVarianceRed
+ 0.0
+ startParticleSize
+ 45.049999237060547
+ startParticleSizeVariance
+ 29.049999237060547
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ LavaFlow.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/Phoenix.plist b/tests/cpp-tests/Resources/Particles/Phoenix.plist
new file mode 100755
index 0000000000..317870f79e
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/Phoenix.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 349
+ angleVariance
+ 93
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 1
+ finishColorAlpha
+ 0.32887318730354309
+ finishColorBlue
+ 0.93377602100372314
+ finishColorGreen
+ 0.95858514308929443
+ finishColorRed
+ 0.19334913790225983
+ finishColorVarianceAlpha
+ 0.38997083902359009
+ finishColorVarianceBlue
+ 0.37059104442596436
+ finishColorVarianceGreen
+ 0.81526708602905273
+ finishColorVarianceRed
+ 0.83449059724807739
+ finishParticleSize
+ 43
+ finishParticleSizeVariance
+ 18
+ gravityx
+ 1.4500000476837158
+ gravityy
+ 1.1499999761581421
+ maxParticles
+ 285
+ maxRadius
+ 60
+ maxRadiusVariance
+ 85.263160705566406
+ minRadius
+ 0.0
+ particleLifespan
+ 0.0
+ particleLifespanVariance
+ 2
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 360
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ -4.5
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 191.15043640136719
+ sourcePositiony
+ 217.41175842285156
+ speed
+ 390
+ speedVariance
+ 179
+ startColorAlpha
+ 0.27146226167678833
+ startColorBlue
+ 0.91891378164291382
+ startColorGreen
+ 0.10308317095041275
+ startColorRed
+ 0.7686341404914856
+ startColorVarianceAlpha
+ 0.0067866151221096516
+ startColorVarianceBlue
+ 0.32555040717124939
+ startColorVarianceGreen
+ 0.41684192419052124
+ startColorVarianceRed
+ 0.79420870542526245
+ startParticleSize
+ 3
+ startParticleSizeVariance
+ 24
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ phoenixLeftWing.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/SmallSun.plist b/tests/cpp-tests/Resources/Particles/SmallSun.plist
new file mode 100755
index 0000000000..54be523a9b
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/SmallSun.plist
@@ -0,0 +1,110 @@
+
+
+
+
+ angle
+ 0.0
+ angleVariance
+ 360
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 1
+ finishColorRed
+ 1
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 0.0
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 500
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 0.20000000298023224
+ particleLifespanVariance
+ 0.85530000925064087
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ -380
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ rotationEnd
+ 0.0
+ rotationEndVariance
+ 0.0
+ rotationStart
+ 0.0
+ rotationStartVariance
+ 0.0
+ sourcePositionVariancex
+ 7
+ sourcePositionVariancey
+ 7
+ sourcePositionx
+ 161.41999816894531
+ sourcePositiony
+ 232.94000244140625
+ speed
+ 128
+ speedVariance
+ 6.5799999237060547
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.0
+ startColorGreen
+ 0.0
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.0
+ startColorVarianceGreen
+ 0.0
+ startColorVarianceRed
+ 0.0
+ startParticleSize
+ 22
+ startParticleSizeVariance
+ 14
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ -144.74000549316406
+ textureFileName
+ particleTexture.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/SpinningPeas.plist b/tests/cpp-tests/Resources/Particles/SpinningPeas.plist
new file mode 100755
index 0000000000..724564dcff
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/SpinningPeas.plist
@@ -0,0 +1,110 @@
+
+
+
+
+ angle
+ 90
+ angleVariance
+ 360
+ blendFuncDestination
+ 771
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0
+ finishColorAlpha
+ 0
+ finishColorBlue
+ 1
+ finishColorGreen
+ 1
+ finishColorRed
+ 1
+ finishColorVarianceAlpha
+ 0
+ finishColorVarianceBlue
+ 0
+ finishColorVarianceGreen
+ 0
+ finishColorVarianceRed
+ 0
+ finishParticleSize
+ 64
+ finishParticleSizeVariance
+ 0
+ gravityx
+ 0
+ gravityy
+ 0
+ maxParticles
+ 15
+ maxRadius
+ 331.5799865722656
+ maxRadiusVariance
+ 0
+ minRadius
+ 0
+ particleLifespan
+ 10
+ particleLifespanVariance
+ 0
+ radialAcceleration
+ 0
+ radialAccelVariance
+ 0
+ rotatePerSecond
+ 0
+ rotatePerSecondVariance
+ 68.68000030517578
+ rotationEnd
+ 0
+ rotationEndVariance
+ 3600
+ rotationStart
+ 0
+ rotationStartVariance
+ 0
+ sourcePositionVariancex
+ 7
+ sourcePositionVariancey
+ 7
+ sourcePositionx
+ 160
+ sourcePositiony
+ 222
+ speed
+ 20
+ speedVariance
+ 0
+ startColorAlpha
+ 1
+ startColorBlue
+ 1
+ startColorGreen
+ 1
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 0
+ startColorVarianceBlue
+ 0
+ startColorVarianceGreen
+ 0
+ startColorVarianceRed
+ 0
+ startParticleSize
+ 64
+ startParticleSizeVariance
+ 0
+ tangentialAcceleration
+ 0
+ tangentialAccelVariance
+ 0
+ textureFileName
+ PeasTexture.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/Spiral.plist b/tests/cpp-tests/Resources/Particles/Spiral.plist
new file mode 100755
index 0000000000..8096ac24f0
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/Spiral.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 270
+ angleVariance
+ 0.0
+ blendFuncDestination
+ 771
+ blendFuncSource
+ 1
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 0.0
+ finishColorBlue
+ 0.5
+ finishColorGreen
+ 0.5
+ finishColorRed
+ 0.5
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.5
+ finishColorVarianceGreen
+ 0.5
+ finishColorVarianceRed
+ 0.5
+ finishParticleSize
+ 20
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 500
+ maxRadius
+ 276.20999145507812
+ maxRadiusVariance
+ 154.94999694824219
+ minRadius
+ 0.0
+ particleLifespan
+ 10
+ particleLifespanVariance
+ 0.0
+ radialAccelVariance
+ 10
+ radialAcceleration
+ -380
+ rotatePerSecond
+ 35.529998779296875
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 158.58407592773438
+ sourcePositiony
+ 252.70588684082031
+ speed
+ 150
+ speedVariance
+ 0.0
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.5
+ startColorGreen
+ 0.5
+ startColorRed
+ 0.5
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.5
+ startColorVarianceGreen
+ 0.5
+ startColorVarianceRed
+ 0.5
+ startParticleSize
+ 20
+ startParticleSizeVariance
+ 0.0
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 45
+ textureFileName
+ Spiral.png
+ textureImageData
+ H4sIAAAAAAAAAwFmA5n8iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADLUlEQVRYCcXX51JbQRCEUeOc/f6v6ZzxHKFPLAoI84epmrp7985294QVxcXl5eWjh7Sn9yB/MWcej19sXQb87/iP8f+yiztWAOmzcYL5k/F9AX9m7/fWf83zTmLOVeD5AHECWieiKpR95D8nlhPcepbH7TYBL+dI/mrWRCRkrQIBZY9Q5vzb+PdxQj2P2ikBCPnrxb0TRMQpAYiRIa9lVcregR0TgATZm/G3W7cmxn5VaA6qQNkjEkNAMbPcDOpBJfYF6DMByJC/H3+3XSfC97IziATov8FD8HUcDmzZs+bETSF0Z+cEICeCE0TYOQFlHznSZoTQkwIc5PW+FqwC7NUGVagCXTvlXzNHXnXE5LsrulYAYFduX4Ts11b4LlaWlbXBWzNH2GxojzN4jgogJgENYreganyYGELsq1YCAOp9CZX5eivEwy9mltcvPvqwirBHSGKIQE6Eitg35forO5mxSo5cDJyVHIf3TRVSIxNgiUgIUO5Abel2qII4hLJnSk5M7XC2rMPGU5s2APO++11PiKBVUECEyAq5athHyvS6TO2vhOHB72/ILK+VtHnb0+EEAkeiLZGV2UpyG94cvRbgh+KcGyzenZb5l3FPbbBfzDks3zcmE9aBCIBF1FCt16meO98M6L3BEpeohIUHP65ZXvXJM2IH8oCAATZYiJWc+a7swJF/HvddnHjnuLgwE4RvY1XAAVMuwAHvHPA61cUDNnD6DUws8k/j2kJEZ8NahdjbWIBeVvJIgSISh4yJ8931SgBwpMhVwtPZKiIeaSJmeWWrgMolENh6pSKXrTjftcKU66m9ziViFSI+AWJ3tgoQADTwrtdKLvvinE2AfcAylTXyj9tn1UiE8ztbBdhUIiD2u9ez3PS5LP0QJe6UgKpgJhpOuPBv2DEBMubAmbI3H0BqDYEJcBOAy06mqpCI/xIw5zYViFx/gZc98IZyX0DtITIR+4M4n27afgX6CgB52dffsq9FawWqkipUCWLyWR7aKQEiHVwFuHbrX7batApNRO3wPOj77O3swf8zuquAneJZaEPZ14KqcOOKrYdOre8j4BTWvfZl8qD2D7ghcomuE8XXAAAAAElFTkSuQmCCksg8PmYDAAA=
+
+
diff --git a/tests/cpp-tests/Resources/Particles/SpookyPeas.plist b/tests/cpp-tests/Resources/Particles/SpookyPeas.plist
new file mode 100755
index 0000000000..8abb1d4110
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/SpookyPeas.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 90
+ angleVariance
+ 360
+ blendFuncDestination
+ 771
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 1
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 1
+ finishColorGreen
+ 1
+ finishColorRed
+ 1
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 1
+ finishColorVarianceGreen
+ 1
+ finishColorVarianceRed
+ 1
+ finishParticleSize
+ 0.0
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 1000
+ maxRadius
+ 192.6300048828125
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 2
+ particleLifespanVariance
+ 0.0
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 73.419998168945312
+ rotatePerSecondVariance
+ 73.419998168945312
+ sourcePositionVariancex
+ 7
+ sourcePositionVariancey
+ 7
+ sourcePositionx
+ 160
+ sourcePositiony
+ 222
+ speed
+ 225
+ speedVariance
+ 30
+ startColorAlpha
+ 0.0
+ startColorBlue
+ 1
+ startColorGreen
+ 0.0
+ startColorRed
+ 0.0
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 1
+ startColorVarianceGreen
+ 1
+ startColorVarianceRed
+ 1
+ startParticleSize
+ 64
+ startParticleSizeVariance
+ 5
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ PeasTexture.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/TestPremultipliedAlpha.plist b/tests/cpp-tests/Resources/Particles/TestPremultipliedAlpha.plist
new file mode 100755
index 0000000000..1f9c2e6ac5
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/TestPremultipliedAlpha.plist
@@ -0,0 +1,110 @@
+
+
+
+
+ angle
+ 0.0
+ angleVariance
+ 360
+ blendFuncDestination
+ 771
+ blendFuncSource
+ 1
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 0.0
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 0.0
+ finishColorRed
+ 0.0
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 1
+ finishColorVarianceGreen
+ 1
+ finishColorVarianceRed
+ 1
+ finishParticleSize
+ 0.0
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 90
+ maxRadius
+ 100
+ maxRadiusVariance
+ 178.05097961425781
+ minRadius
+ 0.0
+ particleLifespan
+ 1.513200044631958
+ particleLifespanVariance
+ 0.0
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ -14.391447067260742
+ rotatePerSecond
+ 360
+ rotatePerSecondVariance
+ 0.0
+ rotationEnd
+ 0.0
+ rotationEndVariance
+ 367.84539794921875
+ rotationStart
+ 0.0
+ rotationStartVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 16
+ sourcePositionx
+ 160
+ sourcePositiony
+ 240
+ speed
+ 183.07977294921875
+ speedVariance
+ 29.759456634521484
+ startColorAlpha
+ 0.2199999988079071
+ startColorBlue
+ 1
+ startColorGreen
+ 1
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.0
+ startColorVarianceGreen
+ 0.57999998331069946
+ startColorVarianceRed
+ 0.34000000357627869
+ startParticleSize
+ 24.026315689086914
+ startParticleSizeVariance
+ 22.319999694824219
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 44.921875
+ textureFileName
+ arrows.png
+ textureImageData
+ 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
+
+
diff --git a/tests/cpp-tests/Resources/Particles/Upsidedown.plist b/tests/cpp-tests/Resources/Particles/Upsidedown.plist
new file mode 100755
index 0000000000..51d58af8c2
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/Upsidedown.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ angle
+ 153
+ angleVariance
+ 163
+ blendFuncDestination
+ 771
+ blendFuncSource
+ 1
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 0.17519465088844299
+ finishColorBlue
+ 0.11082467436790466
+ finishColorGreen
+ 0.28954619169235229
+ finishColorRed
+ 0.0099386833608150482
+ finishColorVarianceAlpha
+ 0.25987446308135986
+ finishColorVarianceBlue
+ 0.73861962556838989
+ finishColorVarianceGreen
+ 0.16484105587005615
+ finishColorVarianceRed
+ 0.28705751895904541
+ finishParticleSize
+ 18
+ finishParticleSizeVariance
+ 31
+ gravityx
+ 0.64999997615814209
+ gravityy
+ 1.6000000238418579
+ maxParticles
+ 206
+ maxRadius
+ 100
+ maxRadiusVariance
+ 0.0
+ minRadius
+ 0.0
+ particleLifespan
+ 3
+ particleLifespanVariance
+ 9
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ 0.0
+ rotatePerSecond
+ 0.0
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 7
+ sourcePositionVariancey
+ 7
+ sourcePositionx
+ 164.24778747558594
+ sourcePositiony
+ 194.82353210449219
+ speed
+ 77
+ speedVariance
+ 69
+ startColorAlpha
+ 0.76000493764877319
+ startColorBlue
+ 0.21461969614028931
+ startColorGreen
+ 0.55250370502471924
+ startColorRed
+ 0.79755288362503052
+ startColorVarianceAlpha
+ 0.26676812767982483
+ startColorVarianceBlue
+ 0.93595731258392334
+ startColorVarianceGreen
+ 0.98810279369354248
+ startColorVarianceRed
+ 0.55410420894622803
+ startParticleSize
+ 12
+ startParticleSizeVariance
+ 62
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 0.0
+ textureFileName
+ Upsidedown.png
+ textureImageData
+ H4sIAAAAAAAAAwFeCaH2iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAGK0lEQVR4Ae1aXaxcUxSei6vqp5pGE6GYErmSFgkhKZI+eZBUHxqCeEEkXiSlFdrgTVUpRYmQqOSKVIImPJC+CMELaSRVVND00vpJWz9VlKrr+6ZnN9/s2T/rzJyaSeasZN299vo766y99j7rnDsjk5OTjWGGo4b55nnvdQLqChjyDNRbYMgLoD4E6y0w7FvgmEACzgHvHeBBD/8p5iMYj47gevDvBv4fwNg/Ak4H/l3gARlBNkYFjxX6MtA7gI2RQCs8Bv5WCruAP2AzC/hzF7ZlTa6HARPeDcyG0XYahiqAwa8DzgSeBmRFMMsWOB5KtwEfsij3qHNHCfs/ofs58FvgbuBe4CFgBWSQVbIWaIWdUBwF5vz2Ip9nDQZ6b6TisTwF+Lr4vEuYYWTVXGfQ60WlzOq/iAvxbAiCJQE0/DpoHWfeGRf1LDkTHhaV8LItpWtNwO8pJwHZReDND/CrYC2Bk9DZFfO9KyYg35qAf6HLE74MLC2jbNSdAb1bjbpObZ8jQqM1AbTls9bBFkckxgWQzUnIuxHdDqMTxNASB58AUSiTAFaBg40gNrlJZGTDtCwi64Y9FUZMgIMJEONukhj/SsjMW4A+NAGcP8A/GbgBcjYdVcAtcMLexMFKENHTvVBiN+vH7exbY7cVQOPXgZ+0vMT/sGW+Jy42S+hHzxQ2NC8YrHMJ6qkC2B+sMARxE3TYG/QC7Cu0kthp6pkU880KSEIvFUDHrwC/SF6h0ZgCua5eRr1DzLNkuXB3grY2ZpUmgCvuA/eXpQr4fnCKb2ycL4TeXNF9BHTyYBPdI5YAroqD9SC2uUlk5KOrTPuqbu6VyY+gn5N5jkwegDQuswVCFUAf/E7AEzkHfIRNyyl58isxv0R4j4JOPtdFl2Qs5sNqZRJw2ChAjIPHkzkFJ0Ooz/GUrpPp6u8B8xknMI5HLAG6BRgLT+RVhqD4ksRvBha4HErzRXEN6GRbK7pmskwF+DftX4Qn8/c+05vzIOSBaAFd/V9h8JTFyNOptAI0WaFk7MfFV3sBhKZ3gTklJBDexaCvkjlvnkkoC6E423zoTbUJAhPVVVpVn8VktzICNJuimwN8Zd0vE76KPy7zMiQ7yCTEbiRkpNlUWnUZ7GPKiNBsj2Pv9BdCxme/A0tSna4/Zu8vqyAeVTeWAKo/DeSH1RQ0IbwxosDVd/7Z8Fi2VcRV6/N9TNbi600lFSF0QVEvZbcX8ieplIHlkPt+5oK3SOzWgc4drKLeQVa6BTRYTUbHVcF4AvhbSCC8MdDXyJzkfUDnmw2W5dFKuxhUmgB1pskIXZxbgFshB3zUuRs+D/S1YvAS6AmZh0hnG5KRl4szryCeR4XWZAi7jeRhmPuOeAF0ri6suPouYPbwVfxzJRunu2ARQ3LQBFjsdsEbT/AcsArOBfJfXQ42gNjqJolxoCuAcfME50megkshfA2oq/VgykBkuQRQNblYSaFcSFefbA1W1DrI78AZ7+B2Ms4X1lugP5Z5irTEn4zV4oAB+AmINTGhYB8GM/teLoYrhM6RyZsrjP3Y23x2m4Ck07YrNBpfYf6qx4tN34fgg5gwwLcsRPK9w5oA/rhAoUwCaGc90a16LhZLHJUkYJq7YjFaLqwm3NMblRGgt4D3ZoCfYh2XEhayE1M61grg/+QU/LnKYvTKmKDgs+vLvr97PvyF8cSt6UkhpuNZE3CqMyjG0725ZfoulD6MKE6A/3JElmI3U8JCNjOlY02Afpygv1lAfXSlrqEy9gUhWAMme/8ywPLnh5MczEsphH4kNRUGVwBZ5k0gHSwE+k3HT+BtAH4K/AH4JXATMAV8bFFvtijxSw8Tuk94IbIJ5tnA6cAzgHyRYpw5YGIZ52fAb4CM9W3goQYt8FuesRK/v1HV9wK+Qr8DWqxGoFcb7VZ5dr1Mm+6a1i2AhFUG/Hj6S+HtIMa1lXnuwlFsC8yBL5akwwOgGSzLiSP7An7eVqQOy8wCi6G0AMgts8xiAJ2zgDzQ9guyjIkuLsZG5MJyu7FRInJba6ybMW9tgVACIBse6McWGKjs1gkYqOXoQzB1BfQh6QN1yboCBmo5+hBMXQF9SPpAXbKugIFajj4E8x9SOZpi6xBnowAAAABJRU5ErkJggjyUuRheCQAA
+
+
diff --git a/tests/cpp-tests/Resources/Particles/debian.plist b/tests/cpp-tests/Resources/Particles/debian.plist
new file mode 100755
index 0000000000..1caf17cd25
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/debian.plist
@@ -0,0 +1,104 @@
+
+
+
+
+ angle
+ 270
+ angleVariance
+ 0.0
+ blendAdditive
+ 0.0
+ blendFuncDestination
+ 1
+ blendFuncSource
+ 770
+ duration
+ -1
+ emitterType
+ 0.0
+ finishColorAlpha
+ 1
+ finishColorBlue
+ 0.0
+ finishColorGreen
+ 0.0
+ finishColorRed
+ 1
+ finishColorVarianceAlpha
+ 0.0
+ finishColorVarianceBlue
+ 0.0
+ finishColorVarianceGreen
+ 0.0
+ finishColorVarianceRed
+ 0.0
+ finishParticleSize
+ 20
+ finishParticleSizeVariance
+ 0.0
+ gravityx
+ 0.0
+ gravityy
+ 0.0
+ maxParticles
+ 500
+ maxRadius
+ 276.20999145507812
+ maxRadiusVariance
+ 154.94999694824219
+ minRadius
+ 0.0
+ particleLifespan
+ 10
+ particleLifespanVariance
+ 0.0
+ radialAccelVariance
+ 0.0
+ radialAcceleration
+ -200
+ rotatePerSecond
+ 35.529998779296875
+ rotatePerSecondVariance
+ 0.0
+ sourcePositionVariancex
+ 0.0
+ sourcePositionVariancey
+ 0.0
+ sourcePositionx
+ 175.58000183105469
+ sourcePositiony
+ 247.05999755859375
+ speed
+ 50
+ speedVariance
+ 0.0
+ startColorAlpha
+ 1
+ startColorBlue
+ 0.0
+ startColorGreen
+ 0.0
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 0.0
+ startColorVarianceBlue
+ 0.0
+ startColorVarianceGreen
+ 0.0
+ startColorVarianceRed
+ 0.0
+ startParticleSize
+ 20
+ startParticleSizeVariance
+ 0.0
+ tangentialAccelVariance
+ 0.0
+ tangentialAcceleration
+ 45
+ textureFileName
+ debian.png
+ textureImageData
+ H4sIAAAAAAAAAwFmA5n8iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADLUlEQVRYCcXX51JbQRCEUeOc/f6v6ZzxHKFPLAoI84epmrp7985294QVxcXl5eWjh7Sn9yB/MWcej19sXQb87/iP8f+yiztWAOmzcYL5k/F9AX9m7/fWf83zTmLOVeD5AHECWieiKpR95D8nlhPcepbH7TYBL+dI/mrWRCRkrQIBZY9Q5vzb+PdxQj2P2ikBCPnrxb0TRMQpAYiRIa9lVcregR0TgATZm/G3W7cmxn5VaA6qQNkjEkNAMbPcDOpBJfYF6DMByJC/H3+3XSfC97IziATov8FD8HUcDmzZs+bETSF0Z+cEICeCE0TYOQFlHznSZoTQkwIc5PW+FqwC7NUGVagCXTvlXzNHXnXE5LsrulYAYFduX4Ts11b4LlaWlbXBWzNH2GxojzN4jgogJgENYreganyYGELsq1YCAOp9CZX5eivEwy9mltcvPvqwirBHSGKIQE6Eitg35forO5mxSo5cDJyVHIf3TRVSIxNgiUgIUO5Abel2qII4hLJnSk5M7XC2rMPGU5s2APO++11PiKBVUECEyAq5athHyvS6TO2vhOHB72/ILK+VtHnb0+EEAkeiLZGV2UpyG94cvRbgh+KcGyzenZb5l3FPbbBfzDks3zcmE9aBCIBF1FCt16meO98M6L3BEpeohIUHP65ZXvXJM2IH8oCAATZYiJWc+a7swJF/HvddnHjnuLgwE4RvY1XAAVMuwAHvHPA61cUDNnD6DUws8k/j2kJEZ8NahdjbWIBeVvJIgSISh4yJ8931SgBwpMhVwtPZKiIeaSJmeWWrgMolENh6pSKXrTjftcKU66m9ziViFSI+AWJ3tgoQADTwrtdKLvvinE2AfcAylTXyj9tn1UiE8ztbBdhUIiD2u9ez3PS5LP0QJe6UgKpgJhpOuPBv2DEBMubAmbI3H0BqDYEJcBOAy06mqpCI/xIw5zYViFx/gZc98IZyX0DtITIR+4M4n27afgX6CgB52dffsq9FawWqkipUCWLyWR7aKQEiHVwFuHbrX7batApNRO3wPOj77O3swf8zuquAneJZaEPZ14KqcOOKrYdOre8j4BTWvfZl8qD2D7ghcomuE8XXAAAAAElFTkSuQmCCksg8PmYDAAA=
+
+
diff --git a/tests/cpp-tests/Resources/Particles/lines.plist b/tests/cpp-tests/Resources/Particles/lines.plist
new file mode 100755
index 0000000000..a480261fcc
--- /dev/null
+++ b/tests/cpp-tests/Resources/Particles/lines.plist
@@ -0,0 +1,118 @@
+
+
+
+
+ angle
+ 90
+ angleVariance
+ 30
+ blendAdditive
+ 1
+ blendFuncDestination
+ 771
+ blendFuncSource
+ 1
+ duration
+ -1
+ emitterType
+ 0
+ emissionRate
+ 30
+ finishColorAlpha
+ 0
+ finishColorBlue
+ 1
+ finishColorGreen
+ 1
+ finishColorRed
+ 1
+ finishColorVarianceAlpha
+ 1
+ finishColorVarianceBlue
+ 0
+ finishColorVarianceGreen
+ 0
+ finishColorVarianceRed
+ 0
+ rotationStart
+ 0
+ rotationStartVariance
+ 0
+ rotationEnd
+ 0
+ rotationEndVariance
+ 0
+ finishParticleSize
+ 5
+ finishParticleSizeVariance
+ 0
+ gravityx
+ 0
+ gravityy
+ 0
+ maxParticles
+ 100
+ maxRadius
+ 0
+ maxRadiusVariance
+ 0
+ minRadius
+ 0
+ minRadiusVariance
+ 0
+ particleLifespan
+ 2
+ particleLifespanVariance
+ 0.125
+ radialAccelVariance
+ 0
+ radialAcceleration
+ -60
+ rotationIsDir
+ 1
+ rotatePerSecond
+ 0
+ rotatePerSecondVariance
+ 0
+ sourcePositionVariancex
+ 0
+ sourcePositionVariancey
+ 0
+ sourcePositionx
+ 0
+ sourcePositiony
+ 0
+ speed
+ 150
+ speedVariance
+ 30
+ startColorAlpha
+ 1
+ startColorBlue
+ 1
+ startColorGreen
+ 1
+ startColorRed
+ 1
+ startColorVarianceAlpha
+ 1
+ startColorVarianceBlue
+ 0
+ startColorVarianceGreen
+ 0
+ startColorVarianceRed
+ 0
+ startParticleSize
+ 60
+ startParticleSizeVariance
+ 10
+ tangentialAccelVariance
+ 0
+ tangentialAcceleration
+ 15
+ textureFileName
+ line.png
+ textureImageData
+ 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
+
+
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Blur.fsh b/tests/cpp-tests/Resources/Shaders/example_Blur.fsh
new file mode 100755
index 0000000000..8489686bf6
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Blur.fsh
@@ -0,0 +1,58 @@
+// Shader taken from: http://webglsamples.googlecode.com/hg/electricflower/electricflower.html
+
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform sampler2D CC_Texture0;
+
+uniform vec4 gaussianCoefficient;
+uniform vec2 onePixelSize;
+
+void main() {
+ if(gaussianCoefficient.x > 0.0) {
+ vec4 sum = vec4(0.0);
+ vec2 offset;
+ float weight;
+ float squareX;
+
+ for(float dx = 0.0; dx <= gaussianCoefficient.x; dx += 1.0) {
+ squareX = dx * dx;
+ weight = gaussianCoefficient.z * exp(squareX * gaussianCoefficient.y);
+
+ offset.x = -dx * onePixelSize.x;
+ offset.y = 0.0;
+ sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
+
+ offset.x = dx * onePixelSize.x;
+ sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
+
+ for(float dy = 1.0; dy <= gaussianCoefficient.x; dy += 1.0) {
+ weight = gaussianCoefficient.z * exp((squareX + dy * dy) * gaussianCoefficient.y);
+
+ offset.x = -dx * onePixelSize.x;
+ offset.y = -dy * onePixelSize.y;
+ sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
+
+ offset.y = dy * onePixelSize.y;
+ sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
+
+ offset.x = dx * onePixelSize.x;
+ sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
+
+ offset.y = -dy * onePixelSize.y;
+ sum += texture2D(CC_Texture0, v_texCoord + offset) * weight;
+ }
+ }
+ sum -= texture2D(CC_Texture0, v_texCoord) * gaussianCoefficient.z;
+ sum /= gaussianCoefficient.w;
+ gl_FragColor = sum * v_fragmentColor;
+ }
+ else {
+ gl_FragColor = texture2D(CC_Texture0, v_texCoord) * v_fragmentColor;
+ }
+}
+
diff --git a/tests/cpp-tests/Resources/Shaders/example_ColorBars.fsh b/tests/cpp-tests/Resources/Shaders/example_ColorBars.fsh
new file mode 100755
index 0000000000..0ed6b49188
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_ColorBars.fsh
@@ -0,0 +1,44 @@
+// http://www.cocos2d-iphone.org
+
+#ifdef GL_ES
+precision lowp float;
+#endif
+
+varying vec2 v_texCoord;
+uniform sampler2D CC_Texture0;
+
+vec4 getColorByCoord(int y){
+ if(y < 5){
+ if(y == 0){
+ return vec4(1,0,0,1);
+ } else if(y == 1){
+ return vec4(0,1,0,1);
+ } else if(y == 2){
+ return vec4(0,0,1,1);
+ } else if(y == 3){
+ return vec4(0,1,1,1);
+ } else{
+ return vec4(1,0,1,1);
+ }
+ } else {
+ if(y == 5){
+ return vec4(1,1,0,1);
+ } else if(y == 6){
+ return vec4(1,1,1,1);
+ } else if(y == 7){
+ return vec4(1,0.5,0,1);
+ } else if(y == 8){
+ return vec4(1,0.5,0.5,1);
+ }else {
+ return vec4(0.5,0.5,1,1);
+ }
+ }
+}
+
+void main(void) {
+ // inline to prevent "float" loss and keep using lowp
+ //int y = int( mod(( (gl_FragCoord.y+gl_FragCoord.x)*mod(CC_Time[0],5.0)) / 10.0, 10.0 ) );
+ //int y = int( mod( CC_Time[3] + (gl_FragCoord.y + gl_FragCoord.x) / 10.0, 10.0 ) );
+ int y = int( mod(gl_FragCoord.y / 10.0, 10.0 ) );
+ gl_FragColor = getColorByCoord(y) * texture2D(CC_Texture0, v_texCoord);
+}
diff --git a/tests/cpp-tests/Resources/Shaders/example_ColorBars.vsh b/tests/cpp-tests/Resources/Shaders/example_ColorBars.vsh
new file mode 100755
index 0000000000..71dea345f4
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_ColorBars.vsh
@@ -0,0 +1,18 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+attribute vec2 a_texCoord;
+
+#ifdef GL_ES
+varying mediump vec2 v_texCoord;
+#else
+varying vec2 v_texCoord;
+#endif
+
+void main()
+{
+ //gl_Position = CC_MVPMatrix * a_position;
+ gl_Position = (CC_PMatrix * CC_MVMatrix) * a_position;
+ v_texCoord = a_texCoord;
+}
+
diff --git a/tests/cpp-tests/Resources/Shaders/example_Flower.fsh b/tests/cpp-tests/Resources/Shaders/example_Flower.fsh
new file mode 100755
index 0000000000..9440e89425
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Flower.fsh
@@ -0,0 +1,34 @@
+// Shader from http://www.iquilezles.org/apps/shadertoy/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 center;
+uniform vec2 resolution;
+
+//float u( float x ) { return 0.5+0.5*sign(x); }
+float u( float x ) { return (x>0.0)?1.0:0.0; }
+//float u( float x ) { return abs(x)/x; }
+
+void main(void)
+{
+ float time = CC_Time[1];
+ vec2 p = 2.0 * (gl_FragCoord.xy - center.xy) / resolution.xy;
+
+ float a = atan(p.x,p.y);
+ float r = length(p)*.75;
+
+ float w = cos(3.1415927*time-r*2.0);
+ float h = 0.5+0.5*cos(12.0*a-w*7.0+r*8.0);
+ float d = 0.25+0.75*pow(h,1.0*r)*(0.7+0.3*w);
+
+ float col = u( d-r ) * sqrt(1.0-r/d)*r*2.5;
+ col *= 1.25+0.25*cos((12.0*a-w*7.0+r*8.0)/2.0);
+ col *= 1.0 - 0.35*(0.5+0.5*sin(r*30.0))*(0.5+0.5*cos(12.0*a-w*7.0+r*8.0));
+ gl_FragColor = vec4(
+ col,
+ col-h*0.5+r*.2 + 0.35*h*(1.0-r),
+ col-h*r + 0.1*h*(1.0-r),
+ 1.0);
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Flower.vsh b/tests/cpp-tests/Resources/Shaders/example_Flower.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Flower.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Heart.fsh b/tests/cpp-tests/Resources/Shaders/example_Heart.fsh
new file mode 100755
index 0000000000..2a71e1af17
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Heart.fsh
@@ -0,0 +1,33 @@
+// Shader from http://www.iquilezles.org/apps/shadertoy/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 center;
+uniform vec2 resolution;
+
+void main(void)
+{
+ float time = CC_Time[1];
+ vec2 p = 2.0 * (gl_FragCoord.xy - center.xy) / resolution.xy;
+
+ // animate
+ float tt = mod(time,2.0)/2.0;
+ float ss = pow(tt,.2)*0.5 + 0.5;
+ ss -= ss*0.2*sin(tt*6.2831*5.0)*exp(-tt*6.0);
+ p *= vec2(0.5,1.5) + ss*vec2(0.5,-0.5);
+
+
+ float a = atan(p.x,p.y)/3.141593;
+ float r = length(p);
+
+ // shape
+ float h = abs(a);
+ float d = (13.0*h - 22.0*h*h + 10.0*h*h*h)/(6.0-5.0*h);
+
+ // color
+ float f = step(r,d) * pow(1.0-r/d,0.25);
+
+ gl_FragColor = vec4(f,0.0,0.0,1.0);
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Heart.vsh b/tests/cpp-tests/Resources/Shaders/example_Heart.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Heart.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_HorizontalColor.fsh b/tests/cpp-tests/Resources/Shaders/example_HorizontalColor.fsh
new file mode 100755
index 0000000000..86bc8a438c
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_HorizontalColor.fsh
@@ -0,0 +1,28 @@
+// http://www.cocos2d-iphone.org
+
+#ifdef GL_ES
+precision lowp float;
+#endif
+
+varying vec2 v_texCoord;
+uniform sampler2D CC_Texture0;
+
+vec4 colors[10];
+
+void main(void)
+{
+ colors[0] = vec4(1,0,0,1);
+ colors[1] = vec4(0,1,0,1);
+ colors[2] = vec4(0,0,1,1);
+ colors[3] = vec4(0,1,1,1);
+ colors[4] = vec4(1,0,1,1);
+ colors[5] = vec4(1,1,0,1);
+ colors[6] = vec4(1,1,1,1);
+ colors[7] = vec4(1,0.5,0,1);
+ colors[8] = vec4(1,0.5,0.5,1);
+ colors[9] = vec4(0.5,0.5,1,1);
+
+ // inline to prevent "float" loss and keep using lowp
+ int y = int( mod(gl_FragCoord.y / 3.0, 10.0 ) );
+ gl_FragColor = colors[y] * texture2D(CC_Texture0, v_texCoord);
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Julia.fsh b/tests/cpp-tests/Resources/Shaders/example_Julia.fsh
new file mode 100755
index 0000000000..4d16aa0371
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Julia.fsh
@@ -0,0 +1,29 @@
+// Shader from http://www.iquilezles.org/apps/shadertoy/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 center;
+uniform vec2 resolution;
+
+void main(void)
+{
+ float time = CC_Time[1];
+ vec2 p = 2.0 * (gl_FragCoord.xy - center.xy) / resolution.xy;
+ vec2 cc = vec2( cos(.25*time), sin(.25*time*1.423) );
+
+ float dmin = 1000.0;
+ vec2 z = p*vec2(1.33,1.0);
+ for( int i=0; i<64; i++ )
+ {
+ z = cc + vec2( z.x*z.x - z.y*z.y, 2.0*z.x*z.y );
+ float m2 = dot(z,z);
+ if( m2>100.0 ) break;
+ dmin=min(dmin,m2);
+ }
+
+ float color = sqrt(sqrt(dmin))*0.7;
+ gl_FragColor = vec4(color,color,color,1.0);
+}
+
diff --git a/tests/cpp-tests/Resources/Shaders/example_Julia.vsh b/tests/cpp-tests/Resources/Shaders/example_Julia.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Julia.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Mandelbrot.fsh b/tests/cpp-tests/Resources/Shaders/example_Mandelbrot.fsh
new file mode 100755
index 0000000000..51cef3b3a0
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Mandelbrot.fsh
@@ -0,0 +1,41 @@
+// Shader from http://www.iquilezles.org/apps/shadertoy/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 center;
+uniform vec2 resolution;
+
+void main(void)
+{
+ vec2 p = 2.0 * (gl_FragCoord.xy - center.xy) / resolution.xy;
+ p.x *= resolution.x/resolution.y;
+
+ float zoo = .62+.38*sin(.1*CC_Time[1]);
+ float coa = cos( 0.1*(1.0-zoo)*CC_Time[1] );
+ float sia = sin( 0.1*(1.0-zoo)*CC_Time[1] );
+ zoo = pow( zoo,8.0);
+ vec2 xy = vec2( p.x*coa-p.y*sia, p.x*sia+p.y*coa);
+ vec2 cc = vec2(-.745,.186) + xy*zoo;
+
+ vec2 z = vec2(0.0);
+ vec2 z2 = z*z;
+ float m2;
+ float co = 0.0;
+
+ for( int i=0; i<256; i++ )
+ {
+ z = cc + vec2( z.x*z.x - z.y*z.y, 2.0*z.x*z.y );
+ m2 = dot(z,z);
+ if( m2>1024.0 ) break;
+ co += 1.0;
+ }
+ co = co + 1.0 - log2(.5*log2(m2));
+
+ co = sqrt(co/256.0);
+ gl_FragColor = vec4( .5+.5*cos(6.2831*co+0.0),
+ .5+.5*cos(6.2831*co+0.4),
+ .5+.5*cos(6.2831*co+0.7),
+ 1.0 );
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Mandelbrot.vsh b/tests/cpp-tests/Resources/Shaders/example_Mandelbrot.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Mandelbrot.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Monjori.fsh b/tests/cpp-tests/Resources/Shaders/example_Monjori.fsh
new file mode 100755
index 0000000000..a830a24817
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Monjori.fsh
@@ -0,0 +1,35 @@
+// Shader from http://www.iquilezles.org/apps/shadertoy/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 center;
+uniform vec2 resolution;
+
+void main(void)
+{
+ vec2 p = 2.0 * (gl_FragCoord.xy - center.xy) / resolution.xy;
+ float a = CC_Time[1]*40.0;
+ float d,e,f,g=1.0/40.0,h,i,r,q;
+ e=400.0*(p.x*0.5+0.5);
+ f=400.0*(p.y*0.5+0.5);
+ i=200.0+sin(e*g+a/150.0)*20.0;
+ d=200.0+cos(f*g/2.0)*18.0+cos(e*g)*7.0;
+ r=sqrt(pow(i-e,2.0)+pow(d-f,2.0));
+ q=f/r;
+ e=(r*cos(q))-a/2.0;f=(r*sin(q))-a/2.0;
+ d=sin(e*g)*176.0+sin(e*g)*164.0+r;
+ h=((f+d)+a/2.0)*g;
+ i=cos(h+r*p.x/1.3)*(e+e+a)+cos(q*g*6.0)*(r+h/3.0);
+ h=sin(f*g)*144.0-sin(e*g)*212.0*p.x;
+ h=(h+(f-e)*q+sin(r-(a+h)/7.0)*10.0+i/4.0)*g;
+ i+=cos(h*2.3*sin(a/350.0-q))*184.0*sin(q-(r*4.3+a/12.0)*g)+tan(r*g+h)*184.0*cos(r*g+h);
+ i=mod(i/5.6,256.0)/64.0;
+ if(i<0.0) i+=4.0;
+ if(i>=2.0) i=4.0-i;
+ d=r/350.0;
+ d+=sin(d*d*8.0)*0.52;
+ f=(sin(a*g)+1.0)/2.0;
+ gl_FragColor=vec4(vec3(f*i/1.6,i/2.0+d/13.0,i)*d*p.x+vec3(i/1.3+d/8.0,i/2.0+d/18.0,i)*d*(1.0-p.x),1.0);
+}
diff --git a/tests/cpp-tests/Resources/Shaders/example_Monjori.vsh b/tests/cpp-tests/Resources/Shaders/example_Monjori.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Monjori.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Noisy.fsh b/tests/cpp-tests/Resources/Shaders/example_Noisy.fsh
new file mode 100755
index 0000000000..ff565de0f2
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Noisy.fsh
@@ -0,0 +1,27 @@
+// Shader taken from: http://webglsamples.googlecode.com/hg/electricflower/electricflower.html
+
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform vec2 resolution;
+uniform sampler2D CC_Texture0;
+
+const float intensity = 0.05;
+vec3 noise(vec2 uv)
+{
+ vec2 p = abs(sin(uv * 13.0 + uv.x * CC_Time[1] * sin(uv.y)));
+
+ return vec3(sin (0.2 * CC_Time[1] + sin(p * 0.5) * CC_Time[1] / cos(50.0)) * 10.0,0.3+0.5 * abs(sin(CC_Time[1] * tan(5.0))));
+
+}
+
+void main(void)
+{
+ gl_FragColor.xyz = intensity * noise(gl_FragCoord.xy / sin(resolution.xy * CC_Time[1] * 0.01)) + (1. - intensity) *
+ texture2D(CC_Texture0,v_texCoord.xy).xyz;
+ gl_FragColor.w = 1.;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Plasma.fsh b/tests/cpp-tests/Resources/Shaders/example_Plasma.fsh
new file mode 100755
index 0000000000..db7671e1f8
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Plasma.fsh
@@ -0,0 +1,22 @@
+// Shader from http://www.iquilezles.org/apps/shadertoy/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 center;
+uniform vec2 resolution;
+
+void main(void)
+{
+ float time = CC_Time[1];
+ float x = gl_FragCoord.x - (center.x - resolution.x / 2.0);
+ float y = gl_FragCoord.y - (center.y - resolution.y / 2.0);
+ float mov0 = x+y+cos(sin(time)*2.)*100.+sin(x/100.)*1000.;
+ float mov1 = y / resolution.y / 0.2 + time;
+ float mov2 = x / resolution.x / 0.2;
+ float c1 = abs(sin(mov1+time)/2.+mov2/2.-mov1-mov2+time);
+ float c2 = abs(sin(c1+sin(mov0/1000.+time)+sin(y/40.+time)+sin((x+y)/100.)*3.));
+ float c3 = abs(sin(c2+cos(mov1+mov2+c2)+cos(mov2)+sin(x/1000.)));
+ gl_FragColor = vec4( c1,c2,c3,1.0);
+}
diff --git a/tests/cpp-tests/Resources/Shaders/example_Plasma.vsh b/tests/cpp-tests/Resources/Shaders/example_Plasma.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Plasma.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Twist.fsh b/tests/cpp-tests/Resources/Shaders/example_Twist.fsh
new file mode 100755
index 0000000000..15eb3106c7
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Twist.fsh
@@ -0,0 +1,26 @@
+// Shader from here: http://www.iquilezles.org/
+
+#ifdef GL_ES
+precision highp float;
+#endif
+
+uniform vec2 resolution;
+uniform sampler2D tex0;
+uniform sampler2D tex1;
+
+void main(void)
+{
+ float time = CC_Time[1];
+ vec2 p = -1.0 + 2.0 * gl_FragCoord.xy / resolution.xy;
+ vec2 uv;
+
+ float a = atan(p.y,p.x);
+ float r = sqrt(dot(p,p));
+
+ uv.x = r - CC_Time[2];
+ uv.y = sin(a*10.0 + 2.0*CC_CosTime[0];
+
+ vec3 col = (.5+.5*uv.y)*texture2D(tex0,uv).xyz;
+
+ gl_FragColor = vec4(col,1.0);
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_Twist.vsh b/tests/cpp-tests/Resources/Shaders/example_Twist.vsh
new file mode 100755
index 0000000000..359ef1e855
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_Twist.vsh
@@ -0,0 +1,8 @@
+// http://www.cocos2d-iphone.org
+
+attribute vec4 a_position;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_bloom.fsh b/tests/cpp-tests/Resources/Shaders/example_bloom.fsh
new file mode 100755
index 0000000000..fc728e99a6
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_bloom.fsh
@@ -0,0 +1,55 @@
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform vec2 resolution;
+uniform sampler2D CC_Texture0;
+
+
+const float blurSize = 1.0/512.0;
+const float intensity = 0.35;
+void main()
+{
+ vec4 sum = vec4(0);
+ vec2 texcoord = v_texCoord.xy;
+ int j;
+ int i;
+
+ //thank you! http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/ for the
+ //blur tutorial
+ // blur in y (vertical)
+ // take nine samples, with the distance blurSize between them
+ sum += texture2D(CC_Texture0, vec2(texcoord.x - 4.0*blurSize, texcoord.y)) * 0.05;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x - 3.0*blurSize, texcoord.y)) * 0.09;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x - 2.0*blurSize, texcoord.y)) * 0.12;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x - blurSize, texcoord.y)) * 0.15;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y)) * 0.16;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x + blurSize, texcoord.y)) * 0.15;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x + 2.0*blurSize, texcoord.y)) * 0.12;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x + 3.0*blurSize, texcoord.y)) * 0.09;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x + 4.0*blurSize, texcoord.y)) * 0.05;
+
+ // blur in y (vertical)
+ // take nine samples, with the distance blurSize between them
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y - 4.0*blurSize)) * 0.05;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y - 3.0*blurSize)) * 0.09;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y - 2.0*blurSize)) * 0.12;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y - blurSize)) * 0.15;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y)) * 0.16;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y + blurSize)) * 0.15;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y + 2.0*blurSize)) * 0.12;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y + 3.0*blurSize)) * 0.09;
+ sum += texture2D(CC_Texture0, vec2(texcoord.x, texcoord.y + 4.0*blurSize)) * 0.05;
+
+ //increase blur with intensity!
+ gl_FragColor = sum*intensity + texture2D(CC_Texture0, texcoord);
+ return;
+ /*if(sin(iGlobalTime) > 0.0)
+ gl_FragColor = sum * sin(iGlobalTime)+ texture2D(iChannel0, texcoord);
+ else
+ gl_FragColor = sum * -sin(iGlobalTime)+ texture2D(iChannel0, texcoord);
+ */
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_celShading.fsh b/tests/cpp-tests/Resources/Shaders/example_celShading.fsh
new file mode 100755
index 0000000000..9e6e13de60
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_celShading.fsh
@@ -0,0 +1,65 @@
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform vec2 resolution;
+uniform sampler2D CC_Texture0;
+
+
+#define FILTER_SIZE 3
+#define COLOR_LEVELS 7.0
+#define EDGE_FILTER_SIZE 3
+#define EDGE_THRESHOLD 0.05
+
+vec4 edgeFilter(in int px, in int py)
+{
+ vec4 color = vec4(0.0);
+
+ for (int y = -EDGE_FILTER_SIZE; y <= EDGE_FILTER_SIZE; ++y)
+ {
+ for (int x = -EDGE_FILTER_SIZE; x <= EDGE_FILTER_SIZE; ++x)
+ {
+ color += texture2D(CC_Texture0, v_texCoord + vec2(px + x, py + y) / resolution.xy);
+ }
+ }
+
+ color /= float((2 * EDGE_FILTER_SIZE + 1) * (2 * EDGE_FILTER_SIZE + 1));
+
+ return color;
+}
+
+void main(void)
+{
+ // Shade
+ vec4 color = vec4(0.0);
+
+ for (int y = -FILTER_SIZE; y <= FILTER_SIZE; ++y)
+ {
+ for (int x = -FILTER_SIZE; x <= FILTER_SIZE; ++x)
+ {
+ color += texture2D(CC_Texture0, v_texCoord + vec2(x, y) / resolution.xy);
+ }
+ }
+
+ color /= float((2 * FILTER_SIZE + 1) * (2 * FILTER_SIZE + 1));
+
+ for (int c = 0; c < 3; ++c)
+ {
+ color[c] = floor(COLOR_LEVELS * color[c]) / COLOR_LEVELS;
+ }
+
+ // Highlight edges
+ vec4 sum = abs(edgeFilter(0, 1) - edgeFilter(0, -1));
+ sum += abs(edgeFilter(1, 0) - edgeFilter(-1, 0));
+ sum /= 2.0;
+
+ if (length(sum) > EDGE_THRESHOLD)
+ {
+ color.rgb = vec3(0.0);
+ }
+
+ gl_FragColor = color;
+}
diff --git a/tests/cpp-tests/Resources/Shaders/example_edgeDetection.fsh b/tests/cpp-tests/Resources/Shaders/example_edgeDetection.fsh
new file mode 100755
index 0000000000..b800eb2486
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_edgeDetection.fsh
@@ -0,0 +1,42 @@
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform vec2 resolution;
+uniform sampler2D CC_Texture0;
+
+float lookup(vec2 p, float dx, float dy)
+{
+ vec2 uv = p.xy + vec2(dx , dy ) / resolution.xy;
+ vec4 c = texture2D(CC_Texture0, uv.xy);
+ return 0.2126*c.r + 0.7152*c.g + 0.0722*c.b;
+}
+
+void main(void)
+{
+ vec2 p = v_texCoord.xy;
+ // simple sobel edge detection
+ float gx = 0.0;
+ gx += -1.0 * lookup(p, -1.0, -1.0);
+ gx += -2.0 * lookup(p, -1.0, 0.0);
+ gx += -1.0 * lookup(p, -1.0, 1.0);
+ gx += 1.0 * lookup(p, 1.0, -1.0);
+ gx += 2.0 * lookup(p, 1.0, 0.0);
+ gx += 1.0 * lookup(p, 1.0, 1.0);
+
+ float gy = 0.0;
+ gy += -1.0 * lookup(p, -1.0, -1.0);
+ gy += -2.0 * lookup(p, 0.0, -1.0);
+ gy += -1.0 * lookup(p, 1.0, -1.0);
+ gy += 1.0 * lookup(p, -1.0, 1.0);
+ gy += 2.0 * lookup(p, 0.0, 1.0);
+ gy += 1.0 * lookup(p, 1.0, 1.0);
+
+ float g = gx*gx + gy*gy;
+
+ gl_FragColor.xyz = vec3(1.-g);
+ gl_FragColor.w = 1.;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_greyScale.fsh b/tests/cpp-tests/Resources/Shaders/example_greyScale.fsh
new file mode 100755
index 0000000000..af69b0c8a6
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_greyScale.fsh
@@ -0,0 +1,15 @@
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform sampler2D CC_Texture0;
+
+void main(void)
+{
+ vec4 c = texture2D(CC_Texture0, v_texCoord);
+ gl_FragColor.xyz = vec3(0.2126*c.r + 0.7152*c.g + 0.0722*c.b);
+ gl_FragColor.w = c.w;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_lensFlare.fsh b/tests/cpp-tests/Resources/Shaders/example_lensFlare.fsh
new file mode 100755
index 0000000000..2c4e75c948
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_lensFlare.fsh
@@ -0,0 +1,101 @@
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform vec2 resolution;
+uniform vec2 textureResolution;
+uniform sampler2D CC_Texture0;
+
+/*by musk License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
+
+ Trying to get some interesting looking lens flares.
+
+ 13/08/13:
+ published
+
+ muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuusk!*/
+
+float noise(float t)
+{
+ return texture2D(CC_Texture0,vec2(t,.0)/textureResolution.xy).x;
+}
+float noise(vec2 t)
+{
+ return texture2D(CC_Texture0,t/textureResolution.xy).x;
+}
+
+vec3 lensflare(vec2 uv,vec2 pos)
+{
+ vec2 main = uv-pos;
+ vec2 uvd = uv*(length(uv));
+
+ float ang = atan(main.x,main.y);
+ float dist=length(main); dist = pow(dist,.1);
+ float n = noise(vec2(ang*16.0,dist*32.0));
+
+ float f0 = 1.0/(length(uv-pos)*16.0+1.0);
+
+ f0 = f0+f0*(sin(noise((pos.x+pos.y)*2.2+ang*4.0+5.954)*16.0)*.1+dist*.1+.8);
+
+ float f1 = max(0.01-pow(length(uv+1.2*pos),1.9),.0)*7.0;
+
+ float f2 = max(1.0/(1.0+32.0*pow(length(uvd+0.8*pos),2.0)),.0)*00.25;
+ float f22 = max(1.0/(1.0+32.0*pow(length(uvd+0.85*pos),2.0)),.0)*00.23;
+ float f23 = max(1.0/(1.0+32.0*pow(length(uvd+0.9*pos),2.0)),.0)*00.21;
+
+ vec2 uvx = mix(uv,uvd,-0.5);
+
+ float f4 = max(0.01-pow(length(uvx+0.4*pos),2.4),.0)*6.0;
+ float f42 = max(0.01-pow(length(uvx+0.45*pos),2.4),.0)*5.0;
+ float f43 = max(0.01-pow(length(uvx+0.5*pos),2.4),.0)*3.0;
+
+ uvx = mix(uv,uvd,-.4);
+
+ float f5 = max(0.01-pow(length(uvx+0.2*pos),5.5),.0)*2.0;
+ float f52 = max(0.01-pow(length(uvx+0.4*pos),5.5),.0)*2.0;
+ float f53 = max(0.01-pow(length(uvx+0.6*pos),5.5),.0)*2.0;
+
+ uvx = mix(uv,uvd,-0.5);
+
+ float f6 = max(0.01-pow(length(uvx-0.3*pos),1.6),.0)*6.0;
+ float f62 = max(0.01-pow(length(uvx-0.325*pos),1.6),.0)*3.0;
+ float f63 = max(0.01-pow(length(uvx-0.35*pos),1.6),.0)*5.0;
+
+ vec3 c = vec3(.0);
+
+ c.r+=f2+f4+f5+f6; c.g+=f22+f42+f52+f62; c.b+=f23+f43+f53+f63;
+ c = c*1.3 - vec3(length(uvd)*.05);
+ c+=vec3(f0);
+
+ return c;
+}
+
+vec3 cc(vec3 color, float factor,float factor2) // color modifier
+{
+ float w = color.x+color.y+color.z;
+ return mix(color,vec3(w)*factor,w*factor2);
+}
+
+void main(void)
+{
+ vec2 uv = v_texCoord - 0.5;
+ uv.x *= resolution.x/resolution.y; //fix aspect ratio
+// vec3 mouse = vec3(iMouse.xy/iResolution.xy - 0.5,iMouse.z-.5);
+// mouse.x *= iResolution.x/iResolution.y; //fix aspect ratio
+// if (iMouse.z<.5)
+// {
+//
+// }
+ vec3 mouse;
+ mouse.z = 0.5;
+ mouse.x=sin(CC_Time[1])*.5;
+ mouse.y=sin(CC_Time[1]*.913)*.5;
+
+ vec3 color = vec3(1.4,1.2,1.0)*lensflare(uv,mouse.xy);
+ color -= noise(v_texCoord * resolution)*.015;
+ color = cc(color,.5,.1);
+ gl_FragColor = vec4(color,1.0);
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_normal.fsh b/tests/cpp-tests/Resources/Shaders/example_normal.fsh
new file mode 100755
index 0000000000..3ecb825051
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_normal.fsh
@@ -0,0 +1,13 @@
+#ifdef GL_ES
+precision mediump float;
+#endif
+
+varying vec4 v_fragmentColor;
+varying vec2 v_texCoord;
+
+uniform sampler2D CC_Texture0;
+
+void main(void)
+{
+ gl_FragColor = texture2D(CC_Texture0, v_texCoord);
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/Shaders/example_outline.fsh b/tests/cpp-tests/Resources/Shaders/example_outline.fsh
new file mode 100755
index 0000000000..d75b78715e
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_outline.fsh
@@ -0,0 +1,38 @@
+/*
+ Created by guanghui on 4/8/14.
+http://www.idevgames.com/forums/thread-3010.html
+*/
+
+varying vec2 v_texCoord;
+varying vec4 v_fragmentColor;
+
+uniform sampler2D CC_Texture0;
+
+uniform vec3 u_outlineColor;
+uniform float u_threshold;
+uniform float u_radius;
+
+void main()
+{
+ float radius = u_radius;
+ vec4 accum = vec4(0.0);
+ vec4 normal = vec4(0.0);
+
+ normal = texture2D(CC_Texture0, vec2(v_texCoord.x, v_texCoord.y));
+
+ accum += texture2D(CC_Texture0, vec2(v_texCoord.x - radius, v_texCoord.y - radius));
+ accum += texture2D(CC_Texture0, vec2(v_texCoord.x + radius, v_texCoord.y - radius));
+ accum += texture2D(CC_Texture0, vec2(v_texCoord.x + radius, v_texCoord.y + radius));
+ accum += texture2D(CC_Texture0, vec2(v_texCoord.x - radius, v_texCoord.y + radius));
+
+ accum *= u_threshold;
+
+ accum.r = u_outlineColor.x;
+ accum.g = u_outlineColor.y;
+ accum.b = u_outlineColor.z;
+
+ normal = (accum * (1.0 - normal.a)) + (normal * normal.a);
+
+ gl_FragColor = v_fragmentColor * normal;
+}
+
diff --git a/tests/cpp-tests/Resources/Shaders/example_outline.vsh b/tests/cpp-tests/Resources/Shaders/example_outline.vsh
new file mode 100755
index 0000000000..9d7e6bc813
--- /dev/null
+++ b/tests/cpp-tests/Resources/Shaders/example_outline.vsh
@@ -0,0 +1,20 @@
+/*
+ Created by guanghui on 4/8/14.
+
+*/
+
+
+attribute vec4 a_position;
+attribute vec4 a_color;
+attribute vec2 a_texCoord;
+
+varying vec2 v_texCoord;
+
+varying vec4 v_fragmentColor;
+
+void main()
+{
+ gl_Position = CC_MVPMatrix * a_position;
+ v_fragmentColor = a_color;
+ v_texCoord = a_texCoord;
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/TileMaps/fixed-ortho-test2.png b/tests/cpp-tests/Resources/TileMaps/fixed-ortho-test2.png
new file mode 100755
index 0000000000..99668bad5e
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/fixed-ortho-test2.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/hexa-test.tmx b/tests/cpp-tests/Resources/TileMaps/hexa-test.tmx
new file mode 100755
index 0000000000..f132d61a68
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/hexa-test.tmx
@@ -0,0 +1,12 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/hexa-tiles.png b/tests/cpp-tests/Resources/TileMaps/hexa-tiles.png
new file mode 100755
index 0000000000..67b1f4a471
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/hexa-tiles.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test-bug787.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test-bug787.tmx
new file mode 100755
index 0000000000..d46c5850cc
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test-bug787.tmx
@@ -0,0 +1,17 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test-movelayer.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test-movelayer.tmx
new file mode 100755
index 0000000000..65487d5f71
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test-movelayer.tmx
@@ -0,0 +1,27 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test-objectgroup.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test-objectgroup.tmx
new file mode 100755
index 0000000000..d135b20fc4
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test-objectgroup.tmx
@@ -0,0 +1,28 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test-vertexz.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test-vertexz.tmx
new file mode 100755
index 0000000000..91b16b70bd
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test-vertexz.tmx
@@ -0,0 +1,23 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test-zorder.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test-zorder.tmx
new file mode 100755
index 0000000000..c6fd75b4e0
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test-zorder.tmx
@@ -0,0 +1,26 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test.png b/tests/cpp-tests/Resources/TileMaps/iso-test.png
new file mode 100755
index 0000000000..00e694810e
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/iso-test.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test.tmx
new file mode 100755
index 0000000000..1e878f87dd
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test.tmx
@@ -0,0 +1,16 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test1.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test1.tmx
new file mode 100755
index 0000000000..9f3c9c0511
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test1.tmx
@@ -0,0 +1,21 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test2-uncompressed.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test2-uncompressed.tmx
new file mode 100755
index 0000000000..9244cd3ef2
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test2-uncompressed.tmx
@@ -0,0 +1,17 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test2.png b/tests/cpp-tests/Resources/TileMaps/iso-test2.png
new file mode 100755
index 0000000000..8668e0fe20
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/iso-test2.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/iso-test2.tmx b/tests/cpp-tests/Resources/TileMaps/iso-test2.tmx
new file mode 100755
index 0000000000..a015f57ccc
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/iso-test2.tmx
@@ -0,0 +1,17 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/iso.png b/tests/cpp-tests/Resources/TileMaps/iso.png
new file mode 100755
index 0000000000..7658946a45
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/iso.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/levelmap.tga b/tests/cpp-tests/Resources/TileMaps/levelmap.tga
new file mode 100755
index 0000000000..57b463346e
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/levelmap.tga differ
diff --git a/tests/cpp-tests/Resources/TileMaps/ortho-objects.tmx b/tests/cpp-tests/Resources/TileMaps/ortho-objects.tmx
new file mode 100755
index 0000000000..0924b7e3c8
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/ortho-objects.tmx
@@ -0,0 +1,28 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/ortho-rotation-test.tmx b/tests/cpp-tests/Resources/TileMaps/ortho-rotation-test.tmx
new file mode 100755
index 0000000000..d2b3bf19a4
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/ortho-rotation-test.tmx
@@ -0,0 +1,23 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/ortho-test1.png b/tests/cpp-tests/Resources/TileMaps/ortho-test1.png
new file mode 100755
index 0000000000..cc8dd1d0d8
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/ortho-test1.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/ortho-test1_bw.png b/tests/cpp-tests/Resources/TileMaps/ortho-test1_bw.png
new file mode 100755
index 0000000000..a648cdbe1a
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/ortho-test1_bw.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/ortho-test2.png b/tests/cpp-tests/Resources/TileMaps/ortho-test2.png
new file mode 100755
index 0000000000..2fb43c6e1c
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/ortho-test2.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/ortho-tile-property.tmx b/tests/cpp-tests/Resources/TileMaps/ortho-tile-property.tmx
new file mode 100755
index 0000000000..4ab1f6299d
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/ortho-tile-property.tmx
@@ -0,0 +1,46 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test-movelayer.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test-movelayer.tmx
new file mode 100755
index 0000000000..6f20e8672c
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test-movelayer.tmx
@@ -0,0 +1,27 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test-vertexz.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test-vertexz.tmx
new file mode 100755
index 0000000000..e454a2dbd1
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test-vertexz.tmx
@@ -0,0 +1,21 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test-zorder.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test-zorder.tmx
new file mode 100755
index 0000000000..f0c1e6748e
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test-zorder.tmx
@@ -0,0 +1,26 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test1.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test1.tmx
new file mode 100755
index 0000000000..386e4ba5bb
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test1.tmx
@@ -0,0 +1,9 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test1.tsx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test1.tsx
new file mode 100755
index 0000000000..ce744aa4f2
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test1.tsx
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test2.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test2.tmx
new file mode 100755
index 0000000000..74fca9352b
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test2.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test3.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test3.tmx
new file mode 100755
index 0000000000..1467878735
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test3.tmx
@@ -0,0 +1,13 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test4.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test4.tmx
new file mode 100755
index 0000000000..fd887fd1dd
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test4.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test5.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test5.tmx
new file mode 100755
index 0000000000..336993f4fb
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test5.tmx
@@ -0,0 +1,24 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/orthogonal-test6.tmx b/tests/cpp-tests/Resources/TileMaps/orthogonal-test6.tmx
new file mode 100755
index 0000000000..197e592dcd
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/orthogonal-test6.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/test-object-layer.tmx b/tests/cpp-tests/Resources/TileMaps/test-object-layer.tmx
new file mode 100755
index 0000000000..fd5333b726
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/test-object-layer.tmx
@@ -0,0 +1,18 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/tiles.png b/tests/cpp-tests/Resources/TileMaps/tiles.png
new file mode 100755
index 0000000000..2929ba4302
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/tiles.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/tmw_desert_spacing.png b/tests/cpp-tests/Resources/TileMaps/tmw_desert_spacing.png
new file mode 100755
index 0000000000..8e23c6d345
Binary files /dev/null and b/tests/cpp-tests/Resources/TileMaps/tmw_desert_spacing.png differ
diff --git a/tests/cpp-tests/Resources/TileMaps/xml-test.tmx b/tests/cpp-tests/Resources/TileMaps/xml-test.tmx
new file mode 100755
index 0000000000..b451f0245f
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/xml-test.tmx
@@ -0,0 +1,152 @@
+
+
diff --git a/tests/cpp-tests/Resources/TileMaps/xml-test.tsx b/tests/cpp-tests/Resources/TileMaps/xml-test.tsx
new file mode 100755
index 0000000000..ccfd1fde48
--- /dev/null
+++ b/tests/cpp-tests/Resources/TileMaps/xml-test.tsx
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/animations-2.plist b/tests/cpp-tests/Resources/animations/animations-2.plist
new file mode 100755
index 0000000000..8db4cc7596
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/animations-2.plist
@@ -0,0 +1,133 @@
+
+
+
+
+ animations
+
+ dance_1
+
+ delayPerUnit
+ 0.2
+ restoreOriginalFrame
+
+ loops
+ 2
+ frames
+
+
+ spriteframe
+ grossini_dance_01.png
+ delayUnits
+ 1
+ notification
+
+ firstframe
+
+
+
+
+ spriteframe
+ grossini_dance_02.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_03.png
+ delayUnits
+ 0.5
+
+
+ spriteframe
+ grossini_dance_04.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_05.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_06.png
+ delayUnits
+ 1
+ notification
+
+ key1
+ 1234
+ key2
+
+
+
+
+ spriteframe
+ grossini_dance_07.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_08.png
+ delayUnits
+ 2
+
+
+ spriteframe
+ grossini_dance_09.png
+ delayUnits
+ 0.5
+
+
+ spriteframe
+ grossini_dance_10.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_11.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_12.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_13.png
+ delayUnits
+ 1
+
+
+ spriteframe
+ grossini_dance_14.png
+ delayUnits
+ 1
+ notification
+
+ lastframe
+
+
+
+
+
+
+ properties
+
+ spritesheets
+
+ grossini.plist
+ grossini_blue.plist
+ grossini_family.plist
+
+ format
+ 2
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/animations.plist b/tests/cpp-tests/Resources/animations/animations.plist
new file mode 100755
index 0000000000..87581fda1b
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/animations.plist
@@ -0,0 +1,65 @@
+
+
+
+
+ animations
+
+ dance_1
+
+ delay
+ 0.2
+ frames
+
+ grossini_dance_01.png
+ grossini_dance_02.png
+ grossini_dance_03.png
+ grossini_dance_04.png
+ grossini_dance_05.png
+ grossini_dance_06.png
+ grossini_dance_07.png
+ grossini_dance_08.png
+ grossini_dance_09.png
+ grossini_dance_10.png
+ grossini_dance_11.png
+ grossini_dance_12.png
+ grossini_dance_13.png
+ grossini_dance_14.png
+
+
+ dance_2
+
+ delay
+ 0.2
+ frames
+
+ grossini_dance_gray_01.png
+ grossini_dance_gray_02.png
+ grossini_dance_gray_03.png
+ grossini_dance_gray_04.png
+ grossini_dance_gray_05.png
+ grossini_dance_gray_06.png
+ grossini_dance_gray_07.png
+ grossini_dance_gray_08.png
+ grossini_dance_gray_09.png
+ grossini_dance_gray_10.png
+ grossini_dance_gray_11.png
+ grossini_dance_gray_12.png
+ grossini_dance_gray_13.png
+ grossini_dance_gray_14.png
+
+
+ dance_3
+
+ delay
+ 0.2
+ frames
+
+ grossini_blue_01.png
+ grossini_blue_02.png
+ grossini_blue_03.png
+ grossini_blue_04.png
+
+
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/dragon_animation.png b/tests/cpp-tests/Resources/animations/dragon_animation.png
new file mode 100755
index 0000000000..4d2a65cdc9
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/dragon_animation.png differ
diff --git a/tests/cpp-tests/Resources/animations/ghosts.plist b/tests/cpp-tests/Resources/animations/ghosts.plist
new file mode 100755
index 0000000000..1f4a458aeb
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/ghosts.plist
@@ -0,0 +1,92 @@
+
+
+
+
+ texture
+
+ width
+ 256
+ height
+ 256
+
+ frames
+
+ child1.gif
+
+ x
+ 1
+ y
+ 0
+ width
+ 54
+ height
+ 130
+ offsetX
+ 7.5
+ offsetY
+ -0.5
+ originalWidth
+ 91
+ originalHeight
+ 139
+
+ father.gif
+
+ x
+ 56
+ y
+ 1
+ width
+ 45
+ height
+ 117
+ offsetX
+ 5
+ offsetY
+ -7
+ originalWidth
+ 91
+ originalHeight
+ 139
+
+ sister1.gif
+
+ x
+ 102
+ y
+ 1
+ width
+ 47
+ height
+ 124
+ offsetX
+ 5
+ offsetY
+ -5.5
+ originalWidth
+ 91
+ originalHeight
+ 139
+
+ sister2.gif
+
+ x
+ 150
+ y
+ 1
+ width
+ 47
+ height
+ 109
+ offsetX
+ 5
+ offsetY
+ -12
+ originalWidth
+ 91
+ originalHeight
+ 139
+
+
+
+
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/animations/ghosts.png b/tests/cpp-tests/Resources/animations/ghosts.png
new file mode 100755
index 0000000000..ad067dd1e0
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/ghosts.png differ
diff --git a/tests/cpp-tests/Resources/animations/grossini-aliases.plist b/tests/cpp-tests/Resources/animations/grossini-aliases.plist
new file mode 100755
index 0000000000..b018765f1c
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/grossini-aliases.plist
@@ -0,0 +1,254 @@
+
+
+
+
+ frames
+
+ grossini_dance_01.png
+
+ spriteSize
+ {51, 109}
+ textureRect
+ {{2, 2}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_01
+
+
+ grossini_dance_02.png
+
+ spriteSize
+ {63, 109}
+ textureRect
+ {{55, 2}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_02
+
+
+ grossini_dance_03.png
+
+ spriteSize
+ {63, 109}
+ textureRect
+ {{120, 2}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_03
+
+
+ grossini_dance_04.png
+
+ spriteSize
+ {74, 109}
+ textureRect
+ {{185, 2}, {74, 109}}
+ spriteOffset
+ {-0.5, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_04
+
+
+ grossini_dance_05.png
+
+ spriteSize
+ {74, 109}
+ textureRect
+ {{261, 2}, {74, 109}}
+ spriteOffset
+ {-0.5, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_05
+
+
+ grossini_dance_06.png
+
+ spriteSize
+ {63, 109}
+ textureRect
+ {{337, 2}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_06
+
+
+ grossini_dance_07.png
+
+ spriteSize
+ {63, 109}
+ textureRect
+ {{402, 2}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_07
+
+
+ grossini_dance_08.png
+
+ spriteSize
+ {51, 109}
+ textureRect
+ {{2, 113}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_08
+
+
+ grossini_dance_09.png
+
+ spriteSize
+ {51, 109}
+ textureRect
+ {{55, 113}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_09
+
+
+ grossini_dance_10.png
+
+ spriteSize
+ {62, 109}
+ textureRect
+ {{108, 113}, {62, 109}}
+ spriteOffset
+ {5.5, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_10
+
+
+ grossini_dance_11.png
+
+ spriteSize
+ {62, 109}
+ textureRect
+ {{172, 113}, {62, 109}}
+ spriteOffset
+ {5.5, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_11
+
+
+ grossini_dance_12.png
+
+ spriteSize
+ {51, 106}
+ textureRect
+ {{236, 113}, {51, 106}}
+ spriteOffset
+ {0, -2.5}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_12
+
+
+ grossini_dance_13.png
+
+ spriteSize
+ {51, 109}
+ textureRect
+ {{289, 113}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_13
+
+
+ grossini_dance_14.png
+
+ spriteSize
+ {51, 106}
+ textureRect
+ {{342, 113}, {51, 106}}
+ spriteOffset
+ {0, -2.5}
+ textureRotated
+
+ spriteSourceSize
+ {85, 121}
+ aliases
+
+ dance_14
+
+
+
+ metadata
+
+ format
+ 3
+ size
+ {512, 256}
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/grossini-aliases.png b/tests/cpp-tests/Resources/animations/grossini-aliases.png
new file mode 100755
index 0000000000..5672efb119
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini-aliases.png differ
diff --git a/tests/cpp-tests/Resources/animations/grossini.plist b/tests/cpp-tests/Resources/animations/grossini.plist
new file mode 100755
index 0000000000..2c894b6f3a
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/grossini.plist
@@ -0,0 +1,282 @@
+
+
+
+
+ texture
+
+ width
+ 512
+ height
+ 256
+
+ frames
+
+ grossini_dance_01.png
+
+ x
+ 347
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_02.png
+
+ x
+ 215
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_03.png
+
+ x
+ 151
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_04.png
+
+ x
+ 1
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_05.png
+
+ x
+ 76
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_06.png
+
+ x
+ 399
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_07.png
+
+ x
+ 105
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_08.png
+
+ x
+ 1
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_09.png
+
+ x
+ 295
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_10.png
+
+ x
+ 232
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_11.png
+
+ x
+ 169
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_12.png
+
+ x
+ 279
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_13.png
+
+ x
+ 53
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_14.png
+
+ x
+ 331
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/grossini.plist.xml b/tests/cpp-tests/Resources/animations/grossini.plist.xml
new file mode 100755
index 0000000000..2c894b6f3a
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/grossini.plist.xml
@@ -0,0 +1,282 @@
+
+
+
+
+ texture
+
+ width
+ 512
+ height
+ 256
+
+ frames
+
+ grossini_dance_01.png
+
+ x
+ 347
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_02.png
+
+ x
+ 215
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_03.png
+
+ x
+ 151
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_04.png
+
+ x
+ 1
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_05.png
+
+ x
+ 76
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_06.png
+
+ x
+ 399
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_07.png
+
+ x
+ 105
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_08.png
+
+ x
+ 1
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_09.png
+
+ x
+ 295
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_10.png
+
+ x
+ 232
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_11.png
+
+ x
+ 169
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_12.png
+
+ x
+ 279
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_13.png
+
+ x
+ 53
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_14.png
+
+ x
+ 331
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/grossini.png b/tests/cpp-tests/Resources/animations/grossini.png
new file mode 100755
index 0000000000..609e7804f6
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini.png differ
diff --git a/tests/cpp-tests/Resources/animations/grossini.pvr.gz b/tests/cpp-tests/Resources/animations/grossini.pvr.gz
new file mode 100755
index 0000000000..e5c674b6a5
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini.pvr.gz differ
diff --git a/tests/cpp-tests/Resources/animations/grossini.zss b/tests/cpp-tests/Resources/animations/grossini.zss
new file mode 100755
index 0000000000..aea66abf83
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini.zss differ
diff --git a/tests/cpp-tests/Resources/animations/grossini.ztp b/tests/cpp-tests/Resources/animations/grossini.ztp
new file mode 100755
index 0000000000..9d7f54cfa0
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini.ztp differ
diff --git a/tests/cpp-tests/Resources/animations/grossini_blue.plist b/tests/cpp-tests/Resources/animations/grossini_blue.plist
new file mode 100755
index 0000000000..7e39687b28
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/grossini_blue.plist
@@ -0,0 +1,92 @@
+
+
+
+
+ texture
+
+ width
+ 256
+ height
+ 128
+
+ frames
+
+ grossini_blue_01.png
+
+ x
+ 76
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ 121
+
+ grossini_blue_02.png
+
+ x
+ 128
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ 121
+
+ grossini_blue_03.png
+
+ x
+ 192
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ 121
+
+ grossini_blue_04.png
+
+ x
+ 1
+ y
+ 1
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ 121
+
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/grossini_blue.png b/tests/cpp-tests/Resources/animations/grossini_blue.png
new file mode 100755
index 0000000000..a29fc6441d
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini_blue.png differ
diff --git a/tests/cpp-tests/Resources/animations/grossini_family.plist b/tests/cpp-tests/Resources/animations/grossini_family.plist
new file mode 100755
index 0000000000..beb7060495
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/grossini_family.plist
@@ -0,0 +1,73 @@
+
+
+
+
+ texture
+
+ width
+ 256
+ height
+ 128
+
+ frames
+
+ grossini.png
+
+ x
+ 103
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ 121
+
+ grossinis_sister1.png
+
+ x
+ 55
+ y
+ 1
+ width
+ 47
+ height
+ 112
+ offsetX
+ -0.5
+ offsetY
+ -11.5
+ originalWidth
+ 52
+ originalHeight
+ 139
+
+ grossinis_sister2.png
+
+ x
+ 1
+ y
+ 1
+ width
+ 53
+ height
+ 126
+ offsetX
+ -0.5
+ offsetY
+ -2
+ originalWidth
+ 56
+ originalHeight
+ 138
+
+
+
+
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/animations/grossini_family.png b/tests/cpp-tests/Resources/animations/grossini_family.png
new file mode 100755
index 0000000000..acc73dc2c8
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini_family.png differ
diff --git a/tests/cpp-tests/Resources/animations/grossini_gray.plist b/tests/cpp-tests/Resources/animations/grossini_gray.plist
new file mode 100755
index 0000000000..cf9bb58e20
--- /dev/null
+++ b/tests/cpp-tests/Resources/animations/grossini_gray.plist
@@ -0,0 +1,282 @@
+
+
+
+
+ texture
+
+ width
+ 512
+ height
+ 256
+
+ frames
+
+ grossini_dance_gray_01.png
+
+ x
+ 347
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_02.png
+
+ x
+ 215
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_03.png
+
+ x
+ 151
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_04.png
+
+ x
+ 1
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_05.png
+
+ x
+ 76
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_06.png
+
+ x
+ 399
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_07.png
+
+ x
+ 105
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_08.png
+
+ x
+ 1
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_09.png
+
+ x
+ 295
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_10.png
+
+ x
+ 232
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_11.png
+
+ x
+ 169
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_12.png
+
+ x
+ 279
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_13.png
+
+ x
+ 53
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_gray_14.png
+
+ x
+ 331
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+
+
+
diff --git a/tests/cpp-tests/Resources/animations/grossini_gray.png b/tests/cpp-tests/Resources/animations/grossini_gray.png
new file mode 100755
index 0000000000..1a9ff597ed
Binary files /dev/null and b/tests/cpp-tests/Resources/animations/grossini_gray.png differ
diff --git a/tests/cpp-tests/Resources/background.caf b/tests/cpp-tests/Resources/background.caf
new file mode 100755
index 0000000000..5d7d0b8ce9
Binary files /dev/null and b/tests/cpp-tests/Resources/background.caf differ
diff --git a/tests/cpp-tests/Resources/background.mp3 b/tests/cpp-tests/Resources/background.mp3
new file mode 100755
index 0000000000..aec1c0a8c8
Binary files /dev/null and b/tests/cpp-tests/Resources/background.mp3 differ
diff --git a/tests/cpp-tests/Resources/background.ogg b/tests/cpp-tests/Resources/background.ogg
new file mode 100755
index 0000000000..e5af704a05
Binary files /dev/null and b/tests/cpp-tests/Resources/background.ogg differ
diff --git a/tests/cpp-tests/Resources/background.wav b/tests/cpp-tests/Resources/background.wav
new file mode 100755
index 0000000000..dfe4693f9f
Binary files /dev/null and b/tests/cpp-tests/Resources/background.wav differ
diff --git a/tests/cpp-tests/Resources/ccb/HelloCocosBuilder.ccb b/tests/cpp-tests/Resources/ccb/HelloCocosBuilder.ccb
new file mode 100755
index 0000000000..0dd250bdce
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/HelloCocosBuilder.ccb
@@ -0,0 +1,4193 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ HelloCocosBuilder.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ animatedProperties
+
+ 0
+
+ 1
+
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+ mBurstSprite
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 2.5
+ 2.5
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/burst.png
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCParticleSystemQuad
+ children
+
+ customClass
+
+ displayName
+ CCParticleSystemQuad
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ emitterMode
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ posVar
+ type
+ Point
+ value
+
+ 275
+ 0.0
+
+
+
+ name
+ emissionRate
+ type
+ Float
+ value
+ 20
+
+
+ name
+ duration
+ type
+ Float
+ value
+ -1
+
+
+ name
+ totalParticles
+ type
+ Integer
+ value
+ 1000
+
+
+ name
+ life
+ type
+ FloatVar
+ value
+
+ 4.5
+ 0.0
+
+
+
+ name
+ startSize
+ type
+ FloatVar
+ value
+
+ 32
+ 32
+
+
+
+ name
+ endSize
+ type
+ FloatVar
+ value
+
+ 4
+ 0.0
+
+
+
+ name
+ startSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 360
+
+
+
+ name
+ endSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 360
+
+
+
+ name
+ angle
+ type
+ FloatVar
+ value
+
+ 90
+ 5
+
+
+
+ name
+ startColor
+ type
+ Color4FVar
+ value
+
+
+ 0.10550821572542191
+ 0.12098496407270432
+ 0.15217390656471252
+ 0.10000000149011612
+
+
+ 0.0
+ 0.0
+ 0.0
+ 1
+
+
+
+
+ name
+ endColor
+ type
+ Color4FVar
+ value
+
+
+ 0.24492979049682617
+ 0.28085795044898987
+ 0.35326087474822998
+ 1
+
+
+ 0.16847826540470123
+ 0.16847826540470123
+ 0.16847826540470123
+ 0.0
+
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 1
+ 1
+
+
+
+ name
+ gravity
+ type
+ Point
+ value
+
+ -3
+ -10
+
+
+
+ name
+ speed
+ type
+ FloatVar
+ value
+
+ 80
+ 30
+
+
+
+ name
+ tangentialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ radialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ texture
+ type
+ Texture
+ value
+ ccb/particle-snow.png
+
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 1.3666666746139526
+ type
+ 4
+ value
+
+ 0.0
+ 0.0
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 2.4000000953674316
+ type
+ 4
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 13.75
+ 79.375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 0.5
+ 0.5
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.5
+ 0.5
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ time
+ 0.40000000596046448
+ type
+ 3
+ value
+
+ 82.5
+ 137.5
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1.9666666984558105
+ type
+ 3
+ value
+
+ 60.416667938232422
+ 83.75
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ rotation
+ time
+ 0.40000000596046448
+ type
+ 2
+ value
+ 38.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 60.416667938232422
+ 83.75
+
+ name
+ position
+ type
+ Position
+ value
+
+ 60.416667938232422
+ 83.75
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo.png
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ time
+ 1.2666666507720947
+ type
+ 3
+ value
+
+ 130.625
+ 69.0625
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 60.520832061767578
+ 69.0625
+
+
+
+ name
+ position
+ type
+ 3
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 60.520832061767578
+ 69.0625
+
+ name
+ position
+ type
+ Position
+ value
+
+ 60.520832061767578
+ 69.0625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 124
+ 18
+ 86
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ Graphical editor for cocos2d
+
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.30000001192092896
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 0.96666663885116577
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 0.60000002384185791
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.3333333730697632
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.0999999046325684
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.9000000953674316
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.125
+ 57.1875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onMenuTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Menus & Items
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 254
+ 255
+ 254
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.46666666865348816
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.1333333253860474
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 4.4666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.1999998092651367
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.9666666984558105
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 6.7666668891906738
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.875
+ 57.1875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onSpriteTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Sprites & 9 Slice
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.63333332538604736
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.2666666507720947
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.7666668891906738
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 6.5
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.2666668891906738
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.0333337783813477
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.125
+ 41.5625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onButtonTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Buttons & Labels
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.80000001192092896
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.4666666984558105
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.5
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 3.2333333492279053
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 4
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 4.8000001907348633
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.1666665077209473
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.9000000953674316
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 8.6666669845581055
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 9.4666662216186523
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.875
+ 41.5625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onAnimationsTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Animations
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.96666663885116577
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.6333333253860474
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.1000000238418579
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.8333333730697632
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.5999999046325684
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3.4000000953674316
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.125
+ 25.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onParticleSystemTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Particle Systems
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 1.1333333253860474
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.7999999523162842
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.9333333969116211
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 6.6666665077209473
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.4333333969116211
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.2333335876464844
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.875
+ 25.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onScrollViewTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Scroll Views
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ opacity
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.2333333492279053
+ type
+ 5
+ value
+ 0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.7000000476837158
+ type
+ 5
+ value
+ 255
+
+
+ name
+ opacity
+ type
+ 5
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ time
+ 1.2333333492279053
+ type
+ 3
+ value
+
+ -35
+ -69
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1.8666666746139526
+ type
+ 3
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ time
+ 1.2333333492279053
+ type
+ 2
+ value
+ 21.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1.8666666746139526
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 0.0
+ 0.0
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 3
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 1
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/jungle-right.png
+
+
+
+ baseValue
+ 255
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+
+
+ animatedProperties
+
+ 0
+
+ opacity
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.2333333492279053
+ type
+ 5
+ value
+ 0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.7000000476837158
+ type
+ 5
+ value
+ 255
+
+
+ name
+ opacity
+ type
+ 5
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ name
+ position
+ time
+ 1.3999999761581421
+ type
+ 3
+ value
+
+ -85
+ -118
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ name
+ rotation
+ time
+ 1.3999999761581421
+ type
+ 2
+ value
+ -34
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 0.0
+ 0.0
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/jungle-left.png
+
+
+
+ baseValue
+ 255
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.96666663885116577
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.6333333253860474
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.1000000238418579
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.8333333730697632
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.5999999046325684
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3.4000000953674316
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.100000381469727
+ 10.3125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onTimelineCallbackSoundClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Timeline Callback&sound
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ customClass
+ HelloCocosBuilderLayer
+ customProperties
+
+
+ name
+ mCustomPropertyInt
+ optimized
+
+ type
+ 0
+ value
+ 123
+
+
+ name
+ mCustomPropertyFloat
+ optimized
+
+ type
+ 1
+ value
+ 123.440002
+
+
+ name
+ mCustomPropertyBoolean
+ optimized
+
+ type
+ 2
+ value
+ 1
+
+
+ name
+ mCustomPropertyString
+ optimized
+
+ type
+ 3
+ value
+ Hello Custom Property.
+
+
+ displayName
+ HelloCocosBuilder
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+
+ height
+ 131
+ text
+ Welcome to CocosBuilder!
+
+Check out the Example Xcode project to understand how to connect objects with your code.
+ width
+ 191
+ xPos
+ 28
+ yPos
+ 26
+
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 3
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 3
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Wiggly buttons
+ offset
+ 0.0
+ position
+ 10
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 1
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/HelloCocosBuilder.ccbi b/tests/cpp-tests/Resources/ccb/HelloCocosBuilder.ccbi
new file mode 100755
index 0000000000..85f54ec87f
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/HelloCocosBuilder.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/animated-grossini.plist b/tests/cpp-tests/Resources/ccb/animated-grossini.plist
new file mode 100755
index 0000000000..2319e72b12
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/animated-grossini.plist
@@ -0,0 +1,139 @@
+
+
+
+
+ frames
+
+ grossini-arm-l.png
+
+ frame
+ {{2,64},{28,26}}
+ offset
+ {2,-2}
+ rotated
+
+ sourceColorRect
+ {{4,5},{28,26}}
+ sourceSize
+ {32,32}
+
+ grossini-arm-r.png
+
+ frame
+ {{32,78},{28,26}}
+ offset
+ {-2,-2}
+ rotated
+
+ sourceColorRect
+ {{0,5},{28,26}}
+ sourceSize
+ {32,32}
+
+ grossini-body.png
+
+ frame
+ {{2,2},{23,43}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{2,1},{23,43}}
+ sourceSize
+ {27,45}
+
+ grossini-eyes-0.png
+
+ frame
+ {{2,92},{23,4}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{1,1},{23,4}}
+ sourceSize
+ {25,6}
+
+ grossini-eyes-1.png
+
+ frame
+ {{2,98},{23,4}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{1,1},{23,4}}
+ sourceSize
+ {25,6}
+
+ grossini-eyes-2.png
+
+ frame
+ {{60,40},{23,2}}
+ offset
+ {0,-1}
+ rotated
+
+ sourceColorRect
+ {{1,3},{23,2}}
+ sourceSize
+ {25,6}
+
+ grossini-head.png
+
+ frame
+ {{2,27},{35,40}}
+ offset
+ {0,2}
+ rotated
+
+ sourceColorRect
+ {{0,0},{35,40}}
+ sourceSize
+ {35,44}
+
+ grossini-leg-l.png
+
+ frame
+ {{44,40},{14,36}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{14,36}}
+ sourceSize
+ {14,36}
+
+ grossini-leg-r.png
+
+ frame
+ {{47,2},{14,36}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{14,36}}
+ sourceSize
+ {14,36}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ animated-grossini.png
+ size
+ {64,128}
+ smartupdate
+ $TexturePacker:SmartUpdate:f64bf1dbb50597d8a1599f1b397b6fdd$
+ textureFileName
+ animated-grossini.png
+
+
+
diff --git a/tests/cpp-tests/Resources/ccb/animated-grossini.png b/tests/cpp-tests/Resources/ccb/animated-grossini.png
new file mode 100755
index 0000000000..89736acdab
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/animated-grossini.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-a-0.png b/tests/cpp-tests/Resources/ccb/btn-a-0.png
new file mode 100755
index 0000000000..66a5d3df71
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-a-0.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-a-1.png b/tests/cpp-tests/Resources/ccb/btn-a-1.png
new file mode 100755
index 0000000000..33f8a0c3f0
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-a-1.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-a-2.png b/tests/cpp-tests/Resources/ccb/btn-a-2.png
new file mode 100755
index 0000000000..c8532b3e23
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-a-2.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-b-0.png b/tests/cpp-tests/Resources/ccb/btn-b-0.png
new file mode 100755
index 0000000000..abd7d9a00b
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-b-0.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-b-1.png b/tests/cpp-tests/Resources/ccb/btn-b-1.png
new file mode 100755
index 0000000000..b55f91e77c
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-b-1.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-b-2.png b/tests/cpp-tests/Resources/ccb/btn-b-2.png
new file mode 100755
index 0000000000..d47c7b6283
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-b-2.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-back-0.png b/tests/cpp-tests/Resources/ccb/btn-back-0.png
new file mode 100755
index 0000000000..9caae52746
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-back-0.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-back-1.png b/tests/cpp-tests/Resources/ccb/btn-back-1.png
new file mode 100755
index 0000000000..6c7cf5f97a
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-back-1.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-test-0.png b/tests/cpp-tests/Resources/ccb/btn-test-0.png
new file mode 100755
index 0000000000..2777fd1d5e
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-test-0.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-test-1.png b/tests/cpp-tests/Resources/ccb/btn-test-1.png
new file mode 100755
index 0000000000..b3be2a8616
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-test-1.png differ
diff --git a/tests/cpp-tests/Resources/ccb/btn-test-2.png b/tests/cpp-tests/Resources/ccb/btn-test-2.png
new file mode 100755
index 0000000000..eab72947de
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/btn-test-2.png differ
diff --git a/tests/cpp-tests/Resources/ccb/burst.png b/tests/cpp-tests/Resources/ccb/burst.png
new file mode 100755
index 0000000000..8681474538
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/burst.png differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestAnimations.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestAnimations.ccb
new file mode 100755
index 0000000000..3b6bbcca3b
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestAnimations.ccb
@@ -0,0 +1,3576 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 1
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ Background animation
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestAnimationsSub.ccb
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+ selected
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Idle Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -150
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonIdleClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Idle
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Wave Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonWaveClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Wave
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Jump Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonJumpClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Jump
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Funky Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 150
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonFunkyClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Funky
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ customClass
+
+ displayName
+ Buttons
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 15
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 9
+
+ name
+ position
+ time
+ 0.0
+ type
+ 3
+ value
+
+ 24.375
+ 120
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 50
+ 50
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.0
+ type
+ 2
+ value
+ -46.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ time
+ 0.53333336114883423
+ type
+ 2
+ value
+ 40.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ 77.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Leg right
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -6
+ -18
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.89999997615814209
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-leg-r.png
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ time
+ 0.53333336114883423
+ type
+ 2
+ value
+ -47.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ -86.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Leg left
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 6
+ -18
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.89999997615814209
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-leg-l.png
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.89999997615814209
+ type
+ 2
+ value
+ 86
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.4333332777023315
+ type
+ 2
+ value
+ -30.446964263916016
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 7.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.8666667938232422
+ type
+ 2
+ value
+ -20.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 9.8666667938232422
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 2
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.96666663885116577
+ type
+ 2
+ value
+ 109.5
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.2666666507720947
+ type
+ 2
+ value
+ 72.599998474121094
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.5333333015441895
+ type
+ 2
+ value
+ 93.699996948242188
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.8333333730697632
+ type
+ 2
+ value
+ 64.966659545898438
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.2333333492279053
+ type
+ 2
+ value
+ 90.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ 89.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Arm right
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -9
+ 10
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.80000001192092896
+ 0.80000001192092896
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-arm-r.png
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.89999997615814209
+ type
+ 2
+ value
+ -95.25
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.4333332777023315
+ type
+ 2
+ value
+ 28.431812286376953
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 7.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.8666667938232422
+ type
+ 2
+ value
+ 20.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 9.8666667938232422
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 2
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.5
+ type
+ 2
+ value
+ 18.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.2999999523162842
+ type
+ 2
+ value
+ 18.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ -96.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Arm left
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 9
+ 10
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.20000000298023224
+ 0.80000001192092896
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-arm-l.png
+
+
+
+
+
+ animatedProperties
+
+ 4
+
+ opacity
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1
+ type
+ 5
+ value
+ 255
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 2.2333333492279053
+ type
+ 5
+ value
+ 0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 4.0333333015441895
+ type
+ 5
+ value
+ 255
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 4.5
+ type
+ 5
+ value
+ 127
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 4.8666667938232422
+ type
+ 5
+ value
+ 255
+
+
+ name
+ opacity
+ type
+ 5
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.7333333492279053
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ easing
+
+ type
+ 10
+
+ name
+ scale
+ time
+ 2.4000000953674316
+ type
+ 4
+ value
+
+ 2
+ 0.5
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 3.4333333969116211
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Body
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-body.png
+
+
+
+ baseValue
+ 255
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+
+
+ animatedProperties
+
+ 4
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.4000000953674316
+ type
+ 2
+ value
+ 720
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 5
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+
+ animatedProperties
+
+ 1
+
+ displayFrame
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 3.6333334445953369
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 3.8333332538604736
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 4.0333333015441895
+ type
+ 7
+ value
+
+ grossini-eyes-2.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 4.2333331108093262
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 4.4333333969116211
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.0999999046325684
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.3000001907348633
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.5
+ type
+ 7
+ value
+
+ grossini-eyes-2.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.6999998092651367
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.9000000953674316
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ name
+ displayFrame
+ type
+ 7
+
+ position
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 0.60000002384185791
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1
+ type
+ 3
+ value
+
+ 16
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1.3333333730697632
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2.2666666507720947
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2.5
+ type
+ 3
+ value
+
+ 19
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2.9666666984558105
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ name
+ position
+ type
+ 3
+
+
+ 4
+
+ color
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 0.86666667461395264
+ type
+ 6
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 1.3333333730697632
+ type
+ 6
+ value
+
+ 143
+ 243
+ 40
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 1.8333333730697632
+ type
+ 6
+ value
+
+ 223
+ 80
+ 22
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 2.4666666984558105
+ type
+ 6
+ value
+
+ 33
+ 79
+ 251
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 3.0333333015441895
+ type
+ 6
+ value
+
+ 223
+ 88
+ 233
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 3.3666665554046631
+ type
+ 6
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ color
+ type
+ 6
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Eyes
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 17.5
+ 23
+
+ name
+ position
+ type
+ Position
+ value
+
+ 17.5
+ 23
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ baseValue
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-eyes-0.png
+
+
+
+ baseValue
+
+ 255
+ 255
+ 255
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ customClass
+
+ displayName
+ Head
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 34
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-head.png
+
+
+
+
+
+ customClass
+
+ displayName
+ Grossini
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 50
+ 50
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ seqExpanded
+
+
+
+ customClass
+ TestAnimationsLayer
+ displayName
+ TestAnimations
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 2
+ name
+ Intro
+ offset
+ 0.0
+ position
+ 1.7000000476837158
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Idle
+ offset
+ 6.2734375
+ position
+ 6.9000000953674316
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 1
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 3
+ name
+ Wave
+ offset
+ 0.0
+ position
+ 3
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 2
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 2
+ name
+ Jump
+ offset
+ 0.0
+ position
+ 2
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 3
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 5
+ name
+ Funky
+ offset
+ 0.0
+ position
+ 5
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 4
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestAnimations.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestAnimations.ccbi
new file mode 100755
index 0000000000..a83aee9976
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestAnimations.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestAnimationsSub.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestAnimationsSub.ccb
new file mode 100755
index 0000000000..099bfee85c
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestAnimationsSub.ccb
@@ -0,0 +1,445 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ animatedProperties
+
+ 0
+
+ color
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 0.0
+ type
+ 6
+ value
+
+ 0
+ 0
+ 0
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 4.8333334922790527
+ type
+ 6
+ value
+
+ 255
+ 254
+ 255
+
+
+
+ name
+ color
+ type
+ 6
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 10
+ type
+ 2
+ value
+ 360
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 10
+ type
+ 2
+ value
+ 360
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 2.5
+ 2.5
+
+ 1
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 360
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/burst.png
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 100
+
+
+ baseValue
+
+ 255
+ 254
+ 255
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 255
+ 254
+ 255
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ selected
+
+ seqExpanded
+
+
+
+ customClass
+
+ displayName
+ CCLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 1024
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 1024
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 2048
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 2048
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Intro
+ offset
+ 0.0
+ position
+ 10
+ resolution
+ 30
+ scale
+ 32
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Loop
+ offset
+ 0.0
+ position
+ 2.7999999523162842
+ resolution
+ 30
+ scale
+ 32
+ sequenceId
+ 1
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestAnimationsSub.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestAnimationsSub.ccbi
new file mode 100755
index 0000000000..ff436c5ab7
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestAnimationsSub.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestButtons.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestButtons.ccb
new file mode 100755
index 0000000000..8f6117baa0
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestButtons.ccb
@@ -0,0 +1,925 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestButtons.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonClicked
+ 1
+ 511
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ CCControlButton
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ Helvetica-Bold
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 12
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 200
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+ mCCControlEventLabel
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ -50
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ No event received yet
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 25
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 78.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ comic andy.ttf
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 50
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 40
+ 20
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Custom TTF
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Center aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ customClass
+ TestButtonsLayer
+ displayName
+ TestButtons
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestButtons.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestButtons.ccbi
new file mode 100755
index 0000000000..ebcc020d81
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestButtons.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestHeader.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestHeader.ccb
new file mode 100755
index 0000000000..eeb48391e8
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestHeader.ccb
@@ -0,0 +1,617 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestHeader.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerColor
+ children
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+ mTestTitleLabelTTF
+ memberVarAssignmentType
+ 2
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 57.5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ MarkerFelt-Wide
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 24
+ 0
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Title will be replaced in code
+
+
+
+
+ baseClass
+ CCMenu
+ children
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -2
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ onBackClicked
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-back-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-back-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+
+
+ customClass
+
+ displayName
+ CCMenu
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 30
+ 19
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+
+ customClass
+
+ displayName
+ CCLayerColor
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 0
+ 0
+ 0
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 127
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ customClass
+ TestHeaderLayer
+ displayName
+ TestHeader
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 40
+ 3
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 40
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 40
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestHeader.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestHeader.ccbi
new file mode 100755
index 0000000000..70cd09f5e5
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestHeader.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestLabels.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestLabels.ccb
new file mode 100755
index 0000000000..71061a2ac7
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestLabels.ccb
@@ -0,0 +1,901 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestLabels.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.666664123535156
+ 73.75
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ Bitmap font
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 55.625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Left aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 36.875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Center aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 18.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Right aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 32.5
+ 76.25
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ comic andy.ttf
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 50
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 40
+ 20
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Custom TTF
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+ selected
+
+
+
+ customClass
+ TestLabelsLayer
+ displayName
+ CCLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestLabels.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestLabels.ccbi
new file mode 100755
index 0000000000..bea711bb31
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestLabels.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestMenus.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestMenus.ccb
new file mode 100755
index 0000000000..5eecf316b1
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestMenus.ccb
@@ -0,0 +1,1137 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestMenus.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCMenu
+ children
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 20.833333969116211
+ 5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ onMenuItemAClicked
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-2.png
+
+
+
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ onMenuItemBClicked
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-b-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-b-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-b-2.png
+
+
+
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 79.166664123535156
+ 5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ pressedC:
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-2.png
+
+
+
+
+
+ customClass
+
+ displayName
+ CCMenu
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 3.125
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 1000
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 20.416666030883789
+ 53.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ A
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 49.583332061767578
+ 53.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ B
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 78.75
+ 53.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ C
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+ mMenuItemStatusLabelBMFont
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 20.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ No button pressed yet
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+ selected
+
+
+
+ customClass
+ TestMenusLayer
+ displayName
+ TestMenus
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestMenus.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestMenus.ccbi
new file mode 100755
index 0000000000..983e44563a
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestMenus.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestParticleSystems.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestParticleSystems.ccb
new file mode 100755
index 0000000000..03aae683ce
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestParticleSystems.ccb
@@ -0,0 +1,1080 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestParticleSystems.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCParticleSystemQuad
+ children
+
+ customClass
+
+ displayName
+ CCParticleSystemQuad
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 29.166666030883789
+ 30.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ emitterMode
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ posVar
+ type
+ Point
+ value
+
+ 40
+ 20
+
+
+
+ name
+ emissionRate
+ type
+ Float
+ value
+ 80
+
+
+ name
+ duration
+ type
+ Float
+ value
+ -1
+
+
+ name
+ totalParticles
+ type
+ Integer
+ value
+ 250
+
+
+ name
+ life
+ type
+ FloatVar
+ value
+
+ 3
+ 0.25
+
+
+
+ name
+ startSize
+ type
+ FloatVar
+ value
+
+ 54
+ 10
+
+
+
+ name
+ endSize
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ startSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ endSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ angle
+ type
+ FloatVar
+ value
+
+ 90
+ 10
+
+
+
+ name
+ startColor
+ type
+ Color4FVar
+ value
+
+
+ 0.75999999046325684
+ 0.25
+ 0.11999999731779099
+ 255
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ endColor
+ type
+ Color4FVar
+ value
+
+
+ 0.0
+ 0.0
+ 0.0
+ 255
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 1
+ 1
+
+
+
+ name
+ gravity
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ speed
+ type
+ FloatVar
+ value
+
+ 60
+ 20
+
+
+
+ name
+ tangentialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ radialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ texture
+ type
+ Texture
+ value
+ ccb/particle-fire.png
+
+
+
+
+ baseClass
+ CCParticleSystemQuad
+ children
+
+ customClass
+
+ displayName
+ CCParticleSystemQuad
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 70.833335876464844
+ 48.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ emitterMode
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ posVar
+ type
+ Point
+ value
+
+ 40
+ 20
+
+
+
+ name
+ emissionRate
+ type
+ Float
+ value
+ 40
+
+
+ name
+ duration
+ type
+ Float
+ value
+ -1
+
+
+ name
+ totalParticles
+ type
+ Integer
+ value
+ 100
+
+
+ name
+ life
+ type
+ FloatVar
+ value
+
+ 3
+ 0.25
+
+
+
+ name
+ startSize
+ type
+ FloatVar
+ value
+
+ 54
+ 10
+
+
+
+ name
+ endSize
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ startSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 320
+
+
+
+ name
+ endSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 320
+
+
+
+ name
+ angle
+ type
+ FloatVar
+ value
+
+ 0.0
+ 360
+
+
+
+ name
+ startColor
+ type
+ Color4FVar
+ value
+
+
+ 0.33126017451286316
+ 0.75999999046325684
+ 0.59423065185546875
+ 1
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ endColor
+ type
+ Color4FVar
+ value
+
+
+ 0.0
+ 0.0
+ 0.0
+ 255
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 1
+ 1
+
+
+
+ name
+ startRadius
+ type
+ FloatVar
+ value
+
+ 70
+ 0.0
+
+
+
+ name
+ endRadius
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ rotatePerSecond
+ type
+ FloatVar
+ value
+
+ 60
+ 20
+
+
+
+ name
+ texture
+ type
+ Texture
+ value
+ ccb/particle-snow.png
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 29.166666030883789
+ 10.3125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Gravity mode
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 70.833335876464844
+ 10.3125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Radius mode
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+ selected
+
+
+
+ customClass
+ TestParticleSystemsLayer
+ displayName
+ CCLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestParticleSystems.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestParticleSystems.ccbi
new file mode 100755
index 0000000000..2889b8a1bb
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestParticleSystems.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestScrollViews.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViews.ccb
new file mode 100755
index 0000000000..0607bd841a
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViews.ccb
@@ -0,0 +1,533 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestScrollViews.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerColor
+ children
+
+ customClass
+
+ displayName
+ CCLayerColor
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 106
+ 90
+ 84
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ baseClass
+ CCScrollView
+ children
+
+ customClass
+
+ displayName
+ CCScrollView
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 50
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ Float
+ value
+ 1
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ container
+ type
+ CCBFile
+ value
+ ccb/ccb/TestScrollViewsContentA.ccb
+
+
+ name
+ direction
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ clipsToBounds
+ type
+ Check
+ value
+
+
+
+ name
+ bounces
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCScrollView
+ children
+
+ customClass
+
+ displayName
+ CCScrollView
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 50
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ Float
+ value
+ 1
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ container
+ type
+ CCBFile
+ value
+ ccb/ccb/TestScrollViewsContentA.ccb
+
+
+ name
+ direction
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ clipsToBounds
+ type
+ Check
+ value
+
+
+
+ name
+ bounces
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+ selected
+
+
+
+ customClass
+ TestScrollViewsLayer
+ displayName
+ TestScrollViews
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestScrollViews.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViews.ccbi
new file mode 100755
index 0000000000..6c5eba8756
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViews.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestScrollViewsContentA.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViewsContentA.ccb
new file mode 100755
index 0000000000..b25dcc0aec
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViewsContentA.ccb
@@ -0,0 +1,214 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/flower.jpg
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ selected
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 1024
+ 1024
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 1024
+ name
+ Custom
+ scale
+ 1
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestScrollViewsContentA.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViewsContentA.ccbi
new file mode 100755
index 0000000000..04a4d387e8
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestScrollViewsContentA.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestSprites.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestSprites.ccb
new file mode 100755
index 0000000000..1b0dfcb3ec
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestSprites.ccb
@@ -0,0 +1,1637 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestSprites.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+ selected
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -60
+ 10
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.40000000596046448
+ 0.40000000596046448
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 127
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 90
+ 90
+ 90
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 5
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.5
+ 0.5
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 63
+ 255
+ 39
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 60
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.60000002384185791
+ 0.60000002384185791
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 26.666666030883789
+ 67.1875
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_05.png
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_06.png
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_13.png
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 352.15463256835938
+ 60.877250671386719
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_13.png
+
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 20.208333969116211
+ 20.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.75999999046325684
+ 0.75999999046325684
+
+ 1
+
+
+
+ name
+ rotation
+ type
+ Degrees
+ value
+ -12
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCScale9Sprite
+ children
+
+ customClass
+
+ displayName
+ CCScale9Sprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 74.166664123535156
+ 65.625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ spriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/scale-9-demo.png
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 150
+ 120
+ 0
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 200
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 255
+ 158
+ 47
+
+
+
+ name
+ insetLeft
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetTop
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetRight
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetBottom
+ type
+ Float
+ value
+ 0.0
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 29.375
+ 47.8125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Opacity, color & blend mode
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 74.375
+ 79.0625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ CCScale9Sprite
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50.416667938232422
+ 19.6875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Sprite sheet & transformation
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ baseClass
+ CCScale9Sprite
+ children
+
+ customClass
+
+ displayName
+ CCScale9Sprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 82.083328247070312
+ 29.6875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ spriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/scale-9-demo.png
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 150
+ 120
+ 0
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 254
+ 255
+ 254
+
+
+
+ name
+ insetLeft
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetTop
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetRight
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetBottom
+ type
+ Float
+ value
+ 0.0
+
+
+
+
+ customClass
+ TestSpritesLayer
+ displayName
+ CCLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestSprites.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestSprites.ccbi
new file mode 100755
index 0000000000..3be0f3c154
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestSprites.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestTimelineCallback.ccb b/tests/cpp-tests/Resources/ccb/ccb/TestTimelineCallback.ccb
new file mode 100755
index 0000000000..37df7f75e8
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/ccb/TestTimelineCallback.ccb
@@ -0,0 +1,839 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ animatedProperties
+
+ 0
+
+ visible
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ name
+ visible
+ time
+ 0.0
+ type
+ 1
+ value
+
+
+
+ name
+ visible
+ type
+ 1
+
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+ 1
+ name
+ visible
+ type
+ Check
+ value
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 19
+ 0
+ 255
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 255
+ 33
+ 249
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCMenu
+ children
+
+ customClass
+
+ displayName
+ CCMenu
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 30
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+ helloLabel
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 20
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 40
+ 20
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Test Callbacks
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 0.0
+ type
+ 3
+ value
+
+ 10
+ 10
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1
+ type
+ 3
+ value
+
+ 10
+ 90
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 90
+ 90
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 3
+ type
+ 3
+ value
+
+ 90
+ 10
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 4
+ type
+ 3
+ value
+
+ 10
+ 10
+
+
+
+ name
+ position
+ type
+ 3
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ ccbParticleStars
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ baseValue
+
+ 10
+ 10
+
+ name
+ position
+ type
+ Position
+ value
+
+ 90
+ 10
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/ccbParticleStars.png
+
+
+
+ seqExpanded
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+ selected
+
+
+
+ customClass
+ TimelineCallbackTestLayer
+ displayName
+ CCLayer
+ jsController
+ MainScene
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+ iphone
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad iphonehd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 1
+ type
+ 10
+ value
+
+ onCallback1
+ 1
+
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 3
+ type
+ 10
+ value
+
+ onCallback2
+ 1
+
+
+
+ type
+ 10
+
+ chainedSequenceId
+ 0
+ length
+ 4
+ name
+ Default Timeline
+ offset
+ 0.85765171051025391
+ position
+ 3
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 1
+ type
+ 9
+ value
+
+ ccb/gem-0.wav
+ 1
+ 0.0
+ 1
+
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 3
+ type
+ 9
+ value
+
+ ccb/gem-1.wav
+ 1
+ 0.0
+ 1
+
+
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/cpp-tests/Resources/ccb/ccb/TestTimelineCallback.ccbi b/tests/cpp-tests/Resources/ccb/ccb/TestTimelineCallback.ccbi
new file mode 100755
index 0000000000..414ae8bca9
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccb/TestTimelineCallback.ccbi differ
diff --git a/tests/cpp-tests/Resources/ccb/ccbParticleStars.png b/tests/cpp-tests/Resources/ccb/ccbParticleStars.png
new file mode 100755
index 0000000000..f493dcc334
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/ccbParticleStars.png differ
diff --git a/tests/cpp-tests/Resources/ccb/comic andy.ttf b/tests/cpp-tests/Resources/ccb/comic andy.ttf
new file mode 100755
index 0000000000..a68e94d66d
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/comic andy.ttf differ
diff --git a/tests/cpp-tests/Resources/ccb/flower.jpg b/tests/cpp-tests/Resources/ccb/flower.jpg
new file mode 100755
index 0000000000..38e3a5faba
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/flower.jpg differ
diff --git a/tests/cpp-tests/Resources/ccb/gem-0.wav b/tests/cpp-tests/Resources/ccb/gem-0.wav
new file mode 100755
index 0000000000..13382b4a2f
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/gem-0.wav differ
diff --git a/tests/cpp-tests/Resources/ccb/gem-1.wav b/tests/cpp-tests/Resources/ccb/gem-1.wav
new file mode 100755
index 0000000000..5a60849ce6
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/gem-1.wav differ
diff --git a/tests/cpp-tests/Resources/ccb/grossini-generic.plist b/tests/cpp-tests/Resources/ccb/grossini-generic.plist
new file mode 100755
index 0000000000..ca256a58cc
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/grossini-generic.plist
@@ -0,0 +1,282 @@
+
+
+
+
+ frames
+
+ grossini_dance_generic_01.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 125}, {121, 85}}
+ textureRotated
+
+
+ grossini_dance_generic_02.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{299, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_03.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 236}, {109, 63}}
+ textureRotated
+
+
+ grossini_dance_generic_04.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {75, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {75, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{202, 125}, {75, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_05.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {75, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {75, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{125, 125}, {75, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_06.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{212, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_07.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{279, 125}, {63, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_08.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {51, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{409, 125}, {51, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_09.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {51, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{224, 236}, {109, 51}}
+ textureRotated
+
+
+ grossini_dance_generic_10.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {63, 109}}
+ spriteOffset
+ {6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{344, 125}, {63, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_11.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {63, 109}}
+ spriteOffset
+ {6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{113, 236}, {109, 63}}
+ textureRotated
+
+
+ grossini_dance_generic_12.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 10}, {51, 107}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_13.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{386, 2}, {121, 85}}
+ textureRotated
+
+
+ grossini_dance_generic_14.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 10}, {51, 107}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{89, 2}, {121, 85}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ size
+ {512, 512}
+
+
+
diff --git a/tests/cpp-tests/Resources/ccb/grossini-generic.png b/tests/cpp-tests/Resources/ccb/grossini-generic.png
new file mode 100755
index 0000000000..5c0bbc67c8
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/grossini-generic.png differ
diff --git a/tests/cpp-tests/Resources/ccb/jungle-left.png b/tests/cpp-tests/Resources/ccb/jungle-left.png
new file mode 100755
index 0000000000..79bbf20334
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/jungle-left.png differ
diff --git a/tests/cpp-tests/Resources/ccb/jungle-right.png b/tests/cpp-tests/Resources/ccb/jungle-right.png
new file mode 100755
index 0000000000..8da61b9f58
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/jungle-right.png differ
diff --git a/tests/cpp-tests/Resources/ccb/jungle.png b/tests/cpp-tests/Resources/ccb/jungle.png
new file mode 100755
index 0000000000..b3ddd92d2b
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/jungle.png differ
diff --git a/tests/cpp-tests/Resources/ccb/logo-icon.png b/tests/cpp-tests/Resources/ccb/logo-icon.png
new file mode 100755
index 0000000000..c668736dc7
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/logo-icon.png differ
diff --git a/tests/cpp-tests/Resources/ccb/logo.png b/tests/cpp-tests/Resources/ccb/logo.png
new file mode 100755
index 0000000000..a4cd20c20e
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/logo.png differ
diff --git a/tests/cpp-tests/Resources/ccb/markerfelt24shadow.fnt b/tests/cpp-tests/Resources/ccb/markerfelt24shadow.fnt
new file mode 100755
index 0000000000..2685fbcab6
--- /dev/null
+++ b/tests/cpp-tests/Resources/ccb/markerfelt24shadow.fnt
@@ -0,0 +1,3732 @@
+info face="MarkerFelt-Thin" size=24 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=26 base=21 scaleW=256 scaleH=256 pages=1 packed=0
+page id=0 file="markerfelt24shadow.png"
+chars count=95
+char id=106 x=2 y=2 width=10 height=27 xoffset=-2 yoffset=1 xadvance=5 page=0 chnl=0 letter="j"
+char id=87 x=14 y=2 width=27 height=26 xoffset=0 yoffset=-1 xadvance=23 page=0 chnl=0 letter="W"
+char id=81 x=43 y=2 width=18 height=26 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="Q"
+char id=72 x=63 y=2 width=15 height=26 xoffset=1 yoffset=-1 xadvance=12 page=0 chnl=0 letter="H"
+char id=77 x=80 y=2 width=25 height=25 xoffset=1 yoffset=-0 xadvance=22 page=0 chnl=0 letter="M"
+char id=37 x=107 y=2 width=20 height=25 xoffset=1 yoffset=-0 xadvance=17 page=0 chnl=0 letter="%"
+char id=88 x=129 y=2 width=19 height=25 xoffset=0 yoffset=-0 xadvance=15 page=0 chnl=0 letter="X"
+char id=89 x=150 y=2 width=19 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="Y"
+char id=90 x=171 y=2 width=19 height=25 xoffset=0 yoffset=-1 xadvance=14 page=0 chnl=0 letter="Z"
+char id=65 x=192 y=2 width=18 height=25 xoffset=1 yoffset=-0 xadvance=15 page=0 chnl=0 letter="A"
+char id=75 x=212 y=2 width=18 height=25 xoffset=1 yoffset=-0 xadvance=13 page=0 chnl=0 letter="K"
+char id=52 x=232 y=2 width=18 height=25 xoffset=0 yoffset=-0 xadvance=14 page=0 chnl=0 letter="4"
+char id=78 x=2 y=31 width=17 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="N"
+char id=86 x=21 y=31 width=17 height=25 xoffset=0 yoffset=-0 xadvance=13 page=0 chnl=0 letter="V"
+char id=53 x=40 y=31 width=17 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="5"
+char id=71 x=59 y=31 width=16 height=25 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="G"
+char id=79 x=77 y=31 width=16 height=25 xoffset=1 yoffset=-0 xadvance=13 page=0 chnl=0 letter="O"
+char id=83 x=95 y=31 width=16 height=25 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="S"
+char id=84 x=113 y=31 width=16 height=25 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="T"
+char id=85 x=131 y=31 width=16 height=25 xoffset=1 yoffset=-0 xadvance=13 page=0 chnl=0 letter="U"
+char id=51 x=149 y=31 width=16 height=25 xoffset=1 yoffset=-1 xadvance=14 page=0 chnl=0 letter="3"
+char id=55 x=167 y=31 width=16 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="7"
+char id=66 x=185 y=31 width=15 height=25 xoffset=1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="B"
+char id=67 x=202 y=31 width=15 height=25 xoffset=0 yoffset=-0 xadvance=11 page=0 chnl=0 letter="C"
+char id=68 x=219 y=31 width=15 height=25 xoffset=1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="D"
+char id=80 x=236 y=31 width=15 height=25 xoffset=1 yoffset=-0 xadvance=11 page=0 chnl=0 letter="P"
+char id=104 x=2 y=58 width=15 height=25 xoffset=1 yoffset=-0 xadvance=11 page=0 chnl=0 letter="h"
+char id=54 x=19 y=58 width=15 height=25 xoffset=2 yoffset=-0 xadvance=14 page=0 chnl=0 letter="6"
+char id=57 x=36 y=58 width=15 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="9"
+char id=48 x=53 y=58 width=15 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="0"
+char id=74 x=70 y=58 width=14 height=25 xoffset=0 yoffset=-0 xadvance=10 page=0 chnl=0 letter="J"
+char id=76 x=86 y=58 width=14 height=25 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="L"
+char id=102 x=102 y=58 width=14 height=25 xoffset=0 yoffset=-0 xadvance=9 page=0 chnl=0 letter="f"
+char id=56 x=118 y=58 width=14 height=25 xoffset=2 yoffset=-0 xadvance=14 page=0 chnl=0 letter="8"
+char id=63 x=134 y=58 width=14 height=25 xoffset=0 yoffset=-0 xadvance=10 page=0 chnl=0 letter="?"
+char id=69 x=150 y=58 width=13 height=25 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="E"
+char id=70 x=165 y=58 width=13 height=25 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="F"
+char id=91 x=180 y=58 width=13 height=25 xoffset=0 yoffset=-0 xadvance=9 page=0 chnl=0 letter="["
+char id=93 x=195 y=58 width=13 height=25 xoffset=0 yoffset=-0 xadvance=9 page=0 chnl=0 letter="]"
+char id=123 x=210 y=58 width=13 height=25 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 letter="{"
+char id=125 x=225 y=58 width=13 height=25 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 letter="}"
+char id=49 x=240 y=58 width=11 height=25 xoffset=3 yoffset=-0 xadvance=14 page=0 chnl=0 letter="1"
+char id=40 x=2 y=85 width=10 height=25 xoffset=1 yoffset=-1 xadvance=6 page=0 chnl=0 letter="("
+char id=41 x=14 y=85 width=10 height=25 xoffset=1 yoffset=-1 xadvance=6 page=0 chnl=0 letter=")"
+char id=108 x=26 y=85 width=8 height=25 xoffset=1 yoffset=-0 xadvance=5 page=0 chnl=0 letter="l"
+char id=124 x=36 y=85 width=8 height=25 xoffset=1 yoffset=-0 xadvance=5 page=0 chnl=0 letter="|"
+char id=64 x=46 y=85 width=25 height=24 xoffset=1 yoffset=-0 xadvance=22 page=0 chnl=0 letter="@"
+char id=82 x=73 y=85 width=18 height=24 xoffset=1 yoffset=1 xadvance=14 page=0 chnl=0 letter="R"
+char id=38 x=93 y=85 width=18 height=24 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0 letter="&"
+char id=50 x=113 y=85 width=17 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="2"
+char id=47 x=132 y=85 width=17 height=24 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="/"
+char id=92 x=151 y=85 width=17 height=24 xoffset=0 yoffset=-0 xadvance=13 page=0 chnl=0 letter="\"
+char id=107 x=170 y=85 width=16 height=24 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="k"
+char id=36 x=188 y=85 width=16 height=24 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0 letter="$"
+char id=73 x=206 y=85 width=9 height=24 xoffset=1 yoffset=-0 xadvance=6 page=0 chnl=0 letter="I"
+char id=105 x=217 y=85 width=8 height=24 xoffset=1 yoffset=1 xadvance=5 page=0 chnl=0 letter="i"
+char id=33 x=227 y=85 width=8 height=24 xoffset=1 yoffset=1 xadvance=5 page=0 chnl=0 letter="!"
+char id=121 x=237 y=85 width=16 height=23 xoffset=-0 yoffset=6 xadvance=11 page=0 chnl=0 letter="y"
+char id=98 x=2 y=112 width=14 height=23 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 letter="b"
+char id=100 x=18 y=112 width=14 height=23 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 letter="d"
+char id=112 x=34 y=112 width=14 height=23 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="p"
+char id=113 x=50 y=112 width=14 height=23 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="q"
+char id=103 x=66 y=112 width=13 height=23 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0 letter="g"
+char id=116 x=81 y=112 width=14 height=22 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0 letter="t"
+char id=59 x=97 y=112 width=10 height=20 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0 letter=";"
+char id=119 x=109 y=112 width=23 height=19 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="w"
+char id=109 x=134 y=112 width=21 height=19 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0 letter="m"
+char id=118 x=157 y=112 width=16 height=19 xoffset=-1 yoffset=6 xadvance=11 page=0 chnl=0 letter="v"
+char id=122 x=175 y=112 width=16 height=19 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0 letter="z"
+char id=97 x=193 y=112 width=15 height=19 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0 letter="a"
+char id=110 x=210 y=112 width=15 height=19 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0 letter="n"
+char id=111 x=227 y=112 width=14 height=19 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0 letter="o"
+char id=114 x=2 y=137 width=14 height=19 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="r"
+char id=120 x=18 y=137 width=14 height=19 xoffset=-0 yoffset=6 xadvance=10 page=0 chnl=0 letter="x"
+char id=99 x=34 y=137 width=13 height=19 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="c"
+char id=101 x=49 y=137 width=13 height=19 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="e"
+char id=115 x=64 y=137 width=13 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0 letter="s"
+char id=117 x=79 y=137 width=13 height=19 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="u"
+char id=60 x=94 y=137 width=12 height=18 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="<"
+char id=62 x=108 y=137 width=12 height=18 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter=">"
+char id=58 x=122 y=137 width=8 height=18 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=0 letter=":"
+char id=35 x=132 y=137 width=17 height=17 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=0 letter="#"
+char id=43 x=151 y=137 width=14 height=15 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0 letter="+"
+char id=42 x=167 y=137 width=15 height=13 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 letter="*"
+char id=61 x=184 y=137 width=12 height=12 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="="
+char id=34 x=198 y=137 width=11 height=12 xoffset=0 yoffset=-0 xadvance=7 page=0 chnl=0 letter="""
+char id=39 x=211 y=137 width=7 height=11 xoffset=0 yoffset=-0 xadvance=4 page=0 chnl=0 letter="'"
+char id=96 x=220 y=137 width=9 height=10 xoffset=0 yoffset=-0 xadvance=5 page=0 chnl=0 letter="`"
+char id=44 x=231 y=137 width=9 height=10 xoffset=-1 yoffset=17 xadvance=5 page=0 chnl=0 letter=","
+char id=94 x=242 y=137 width=11 height=9 xoffset=0 yoffset=-0 xadvance=7 page=0 chnl=0 letter="^"
+char id=46 x=2 y=158 width=8 height=9 xoffset=1 yoffset=15 xadvance=5 page=0 chnl=0 letter="."
+char id=95 x=12 y=158 width=15 height=8 xoffset=0 yoffset=21 xadvance=12 page=0 chnl=0 letter="_"
+char id=45 x=29 y=158 width=12 height=8 xoffset=1 yoffset=10 xadvance=9 page=0 chnl=0 letter="-"
+char id=126 x=43 y=158 width=12 height=8 xoffset=0 yoffset=-0 xadvance=8 page=0 chnl=0 letter="~"
+char id=32 x=57 y=158 width=0 height=0 xoffset=6 yoffset=41 xadvance=6 page=0 chnl=0 letter="space"
+kernings count=3632
+kerning first=106 second=106 amount=2
+kerning first=106 second=102 amount=1
+kerning first=106 second=56 amount=-1
+kerning first=106 second=63 amount=1
+kerning first=106 second=49 amount=-2
+kerning first=106 second=40 amount=1
+kerning first=106 second=108 amount=1
+kerning first=106 second=107 amount=1
+kerning first=106 second=105 amount=1
+kerning first=106 second=33 amount=1
+kerning first=106 second=121 amount=1
+kerning first=106 second=98 amount=1
+kerning first=106 second=100 amount=1
+kerning first=106 second=112 amount=1
+kerning first=106 second=103 amount=1
+kerning first=106 second=116 amount=1
+kerning first=106 second=59 amount=2
+kerning first=106 second=119 amount=2
+kerning first=106 second=118 amount=2
+kerning first=106 second=122 amount=1
+kerning first=106 second=97 amount=1
+kerning first=106 second=110 amount=1
+kerning first=106 second=111 amount=1
+kerning first=106 second=114 amount=1
+kerning first=106 second=120 amount=1
+kerning first=106 second=99 amount=1
+kerning first=106 second=101 amount=1
+kerning first=106 second=115 amount=1
+kerning first=106 second=117 amount=1
+kerning first=106 second=34 amount=1
+kerning first=106 second=39 amount=1
+kerning first=106 second=44 amount=1
+kerning first=106 second=46 amount=1
+kerning first=87 second=87 amount=1
+kerning first=87 second=81 amount=-1
+kerning first=87 second=88 amount=1
+kerning first=87 second=89 amount=1
+kerning first=87 second=90 amount=-1
+kerning first=87 second=65 amount=-3
+kerning first=87 second=75 amount=1
+kerning first=87 second=52 amount=-2
+kerning first=87 second=86 amount=1
+kerning first=87 second=53 amount=-1
+kerning first=87 second=71 amount=-1
+kerning first=87 second=79 amount=-1
+kerning first=87 second=83 amount=-1
+kerning first=87 second=85 amount=1
+kerning first=87 second=51 amount=-2
+kerning first=87 second=55 amount=-1
+kerning first=87 second=66 amount=1
+kerning first=87 second=67 amount=-1
+kerning first=87 second=80 amount=1
+kerning first=87 second=54 amount=-2
+kerning first=87 second=57 amount=-2
+kerning first=87 second=48 amount=-2
+kerning first=87 second=74 amount=-2
+kerning first=87 second=76 amount=1
+kerning first=87 second=102 amount=-1
+kerning first=87 second=56 amount=-2
+kerning first=87 second=93 amount=1
+kerning first=87 second=49 amount=-2
+kerning first=87 second=41 amount=1
+kerning first=87 second=108 amount=1
+kerning first=87 second=64 amount=-3
+kerning first=87 second=82 amount=1
+kerning first=87 second=50 amount=-2
+kerning first=87 second=47 amount=-3
+kerning first=87 second=92 amount=1
+kerning first=87 second=107 amount=1
+kerning first=87 second=73 amount=1
+kerning first=87 second=33 amount=1
+kerning first=87 second=100 amount=-2
+kerning first=87 second=112 amount=-1
+kerning first=87 second=113 amount=-2
+kerning first=87 second=103 amount=-2
+kerning first=87 second=116 amount=-1
+kerning first=87 second=59 amount=-2
+kerning first=87 second=109 amount=-1
+kerning first=87 second=122 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=110 amount=-1
+kerning first=87 second=111 amount=-2
+kerning first=87 second=114 amount=-1
+kerning first=87 second=120 amount=-1
+kerning first=87 second=99 amount=-2
+kerning first=87 second=101 amount=-2
+kerning first=87 second=115 amount=-2
+kerning first=87 second=117 amount=-1
+kerning first=87 second=58 amount=-2
+kerning first=87 second=35 amount=-1
+kerning first=87 second=34 amount=1
+kerning first=87 second=39 amount=2
+kerning first=87 second=44 amount=-4
+kerning first=87 second=46 amount=-3
+kerning first=87 second=45 amount=-2
+kerning first=81 second=106 amount=3
+kerning first=81 second=72 amount=1
+kerning first=81 second=77 amount=1
+kerning first=81 second=88 amount=2
+kerning first=81 second=89 amount=-1
+kerning first=81 second=90 amount=1
+kerning first=81 second=65 amount=1
+kerning first=81 second=75 amount=1
+kerning first=81 second=78 amount=1
+kerning first=81 second=86 amount=-1
+kerning first=81 second=51 amount=-1
+kerning first=81 second=55 amount=1
+kerning first=81 second=66 amount=1
+kerning first=81 second=67 amount=1
+kerning first=81 second=68 amount=1
+kerning first=81 second=80 amount=1
+kerning first=81 second=104 amount=1
+kerning first=81 second=54 amount=-1
+kerning first=81 second=57 amount=-1
+kerning first=81 second=76 amount=1
+kerning first=81 second=102 amount=1
+kerning first=81 second=56 amount=-1
+kerning first=81 second=69 amount=1
+kerning first=81 second=70 amount=1
+kerning first=81 second=93 amount=1
+kerning first=81 second=49 amount=-2
+kerning first=81 second=40 amount=1
+kerning first=81 second=41 amount=1
+kerning first=81 second=108 amount=2
+kerning first=81 second=82 amount=1
+kerning first=81 second=50 amount=1
+kerning first=81 second=47 amount=1
+kerning first=81 second=92 amount=-1
+kerning first=81 second=107 amount=2
+kerning first=81 second=73 amount=1
+kerning first=81 second=105 amount=2
+kerning first=81 second=33 amount=2
+kerning first=81 second=121 amount=1
+kerning first=81 second=98 amount=2
+kerning first=81 second=112 amount=2
+kerning first=81 second=103 amount=1
+kerning first=81 second=116 amount=1
+kerning first=81 second=59 amount=3
+kerning first=81 second=119 amount=1
+kerning first=81 second=118 amount=1
+kerning first=81 second=122 amount=2
+kerning first=81 second=97 amount=2
+kerning first=81 second=110 amount=2
+kerning first=81 second=111 amount=1
+kerning first=81 second=114 amount=2
+kerning first=81 second=120 amount=2
+kerning first=81 second=99 amount=1
+kerning first=81 second=115 amount=1
+kerning first=81 second=117 amount=1
+kerning first=81 second=58 amount=2
+kerning first=81 second=44 amount=3
+kerning first=81 second=46 amount=2
+kerning first=72 second=106 amount=1
+kerning first=72 second=87 amount=1
+kerning first=72 second=81 amount=1
+kerning first=72 second=72 amount=1
+kerning first=72 second=88 amount=1
+kerning first=72 second=75 amount=1
+kerning first=72 second=52 amount=1
+kerning first=72 second=86 amount=1
+kerning first=72 second=71 amount=1
+kerning first=72 second=79 amount=1
+kerning first=72 second=85 amount=1
+kerning first=72 second=51 amount=-1
+kerning first=72 second=66 amount=1
+kerning first=72 second=67 amount=1
+kerning first=72 second=80 amount=1
+kerning first=72 second=104 amount=1
+kerning first=72 second=57 amount=-1
+kerning first=72 second=76 amount=1
+kerning first=72 second=102 amount=1
+kerning first=72 second=56 amount=-1
+kerning first=72 second=69 amount=1
+kerning first=72 second=93 amount=1
+kerning first=72 second=49 amount=-2
+kerning first=72 second=40 amount=1
+kerning first=72 second=41 amount=1
+kerning first=72 second=108 amount=1
+kerning first=72 second=82 amount=1
+kerning first=72 second=92 amount=1
+kerning first=72 second=107 amount=1
+kerning first=72 second=73 amount=1
+kerning first=72 second=105 amount=1
+kerning first=72 second=33 amount=1
+kerning first=72 second=121 amount=1
+kerning first=72 second=98 amount=1
+kerning first=72 second=100 amount=1
+kerning first=72 second=112 amount=1
+kerning first=72 second=113 amount=1
+kerning first=72 second=103 amount=1
+kerning first=72 second=116 amount=2
+kerning first=72 second=59 amount=1
+kerning first=72 second=119 amount=1
+kerning first=72 second=118 amount=1
+kerning first=72 second=97 amount=1
+kerning first=72 second=110 amount=1
+kerning first=72 second=111 amount=1
+kerning first=72 second=114 amount=1
+kerning first=72 second=120 amount=1
+kerning first=72 second=99 amount=1
+kerning first=72 second=101 amount=1
+kerning first=72 second=115 amount=1
+kerning first=72 second=117 amount=1
+kerning first=72 second=35 amount=1
+kerning first=72 second=34 amount=1
+kerning first=72 second=39 amount=1
+kerning first=72 second=46 amount=1
+kerning first=72 second=45 amount=1
+kerning first=77 second=106 amount=1
+kerning first=77 second=88 amount=1
+kerning first=77 second=90 amount=1
+kerning first=77 second=65 amount=1
+kerning first=77 second=51 amount=-1
+kerning first=77 second=66 amount=1
+kerning first=77 second=80 amount=1
+kerning first=77 second=104 amount=1
+kerning first=77 second=54 amount=-1
+kerning first=77 second=57 amount=-1
+kerning first=77 second=48 amount=-1
+kerning first=77 second=56 amount=-1
+kerning first=77 second=69 amount=1
+kerning first=77 second=70 amount=1
+kerning first=77 second=49 amount=-3
+kerning first=77 second=41 amount=1
+kerning first=77 second=108 amount=1
+kerning first=77 second=47 amount=1
+kerning first=77 second=107 amount=1
+kerning first=77 second=73 amount=1
+kerning first=77 second=105 amount=1
+kerning first=77 second=33 amount=1
+kerning first=77 second=98 amount=1
+kerning first=77 second=112 amount=1
+kerning first=77 second=116 amount=1
+kerning first=77 second=59 amount=1
+kerning first=77 second=119 amount=1
+kerning first=77 second=118 amount=1
+kerning first=77 second=122 amount=1
+kerning first=77 second=97 amount=1
+kerning first=77 second=110 amount=1
+kerning first=77 second=114 amount=1
+kerning first=77 second=120 amount=1
+kerning first=77 second=115 amount=1
+kerning first=77 second=58 amount=1
+kerning first=77 second=44 amount=1
+kerning first=77 second=46 amount=1
+kerning first=88 second=106 amount=1
+kerning first=88 second=81 amount=-1
+kerning first=88 second=88 amount=1
+kerning first=88 second=90 amount=1
+kerning first=88 second=65 amount=1
+kerning first=88 second=52 amount=-2
+kerning first=88 second=71 amount=-1
+kerning first=88 second=79 amount=-1
+kerning first=88 second=83 amount=-1
+kerning first=88 second=84 amount=-1
+kerning first=88 second=51 amount=-1
+kerning first=88 second=80 amount=1
+kerning first=88 second=54 amount=-1
+kerning first=88 second=57 amount=-1
+kerning first=88 second=48 amount=-1
+kerning first=88 second=74 amount=-2
+kerning first=88 second=102 amount=-1
+kerning first=88 second=56 amount=-1
+kerning first=88 second=63 amount=-2
+kerning first=88 second=69 amount=1
+kerning first=88 second=49 amount=-3
+kerning first=88 second=41 amount=1
+kerning first=88 second=108 amount=1
+kerning first=88 second=64 amount=-1
+kerning first=88 second=47 amount=1
+kerning first=88 second=107 amount=1
+kerning first=88 second=73 amount=1
+kerning first=88 second=105 amount=1
+kerning first=88 second=33 amount=1
+kerning first=88 second=121 amount=-2
+kerning first=88 second=98 amount=1
+kerning first=88 second=112 amount=1
+kerning first=88 second=116 amount=-1
+kerning first=88 second=59 amount=1
+kerning first=88 second=118 amount=-1
+kerning first=88 second=122 amount=1
+kerning first=88 second=97 amount=1
+kerning first=88 second=110 amount=1
+kerning first=88 second=114 amount=1
+kerning first=88 second=120 amount=1
+kerning first=88 second=115 amount=1
+kerning first=88 second=58 amount=1
+kerning first=88 second=35 amount=-3
+kerning first=88 second=44 amount=1
+kerning first=88 second=46 amount=1
+kerning first=88 second=45 amount=-3
+kerning first=89 second=106 amount=1
+kerning first=89 second=87 amount=1
+kerning first=89 second=81 amount=-1
+kerning first=89 second=72 amount=1
+kerning first=89 second=77 amount=1
+kerning first=89 second=88 amount=1
+kerning first=89 second=89 amount=1
+kerning first=89 second=65 amount=-3
+kerning first=89 second=75 amount=1
+kerning first=89 second=52 amount=-3
+kerning first=89 second=78 amount=1
+kerning first=89 second=86 amount=2
+kerning first=89 second=84 amount=1
+kerning first=89 second=85 amount=1
+kerning first=89 second=51 amount=-2
+kerning first=89 second=66 amount=1
+kerning first=89 second=68 amount=1
+kerning first=89 second=80 amount=1
+kerning first=89 second=104 amount=1
+kerning first=89 second=54 amount=-1
+kerning first=89 second=57 amount=-1
+kerning first=89 second=48 amount=-1
+kerning first=89 second=74 amount=-3
+kerning first=89 second=76 amount=1
+kerning first=89 second=102 amount=-1
+kerning first=89 second=56 amount=-1
+kerning first=89 second=69 amount=1
+kerning first=89 second=70 amount=1
+kerning first=89 second=93 amount=1
+kerning first=89 second=49 amount=-2
+kerning first=89 second=41 amount=1
+kerning first=89 second=108 amount=1
+kerning first=89 second=64 amount=-3
+kerning first=89 second=82 amount=1
+kerning first=89 second=50 amount=-2
+kerning first=89 second=47 amount=-1
+kerning first=89 second=92 amount=1
+kerning first=89 second=107 amount=1
+kerning first=89 second=73 amount=1
+kerning first=89 second=105 amount=1
+kerning first=89 second=33 amount=1
+kerning first=89 second=121 amount=-1
+kerning first=89 second=98 amount=1
+kerning first=89 second=100 amount=-2
+kerning first=89 second=112 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=89 second=103 amount=-2
+kerning first=89 second=116 amount=-1
+kerning first=89 second=59 amount=-2
+kerning first=89 second=109 amount=-1
+kerning first=89 second=122 amount=-2
+kerning first=89 second=97 amount=-2
+kerning first=89 second=110 amount=-1
+kerning first=89 second=111 amount=-2
+kerning first=89 second=114 amount=-1
+kerning first=89 second=120 amount=-1
+kerning first=89 second=99 amount=-2
+kerning first=89 second=101 amount=-3
+kerning first=89 second=115 amount=-2
+kerning first=89 second=117 amount=-1
+kerning first=89 second=58 amount=-2
+kerning first=89 second=35 amount=-1
+kerning first=89 second=34 amount=2
+kerning first=89 second=39 amount=2
+kerning first=89 second=44 amount=-4
+kerning first=89 second=46 amount=-4
+kerning first=89 second=45 amount=-3
+kerning first=90 second=87 amount=1
+kerning first=90 second=81 amount=-1
+kerning first=90 second=88 amount=1
+kerning first=90 second=89 amount=1
+kerning first=90 second=65 amount=-1
+kerning first=90 second=75 amount=1
+kerning first=90 second=52 amount=-4
+kerning first=90 second=78 amount=1
+kerning first=90 second=86 amount=1
+kerning first=90 second=53 amount=-1
+kerning first=90 second=83 amount=-1
+kerning first=90 second=85 amount=1
+kerning first=90 second=51 amount=-2
+kerning first=90 second=66 amount=1
+kerning first=90 second=68 amount=1
+kerning first=90 second=80 amount=1
+kerning first=90 second=104 amount=1
+kerning first=90 second=54 amount=-1
+kerning first=90 second=57 amount=-1
+kerning first=90 second=48 amount=-1
+kerning first=90 second=74 amount=-2
+kerning first=90 second=76 amount=1
+kerning first=90 second=102 amount=-1
+kerning first=90 second=56 amount=-1
+kerning first=90 second=63 amount=-1
+kerning first=90 second=69 amount=1
+kerning first=90 second=93 amount=1
+kerning first=90 second=49 amount=-2
+kerning first=90 second=41 amount=1
+kerning first=90 second=108 amount=1
+kerning first=90 second=64 amount=-2
+kerning first=90 second=82 amount=1
+kerning first=90 second=50 amount=-1
+kerning first=90 second=92 amount=1
+kerning first=90 second=107 amount=1
+kerning first=90 second=73 amount=1
+kerning first=90 second=105 amount=1
+kerning first=90 second=33 amount=1
+kerning first=90 second=121 amount=-2
+kerning first=90 second=98 amount=1
+kerning first=90 second=100 amount=-1
+kerning first=90 second=112 amount=-1
+kerning first=90 second=113 amount=-1
+kerning first=90 second=103 amount=-1
+kerning first=90 second=116 amount=-2
+kerning first=90 second=59 amount=-1
+kerning first=90 second=119 amount=-1
+kerning first=90 second=109 amount=-1
+kerning first=90 second=118 amount=-1
+kerning first=90 second=122 amount=-1
+kerning first=90 second=110 amount=-1
+kerning first=90 second=111 amount=-1
+kerning first=90 second=114 amount=-1
+kerning first=90 second=99 amount=-1
+kerning first=90 second=101 amount=-1
+kerning first=90 second=115 amount=-1
+kerning first=90 second=117 amount=-1
+kerning first=90 second=58 amount=-1
+kerning first=90 second=35 amount=-3
+kerning first=90 second=34 amount=1
+kerning first=90 second=39 amount=2
+kerning first=90 second=45 amount=-5
+kerning first=65 second=87 amount=-2
+kerning first=65 second=88 amount=1
+kerning first=65 second=89 amount=-3
+kerning first=65 second=86 amount=-2
+kerning first=65 second=53 amount=-1
+kerning first=65 second=83 amount=1
+kerning first=65 second=84 amount=-2
+kerning first=65 second=51 amount=-2
+kerning first=65 second=67 amount=1
+kerning first=65 second=54 amount=-1
+kerning first=65 second=57 amount=-1
+kerning first=65 second=102 amount=-1
+kerning first=65 second=56 amount=-1
+kerning first=65 second=63 amount=-1
+kerning first=65 second=93 amount=-1
+kerning first=65 second=49 amount=-3
+kerning first=65 second=108 amount=1
+kerning first=65 second=92 amount=-3
+kerning first=65 second=100 amount=1
+kerning first=65 second=113 amount=1
+kerning first=65 second=103 amount=1
+kerning first=65 second=116 amount=-1
+kerning first=65 second=59 amount=1
+kerning first=65 second=122 amount=1
+kerning first=65 second=97 amount=1
+kerning first=65 second=110 amount=1
+kerning first=65 second=111 amount=1
+kerning first=65 second=120 amount=1
+kerning first=65 second=99 amount=1
+kerning first=65 second=101 amount=1
+kerning first=65 second=117 amount=1
+kerning first=65 second=34 amount=-3
+kerning first=65 second=39 amount=-3
+kerning first=65 second=44 amount=1
+kerning first=65 second=46 amount=1
+kerning first=75 second=106 amount=1
+kerning first=75 second=72 amount=1
+kerning first=75 second=77 amount=1
+kerning first=75 second=88 amount=1
+kerning first=75 second=90 amount=1
+kerning first=75 second=65 amount=1
+kerning first=75 second=75 amount=1
+kerning first=75 second=52 amount=-2
+kerning first=75 second=78 amount=1
+kerning first=75 second=53 amount=1
+kerning first=75 second=84 amount=-1
+kerning first=75 second=55 amount=1
+kerning first=75 second=66 amount=1
+kerning first=75 second=67 amount=1
+kerning first=75 second=80 amount=1
+kerning first=75 second=104 amount=1
+kerning first=75 second=54 amount=-1
+kerning first=75 second=74 amount=-1
+kerning first=75 second=76 amount=1
+kerning first=75 second=102 amount=-1
+kerning first=75 second=63 amount=-1
+kerning first=75 second=69 amount=1
+kerning first=75 second=70 amount=1
+kerning first=75 second=49 amount=-2
+kerning first=75 second=40 amount=1
+kerning first=75 second=41 amount=1
+kerning first=75 second=108 amount=1
+kerning first=75 second=82 amount=1
+kerning first=75 second=50 amount=1
+kerning first=75 second=47 amount=1
+kerning first=75 second=107 amount=1
+kerning first=75 second=73 amount=1
+kerning first=75 second=105 amount=1
+kerning first=75 second=33 amount=1
+kerning first=75 second=121 amount=-1
+kerning first=75 second=98 amount=1
+kerning first=75 second=100 amount=1
+kerning first=75 second=112 amount=1
+kerning first=75 second=113 amount=1
+kerning first=75 second=103 amount=1
+kerning first=75 second=116 amount=-1
+kerning first=75 second=59 amount=1
+kerning first=75 second=122 amount=1
+kerning first=75 second=97 amount=2
+kerning first=75 second=110 amount=1
+kerning first=75 second=111 amount=1
+kerning first=75 second=114 amount=1
+kerning first=75 second=120 amount=2
+kerning first=75 second=99 amount=1
+kerning first=75 second=101 amount=1
+kerning first=75 second=115 amount=1
+kerning first=75 second=117 amount=1
+kerning first=75 second=58 amount=1
+kerning first=75 second=35 amount=-3
+kerning first=75 second=44 amount=1
+kerning first=75 second=46 amount=2
+kerning first=75 second=45 amount=-4
+kerning first=52 second=106 amount=1
+kerning first=52 second=87 amount=-1
+kerning first=52 second=81 amount=1
+kerning first=52 second=72 amount=1
+kerning first=52 second=88 amount=-2
+kerning first=52 second=89 amount=-2
+kerning first=52 second=90 amount=-2
+kerning first=52 second=65 amount=-1
+kerning first=52 second=86 amount=-1
+kerning first=52 second=71 amount=1
+kerning first=52 second=79 amount=1
+kerning first=52 second=83 amount=-1
+kerning first=52 second=84 amount=-2
+kerning first=52 second=85 amount=1
+kerning first=52 second=67 amount=1
+kerning first=52 second=80 amount=1
+kerning first=52 second=104 amount=1
+kerning first=52 second=102 amount=1
+kerning first=52 second=63 amount=-1
+kerning first=52 second=69 amount=1
+kerning first=52 second=93 amount=-2
+kerning first=52 second=40 amount=1
+kerning first=52 second=41 amount=-1
+kerning first=52 second=108 amount=1
+kerning first=52 second=47 amount=-2
+kerning first=52 second=92 amount=-2
+kerning first=52 second=107 amount=1
+kerning first=52 second=73 amount=1
+kerning first=52 second=105 amount=1
+kerning first=52 second=33 amount=1
+kerning first=52 second=98 amount=1
+kerning first=52 second=100 amount=1
+kerning first=52 second=112 amount=1
+kerning first=52 second=113 amount=1
+kerning first=52 second=103 amount=1
+kerning first=52 second=116 amount=1
+kerning first=52 second=119 amount=1
+kerning first=52 second=118 amount=1
+kerning first=52 second=122 amount=-1
+kerning first=52 second=97 amount=1
+kerning first=52 second=110 amount=1
+kerning first=52 second=111 amount=1
+kerning first=52 second=114 amount=1
+kerning first=52 second=99 amount=1
+kerning first=52 second=101 amount=1
+kerning first=52 second=115 amount=1
+kerning first=52 second=117 amount=1
+kerning first=52 second=35 amount=1
+kerning first=52 second=34 amount=-2
+kerning first=52 second=39 amount=-1
+kerning first=52 second=44 amount=-2
+kerning first=52 second=46 amount=-2
+kerning first=52 second=45 amount=1
+kerning first=78 second=106 amount=1
+kerning first=78 second=87 amount=1
+kerning first=78 second=88 amount=1
+kerning first=78 second=90 amount=1
+kerning first=78 second=65 amount=1
+kerning first=78 second=75 amount=1
+kerning first=78 second=86 amount=1
+kerning first=78 second=83 amount=1
+kerning first=78 second=85 amount=1
+kerning first=78 second=66 amount=1
+kerning first=78 second=80 amount=1
+kerning first=78 second=104 amount=1
+kerning first=78 second=54 amount=-1
+kerning first=78 second=48 amount=-1
+kerning first=78 second=76 amount=1
+kerning first=78 second=102 amount=1
+kerning first=78 second=69 amount=1
+kerning first=78 second=93 amount=1
+kerning first=78 second=49 amount=-2
+kerning first=78 second=41 amount=1
+kerning first=78 second=108 amount=1
+kerning first=78 second=82 amount=1
+kerning first=78 second=47 amount=1
+kerning first=78 second=92 amount=1
+kerning first=78 second=107 amount=1
+kerning first=78 second=73 amount=1
+kerning first=78 second=105 amount=1
+kerning first=78 second=33 amount=1
+kerning first=78 second=121 amount=1
+kerning first=78 second=98 amount=1
+kerning first=78 second=112 amount=1
+kerning first=78 second=103 amount=1
+kerning first=78 second=116 amount=1
+kerning first=78 second=59 amount=1
+kerning first=78 second=119 amount=1
+kerning first=78 second=118 amount=1
+kerning first=78 second=122 amount=1
+kerning first=78 second=97 amount=1
+kerning first=78 second=110 amount=1
+kerning first=78 second=111 amount=1
+kerning first=78 second=114 amount=1
+kerning first=78 second=120 amount=1
+kerning first=78 second=99 amount=1
+kerning first=78 second=115 amount=1
+kerning first=78 second=117 amount=1
+kerning first=78 second=58 amount=1
+kerning first=78 second=34 amount=1
+kerning first=78 second=39 amount=1
+kerning first=78 second=46 amount=1
+kerning first=86 second=87 amount=1
+kerning first=86 second=81 amount=-1
+kerning first=86 second=88 amount=1
+kerning first=86 second=89 amount=1
+kerning first=86 second=90 amount=-1
+kerning first=86 second=65 amount=-3
+kerning first=86 second=75 amount=1
+kerning first=86 second=52 amount=-2
+kerning first=86 second=78 amount=1
+kerning first=86 second=86 amount=1
+kerning first=86 second=53 amount=-1
+kerning first=86 second=83 amount=-1
+kerning first=86 second=85 amount=1
+kerning first=86 second=51 amount=-2
+kerning first=86 second=66 amount=1
+kerning first=86 second=68 amount=1
+kerning first=86 second=80 amount=1
+kerning first=86 second=104 amount=1
+kerning first=86 second=54 amount=-2
+kerning first=86 second=57 amount=-1
+kerning first=86 second=48 amount=-1
+kerning first=86 second=74 amount=-2
+kerning first=86 second=76 amount=1
+kerning first=86 second=102 amount=-1
+kerning first=86 second=56 amount=-1
+kerning first=86 second=69 amount=1
+kerning first=86 second=93 amount=1
+kerning first=86 second=49 amount=-2
+kerning first=86 second=41 amount=1
+kerning first=86 second=108 amount=1
+kerning first=86 second=64 amount=-3
+kerning first=86 second=82 amount=1
+kerning first=86 second=50 amount=-2
+kerning first=86 second=47 amount=-3
+kerning first=86 second=92 amount=1
+kerning first=86 second=107 amount=1
+kerning first=86 second=73 amount=1
+kerning first=86 second=105 amount=1
+kerning first=86 second=33 amount=1
+kerning first=86 second=98 amount=1
+kerning first=86 second=100 amount=-2
+kerning first=86 second=112 amount=-1
+kerning first=86 second=113 amount=-2
+kerning first=86 second=103 amount=-2
+kerning first=86 second=59 amount=-1
+kerning first=86 second=109 amount=-1
+kerning first=86 second=122 amount=-2
+kerning first=86 second=97 amount=-1
+kerning first=86 second=110 amount=-1
+kerning first=86 second=111 amount=-2
+kerning first=86 second=114 amount=-1
+kerning first=86 second=120 amount=-1
+kerning first=86 second=99 amount=-2
+kerning first=86 second=101 amount=-2
+kerning first=86 second=115 amount=-2
+kerning first=86 second=117 amount=-1
+kerning first=86 second=58 amount=-2
+kerning first=86 second=35 amount=-1
+kerning first=86 second=34 amount=2
+kerning first=86 second=39 amount=2
+kerning first=86 second=44 amount=-3
+kerning first=86 second=46 amount=-3
+kerning first=86 second=45 amount=-2
+kerning first=53 second=81 amount=-1
+kerning first=53 second=90 amount=-1
+kerning first=53 second=65 amount=-3
+kerning first=53 second=86 amount=1
+kerning first=53 second=71 amount=-1
+kerning first=53 second=79 amount=-1
+kerning first=53 second=83 amount=-1
+kerning first=53 second=74 amount=-1
+kerning first=53 second=63 amount=-1
+kerning first=53 second=64 amount=-2
+kerning first=53 second=47 amount=-3
+kerning first=53 second=100 amount=-1
+kerning first=53 second=112 amount=-1
+kerning first=53 second=113 amount=-1
+kerning first=53 second=103 amount=-1
+kerning first=53 second=59 amount=-1
+kerning first=53 second=109 amount=-1
+kerning first=53 second=122 amount=-1
+kerning first=53 second=97 amount=-1
+kerning first=53 second=110 amount=-1
+kerning first=53 second=111 amount=-1
+kerning first=53 second=114 amount=-1
+kerning first=53 second=120 amount=-1
+kerning first=53 second=99 amount=-1
+kerning first=53 second=101 amount=-1
+kerning first=53 second=115 amount=-1
+kerning first=53 second=117 amount=-1
+kerning first=53 second=58 amount=-1
+kerning first=53 second=35 amount=-1
+kerning first=53 second=34 amount=1
+kerning first=53 second=39 amount=1
+kerning first=53 second=44 amount=-4
+kerning first=53 second=46 amount=-3
+kerning first=53 second=45 amount=-1
+kerning first=71 second=106 amount=1
+kerning first=71 second=81 amount=1
+kerning first=71 second=72 amount=1
+kerning first=71 second=88 amount=-1
+kerning first=71 second=89 amount=-2
+kerning first=71 second=90 amount=-1
+kerning first=71 second=75 amount=1
+kerning first=71 second=52 amount=1
+kerning first=71 second=86 amount=-1
+kerning first=71 second=53 amount=-1
+kerning first=71 second=71 amount=1
+kerning first=71 second=79 amount=1
+kerning first=71 second=83 amount=-1
+kerning first=71 second=84 amount=-1
+kerning first=71 second=85 amount=1
+kerning first=71 second=51 amount=-1
+kerning first=71 second=55 amount=-2
+kerning first=71 second=66 amount=1
+kerning first=71 second=67 amount=1
+kerning first=71 second=68 amount=1
+kerning first=71 second=80 amount=1
+kerning first=71 second=104 amount=1
+kerning first=71 second=57 amount=-1
+kerning first=71 second=48 amount=1
+kerning first=71 second=74 amount=1
+kerning first=71 second=76 amount=1
+kerning first=71 second=102 amount=1
+kerning first=71 second=56 amount=-1
+kerning first=71 second=63 amount=-1
+kerning first=71 second=69 amount=1
+kerning first=71 second=70 amount=1
+kerning first=71 second=93 amount=-2
+kerning first=71 second=49 amount=-3
+kerning first=71 second=40 amount=1
+kerning first=71 second=108 amount=1
+kerning first=71 second=64 amount=1
+kerning first=71 second=82 amount=1
+kerning first=71 second=50 amount=-2
+kerning first=71 second=47 amount=-1
+kerning first=71 second=92 amount=-2
+kerning first=71 second=107 amount=1
+kerning first=71 second=73 amount=1
+kerning first=71 second=105 amount=1
+kerning first=71 second=33 amount=1
+kerning first=71 second=121 amount=1
+kerning first=71 second=98 amount=1
+kerning first=71 second=100 amount=1
+kerning first=71 second=112 amount=1
+kerning first=71 second=113 amount=1
+kerning first=71 second=103 amount=1
+kerning first=71 second=116 amount=1
+kerning first=71 second=119 amount=2
+kerning first=71 second=109 amount=1
+kerning first=71 second=118 amount=1
+kerning first=71 second=122 amount=-1
+kerning first=71 second=97 amount=1
+kerning first=71 second=110 amount=1
+kerning first=71 second=111 amount=2
+kerning first=71 second=114 amount=1
+kerning first=71 second=99 amount=1
+kerning first=71 second=101 amount=1
+kerning first=71 second=115 amount=1
+kerning first=71 second=117 amount=1
+kerning first=71 second=35 amount=1
+kerning first=71 second=34 amount=-1
+kerning first=71 second=39 amount=-1
+kerning first=71 second=44 amount=-3
+kerning first=71 second=46 amount=-2
+kerning first=71 second=45 amount=2
+kerning first=79 second=106 amount=1
+kerning first=79 second=81 amount=1
+kerning first=79 second=72 amount=1
+kerning first=79 second=88 amount=-1
+kerning first=79 second=89 amount=-1
+kerning first=79 second=65 amount=-1
+kerning first=79 second=71 amount=1
+kerning first=79 second=79 amount=1
+kerning first=79 second=51 amount=-1
+kerning first=79 second=55 amount=-1
+kerning first=79 second=67 amount=1
+kerning first=79 second=57 amount=-1
+kerning first=79 second=102 amount=1
+kerning first=79 second=56 amount=-1
+kerning first=79 second=93 amount=-1
+kerning first=79 second=49 amount=-2
+kerning first=79 second=40 amount=1
+kerning first=79 second=41 amount=-1
+kerning first=79 second=108 amount=1
+kerning first=79 second=50 amount=-1
+kerning first=79 second=47 amount=-1
+kerning first=79 second=92 amount=-1
+kerning first=79 second=107 amount=1
+kerning first=79 second=105 amount=1
+kerning first=79 second=33 amount=1
+kerning first=79 second=121 amount=1
+kerning first=79 second=100 amount=1
+kerning first=79 second=112 amount=1
+kerning first=79 second=113 amount=1
+kerning first=79 second=103 amount=1
+kerning first=79 second=116 amount=2
+kerning first=79 second=59 amount=1
+kerning first=79 second=119 amount=2
+kerning first=79 second=118 amount=2
+kerning first=79 second=97 amount=1
+kerning first=79 second=110 amount=1
+kerning first=79 second=111 amount=1
+kerning first=79 second=114 amount=1
+kerning first=79 second=120 amount=1
+kerning first=79 second=99 amount=1
+kerning first=79 second=101 amount=1
+kerning first=79 second=117 amount=1
+kerning first=79 second=35 amount=1
+kerning first=79 second=44 amount=-1
+kerning first=79 second=45 amount=1
+kerning first=83 second=106 amount=1
+kerning first=83 second=88 amount=1
+kerning first=83 second=89 amount=-1
+kerning first=83 second=90 amount=1
+kerning first=83 second=53 amount=1
+kerning first=83 second=71 amount=1
+kerning first=83 second=83 amount=1
+kerning first=83 second=67 amount=1
+kerning first=83 second=104 amount=1
+kerning first=83 second=74 amount=1
+kerning first=83 second=49 amount=-2
+kerning first=83 second=40 amount=1
+kerning first=83 second=41 amount=1
+kerning first=83 second=108 amount=1
+kerning first=83 second=107 amount=1
+kerning first=83 second=105 amount=1
+kerning first=83 second=33 amount=1
+kerning first=83 second=121 amount=1
+kerning first=83 second=98 amount=1
+kerning first=83 second=100 amount=1
+kerning first=83 second=112 amount=1
+kerning first=83 second=113 amount=1
+kerning first=83 second=103 amount=1
+kerning first=83 second=116 amount=-1
+kerning first=83 second=119 amount=1
+kerning first=83 second=118 amount=1
+kerning first=83 second=122 amount=1
+kerning first=83 second=97 amount=1
+kerning first=83 second=110 amount=1
+kerning first=83 second=111 amount=1
+kerning first=83 second=114 amount=1
+kerning first=83 second=120 amount=1
+kerning first=83 second=99 amount=1
+kerning first=83 second=101 amount=1
+kerning first=83 second=115 amount=1
+kerning first=83 second=117 amount=1
+kerning first=83 second=46 amount=1
+kerning first=84 second=87 amount=1
+kerning first=84 second=81 amount=-1
+kerning first=84 second=88 amount=1
+kerning first=84 second=90 amount=-1
+kerning first=84 second=65 amount=-3
+kerning first=84 second=75 amount=1
+kerning first=84 second=52 amount=-3
+kerning first=84 second=86 amount=1
+kerning first=84 second=53 amount=-1
+kerning first=84 second=83 amount=-1
+kerning first=84 second=85 amount=1
+kerning first=84 second=51 amount=-2
+kerning first=84 second=66 amount=1
+kerning first=84 second=80 amount=1
+kerning first=84 second=54 amount=-2
+kerning first=84 second=57 amount=-1
+kerning first=84 second=48 amount=-1
+kerning first=84 second=74 amount=-3
+kerning first=84 second=76 amount=1
+kerning first=84 second=102 amount=-1
+kerning first=84 second=56 amount=-1
+kerning first=84 second=93 amount=1
+kerning first=84 second=49 amount=-2
+kerning first=84 second=108 amount=1
+kerning first=84 second=64 amount=-4
+kerning first=84 second=82 amount=1
+kerning first=84 second=50 amount=-2
+kerning first=84 second=47 amount=-3
+kerning first=84 second=92 amount=1
+kerning first=84 second=107 amount=1
+kerning first=84 second=73 amount=1
+kerning first=84 second=33 amount=1
+kerning first=84 second=121 amount=-3
+kerning first=84 second=98 amount=1
+kerning first=84 second=100 amount=-3
+kerning first=84 second=112 amount=-3
+kerning first=84 second=113 amount=-3
+kerning first=84 second=103 amount=-3
+kerning first=84 second=116 amount=-2
+kerning first=84 second=59 amount=-2
+kerning first=84 second=119 amount=-2
+kerning first=84 second=109 amount=-3
+kerning first=84 second=118 amount=-2
+kerning first=84 second=122 amount=-3
+kerning first=84 second=97 amount=-3
+kerning first=84 second=110 amount=-3
+kerning first=84 second=111 amount=-3
+kerning first=84 second=114 amount=-3
+kerning first=84 second=120 amount=-2
+kerning first=84 second=99 amount=-3
+kerning first=84 second=101 amount=-3
+kerning first=84 second=115 amount=-3
+kerning first=84 second=117 amount=-3
+kerning first=84 second=58 amount=-3
+kerning first=84 second=35 amount=-2
+kerning first=84 second=34 amount=1
+kerning first=84 second=39 amount=1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=46 amount=-2
+kerning first=84 second=45 amount=-3
+kerning first=85 second=106 amount=1
+kerning first=85 second=87 amount=1
+kerning first=85 second=88 amount=1
+kerning first=85 second=89 amount=1
+kerning first=85 second=65 amount=-1
+kerning first=85 second=75 amount=1
+kerning first=85 second=86 amount=1
+kerning first=85 second=71 amount=1
+kerning first=85 second=84 amount=1
+kerning first=85 second=85 amount=1
+kerning first=85 second=51 amount=-1
+kerning first=85 second=66 amount=1
+kerning first=85 second=67 amount=1
+kerning first=85 second=68 amount=1
+kerning first=85 second=80 amount=1
+kerning first=85 second=54 amount=-1
+kerning first=85 second=57 amount=-1
+kerning first=85 second=76 amount=1
+kerning first=85 second=102 amount=1
+kerning first=85 second=56 amount=-1
+kerning first=85 second=63 amount=1
+kerning first=85 second=93 amount=1
+kerning first=85 second=49 amount=-2
+kerning first=85 second=40 amount=1
+kerning first=85 second=41 amount=1
+kerning first=85 second=108 amount=1
+kerning first=85 second=82 amount=1
+kerning first=85 second=50 amount=-1
+kerning first=85 second=47 amount=-1
+kerning first=85 second=92 amount=1
+kerning first=85 second=107 amount=1
+kerning first=85 second=73 amount=1
+kerning first=85 second=105 amount=1
+kerning first=85 second=33 amount=1
+kerning first=85 second=121 amount=1
+kerning first=85 second=98 amount=1
+kerning first=85 second=112 amount=1
+kerning first=85 second=116 amount=1
+kerning first=85 second=119 amount=2
+kerning first=85 second=118 amount=1
+kerning first=85 second=97 amount=1
+kerning first=85 second=110 amount=1
+kerning first=85 second=114 amount=1
+kerning first=85 second=120 amount=1
+kerning first=85 second=117 amount=1
+kerning first=85 second=34 amount=1
+kerning first=85 second=39 amount=1
+kerning first=85 second=44 amount=-2
+kerning first=85 second=46 amount=-1
+kerning first=51 second=77 amount=-1
+kerning first=51 second=89 amount=-1
+kerning first=51 second=90 amount=-2
+kerning first=51 second=65 amount=-2
+kerning first=51 second=75 amount=-1
+kerning first=51 second=78 amount=-1
+kerning first=51 second=83 amount=-1
+kerning first=51 second=84 amount=-1
+kerning first=51 second=68 amount=-1
+kerning first=51 second=74 amount=-1
+kerning first=51 second=76 amount=-1
+kerning first=51 second=63 amount=-1
+kerning first=51 second=70 amount=-1
+kerning first=51 second=93 amount=-1
+kerning first=51 second=41 amount=-1
+kerning first=51 second=64 amount=-1
+kerning first=51 second=47 amount=-3
+kerning first=51 second=92 amount=-1
+kerning first=51 second=59 amount=-1
+kerning first=51 second=109 amount=-1
+kerning first=51 second=122 amount=-2
+kerning first=51 second=120 amount=-1
+kerning first=51 second=58 amount=-1
+kerning first=51 second=44 amount=-4
+kerning first=51 second=46 amount=-3
+kerning first=55 second=106 amount=-1
+kerning first=55 second=81 amount=-2
+kerning first=55 second=72 amount=-1
+kerning first=55 second=77 amount=-1
+kerning first=55 second=89 amount=-1
+kerning first=55 second=90 amount=-2
+kerning first=55 second=65 amount=-4
+kerning first=55 second=78 amount=-1
+kerning first=55 second=71 amount=-1
+kerning first=55 second=79 amount=-1
+kerning first=55 second=83 amount=-2
+kerning first=55 second=67 amount=-1
+kerning first=55 second=68 amount=-1
+kerning first=55 second=104 amount=-1
+kerning first=55 second=74 amount=-3
+kerning first=55 second=102 amount=-2
+kerning first=55 second=63 amount=-1
+kerning first=55 second=69 amount=-1
+kerning first=55 second=70 amount=-1
+kerning first=55 second=40 amount=-1
+kerning first=55 second=64 amount=-5
+kerning first=55 second=47 amount=-5
+kerning first=55 second=105 amount=-1
+kerning first=55 second=121 amount=-2
+kerning first=55 second=100 amount=-4
+kerning first=55 second=112 amount=-3
+kerning first=55 second=113 amount=-4
+kerning first=55 second=103 amount=-4
+kerning first=55 second=116 amount=-2
+kerning first=55 second=59 amount=-3
+kerning first=55 second=119 amount=-2
+kerning first=55 second=109 amount=-3
+kerning first=55 second=118 amount=-2
+kerning first=55 second=122 amount=-4
+kerning first=55 second=97 amount=-3
+kerning first=55 second=110 amount=-3
+kerning first=55 second=111 amount=-4
+kerning first=55 second=114 amount=-3
+kerning first=55 second=120 amount=-3
+kerning first=55 second=99 amount=-4
+kerning first=55 second=101 amount=-4
+kerning first=55 second=115 amount=-4
+kerning first=55 second=117 amount=-3
+kerning first=55 second=58 amount=-4
+kerning first=55 second=35 amount=-3
+kerning first=55 second=39 amount=1
+kerning first=55 second=44 amount=-5
+kerning first=55 second=46 amount=-6
+kerning first=55 second=45 amount=-4
+kerning first=66 second=72 amount=1
+kerning first=66 second=89 amount=-1
+kerning first=66 second=90 amount=-1
+kerning first=66 second=65 amount=-1
+kerning first=66 second=53 amount=-1
+kerning first=66 second=71 amount=1
+kerning first=66 second=51 amount=-2
+kerning first=66 second=55 amount=-1
+kerning first=66 second=67 amount=1
+kerning first=66 second=57 amount=-1
+kerning first=66 second=56 amount=-1
+kerning first=66 second=49 amount=-3
+kerning first=66 second=40 amount=1
+kerning first=66 second=41 amount=-1
+kerning first=66 second=108 amount=1
+kerning first=66 second=50 amount=-2
+kerning first=66 second=47 amount=-2
+kerning first=66 second=107 amount=1
+kerning first=66 second=105 amount=1
+kerning first=66 second=33 amount=1
+kerning first=66 second=100 amount=1
+kerning first=66 second=113 amount=1
+kerning first=66 second=103 amount=1
+kerning first=66 second=116 amount=1
+kerning first=66 second=119 amount=1
+kerning first=66 second=122 amount=-1
+kerning first=66 second=110 amount=1
+kerning first=66 second=111 amount=1
+kerning first=66 second=114 amount=1
+kerning first=66 second=99 amount=1
+kerning first=66 second=101 amount=1
+kerning first=66 second=117 amount=1
+kerning first=66 second=35 amount=1
+kerning first=66 second=44 amount=-3
+kerning first=66 second=46 amount=-2
+kerning first=66 second=45 amount=1
+kerning first=67 second=106 amount=1
+kerning first=67 second=81 amount=1
+kerning first=67 second=88 amount=-1
+kerning first=67 second=89 amount=-1
+kerning first=67 second=52 amount=1
+kerning first=67 second=71 amount=1
+kerning first=67 second=79 amount=1
+kerning first=67 second=83 amount=1
+kerning first=67 second=85 amount=1
+kerning first=67 second=51 amount=-1
+kerning first=67 second=55 amount=-1
+kerning first=67 second=66 amount=1
+kerning first=67 second=67 amount=1
+kerning first=67 second=80 amount=1
+kerning first=67 second=104 amount=1
+kerning first=67 second=74 amount=1
+kerning first=67 second=102 amount=1
+kerning first=67 second=56 amount=-1
+kerning first=67 second=69 amount=1
+kerning first=67 second=93 amount=-1
+kerning first=67 second=49 amount=-2
+kerning first=67 second=40 amount=1
+kerning first=67 second=108 amount=1
+kerning first=67 second=64 amount=1
+kerning first=67 second=50 amount=-1
+kerning first=67 second=47 amount=-1
+kerning first=67 second=92 amount=-1
+kerning first=67 second=107 amount=1
+kerning first=67 second=73 amount=1
+kerning first=67 second=105 amount=1
+kerning first=67 second=33 amount=1
+kerning first=67 second=121 amount=1
+kerning first=67 second=98 amount=1
+kerning first=67 second=100 amount=1
+kerning first=67 second=112 amount=1
+kerning first=67 second=113 amount=1
+kerning first=67 second=103 amount=1
+kerning first=67 second=116 amount=1
+kerning first=67 second=119 amount=2
+kerning first=67 second=109 amount=1
+kerning first=67 second=118 amount=2
+kerning first=67 second=97 amount=1
+kerning first=67 second=110 amount=1
+kerning first=67 second=111 amount=1
+kerning first=67 second=114 amount=1
+kerning first=67 second=120 amount=1
+kerning first=67 second=99 amount=1
+kerning first=67 second=101 amount=1
+kerning first=67 second=117 amount=1
+kerning first=67 second=35 amount=1
+kerning first=67 second=34 amount=1
+kerning first=67 second=39 amount=1
+kerning first=67 second=44 amount=-1
+kerning first=68 second=106 amount=1
+kerning first=68 second=87 amount=1
+kerning first=68 second=90 amount=-1
+kerning first=68 second=65 amount=-2
+kerning first=68 second=75 amount=1
+kerning first=68 second=52 amount=-1
+kerning first=68 second=86 amount=1
+kerning first=68 second=53 amount=-1
+kerning first=68 second=84 amount=1
+kerning first=68 second=85 amount=1
+kerning first=68 second=66 amount=1
+kerning first=68 second=67 amount=1
+kerning first=68 second=80 amount=1
+kerning first=68 second=104 amount=1
+kerning first=68 second=54 amount=-1
+kerning first=68 second=74 amount=-1
+kerning first=68 second=102 amount=1
+kerning first=68 second=63 amount=1
+kerning first=68 second=49 amount=-2
+kerning first=68 second=40 amount=1
+kerning first=68 second=108 amount=1
+kerning first=68 second=64 amount=-1
+kerning first=68 second=82 amount=1
+kerning first=68 second=50 amount=-1
+kerning first=68 second=47 amount=-3
+kerning first=68 second=107 amount=1
+kerning first=68 second=73 amount=1
+kerning first=68 second=105 amount=1
+kerning first=68 second=33 amount=1
+kerning first=68 second=121 amount=1
+kerning first=68 second=98 amount=1
+kerning first=68 second=112 amount=1
+kerning first=68 second=116 amount=1
+kerning first=68 second=119 amount=1
+kerning first=68 second=118 amount=1
+kerning first=68 second=110 amount=1
+kerning first=68 second=114 amount=1
+kerning first=68 second=120 amount=1
+kerning first=68 second=101 amount=-1
+kerning first=68 second=117 amount=1
+kerning first=68 second=34 amount=1
+kerning first=68 second=39 amount=1
+kerning first=68 second=44 amount=-4
+kerning first=68 second=46 amount=-3
+kerning first=80 second=106 amount=1
+kerning first=80 second=87 amount=1
+kerning first=80 second=72 amount=1
+kerning first=80 second=77 amount=1
+kerning first=80 second=88 amount=1
+kerning first=80 second=89 amount=1
+kerning first=80 second=65 amount=-2
+kerning first=80 second=75 amount=1
+kerning first=80 second=52 amount=-2
+kerning first=80 second=78 amount=1
+kerning first=80 second=86 amount=1
+kerning first=80 second=71 amount=1
+kerning first=80 second=79 amount=1
+kerning first=80 second=84 amount=1
+kerning first=80 second=85 amount=1
+kerning first=80 second=66 amount=1
+kerning first=80 second=67 amount=1
+kerning first=80 second=68 amount=1
+kerning first=80 second=80 amount=1
+kerning first=80 second=104 amount=1
+kerning first=80 second=54 amount=-1
+kerning first=80 second=74 amount=-3
+kerning first=80 second=76 amount=1
+kerning first=80 second=63 amount=1
+kerning first=80 second=69 amount=1
+kerning first=80 second=70 amount=1
+kerning first=80 second=93 amount=1
+kerning first=80 second=49 amount=-1
+kerning first=80 second=40 amount=1
+kerning first=80 second=41 amount=1
+kerning first=80 second=108 amount=1
+kerning first=80 second=64 amount=-2
+kerning first=80 second=82 amount=1
+kerning first=80 second=50 amount=-1
+kerning first=80 second=47 amount=-4
+kerning first=80 second=92 amount=1
+kerning first=80 second=107 amount=1
+kerning first=80 second=73 amount=1
+kerning first=80 second=105 amount=1
+kerning first=80 second=33 amount=1
+kerning first=80 second=121 amount=1
+kerning first=80 second=98 amount=1
+kerning first=80 second=100 amount=-1
+kerning first=80 second=113 amount=-1
+kerning first=80 second=103 amount=-1
+kerning first=80 second=116 amount=1
+kerning first=80 second=119 amount=1
+kerning first=80 second=118 amount=1
+kerning first=80 second=122 amount=-1
+kerning first=80 second=111 amount=-1
+kerning first=80 second=99 amount=-1
+kerning first=80 second=101 amount=-1
+kerning first=80 second=115 amount=-1
+kerning first=80 second=58 amount=-1
+kerning first=80 second=34 amount=2
+kerning first=80 second=39 amount=2
+kerning first=80 second=44 amount=-4
+kerning first=80 second=46 amount=-4
+kerning first=80 second=45 amount=-2
+kerning first=104 second=106 amount=1
+kerning first=104 second=52 amount=1
+kerning first=104 second=102 amount=1
+kerning first=104 second=63 amount=-1
+kerning first=104 second=49 amount=-3
+kerning first=104 second=40 amount=1
+kerning first=104 second=108 amount=1
+kerning first=104 second=64 amount=1
+kerning first=104 second=92 amount=-3
+kerning first=104 second=107 amount=1
+kerning first=104 second=105 amount=1
+kerning first=104 second=33 amount=1
+kerning first=104 second=121 amount=1
+kerning first=104 second=98 amount=1
+kerning first=104 second=100 amount=1
+kerning first=104 second=112 amount=1
+kerning first=104 second=113 amount=1
+kerning first=104 second=103 amount=1
+kerning first=104 second=116 amount=1
+kerning first=104 second=59 amount=1
+kerning first=104 second=119 amount=1
+kerning first=104 second=109 amount=1
+kerning first=104 second=118 amount=1
+kerning first=104 second=122 amount=1
+kerning first=104 second=97 amount=1
+kerning first=104 second=110 amount=1
+kerning first=104 second=111 amount=1
+kerning first=104 second=114 amount=1
+kerning first=104 second=120 amount=1
+kerning first=104 second=99 amount=1
+kerning first=104 second=101 amount=1
+kerning first=104 second=115 amount=1
+kerning first=104 second=117 amount=1
+kerning first=104 second=58 amount=1
+kerning first=104 second=35 amount=1
+kerning first=104 second=34 amount=-2
+kerning first=104 second=39 amount=-2
+kerning first=104 second=46 amount=1
+kerning first=104 second=45 amount=1
+kerning first=54 second=106 amount=-1
+kerning first=54 second=87 amount=-1
+kerning first=54 second=81 amount=-1
+kerning first=54 second=72 amount=-1
+kerning first=54 second=77 amount=-1
+kerning first=54 second=88 amount=-2
+kerning first=54 second=89 amount=-2
+kerning first=54 second=90 amount=-1
+kerning first=54 second=65 amount=-2
+kerning first=54 second=75 amount=-1
+kerning first=54 second=78 amount=-1
+kerning first=54 second=86 amount=-1
+kerning first=54 second=79 amount=-1
+kerning first=54 second=83 amount=-1
+kerning first=54 second=66 amount=-1
+kerning first=54 second=68 amount=-1
+kerning first=54 second=80 amount=-1
+kerning first=54 second=104 amount=-1
+kerning first=54 second=74 amount=-1
+kerning first=54 second=76 amount=-1
+kerning first=54 second=102 amount=-1
+kerning first=54 second=69 amount=-1
+kerning first=54 second=70 amount=-1
+kerning first=54 second=93 amount=-1
+kerning first=54 second=40 amount=-1
+kerning first=54 second=41 amount=-1
+kerning first=54 second=64 amount=-1
+kerning first=54 second=82 amount=-1
+kerning first=54 second=47 amount=-2
+kerning first=54 second=92 amount=-2
+kerning first=54 second=73 amount=-1
+kerning first=54 second=121 amount=-1
+kerning first=54 second=98 amount=-1
+kerning first=54 second=100 amount=-1
+kerning first=54 second=112 amount=-1
+kerning first=54 second=113 amount=-1
+kerning first=54 second=59 amount=-1
+kerning first=54 second=109 amount=-1
+kerning first=54 second=118 amount=-1
+kerning first=54 second=122 amount=-2
+kerning first=54 second=97 amount=-1
+kerning first=54 second=110 amount=-1
+kerning first=54 second=114 amount=-1
+kerning first=54 second=120 amount=-1
+kerning first=54 second=101 amount=-1
+kerning first=54 second=115 amount=-1
+kerning first=54 second=58 amount=-2
+kerning first=54 second=35 amount=-1
+kerning first=54 second=44 amount=-2
+kerning first=54 second=46 amount=-1
+kerning first=54 second=45 amount=-1
+kerning first=57 second=87 amount=-1
+kerning first=57 second=81 amount=-1
+kerning first=57 second=77 amount=-1
+kerning first=57 second=88 amount=-2
+kerning first=57 second=89 amount=-2
+kerning first=57 second=90 amount=-1
+kerning first=57 second=65 amount=-2
+kerning first=57 second=75 amount=-1
+kerning first=57 second=78 amount=-1
+kerning first=57 second=86 amount=-2
+kerning first=57 second=79 amount=-1
+kerning first=57 second=83 amount=-1
+kerning first=57 second=84 amount=-1
+kerning first=57 second=85 amount=-1
+kerning first=57 second=66 amount=-1
+kerning first=57 second=68 amount=-1
+kerning first=57 second=80 amount=-1
+kerning first=57 second=104 amount=-1
+kerning first=57 second=74 amount=-1
+kerning first=57 second=76 amount=-1
+kerning first=57 second=63 amount=-1
+kerning first=57 second=69 amount=-1
+kerning first=57 second=70 amount=-1
+kerning first=57 second=93 amount=-2
+kerning first=57 second=41 amount=-2
+kerning first=57 second=64 amount=-1
+kerning first=57 second=82 amount=-1
+kerning first=57 second=47 amount=-2
+kerning first=57 second=92 amount=-2
+kerning first=57 second=73 amount=-1
+kerning first=57 second=98 amount=-1
+kerning first=57 second=100 amount=-1
+kerning first=57 second=116 amount=1
+kerning first=57 second=59 amount=-1
+kerning first=57 second=119 amount=1
+kerning first=57 second=109 amount=-1
+kerning first=57 second=118 amount=1
+kerning first=57 second=122 amount=-1
+kerning first=57 second=101 amount=-1
+kerning first=57 second=115 amount=-1
+kerning first=57 second=58 amount=-1
+kerning first=57 second=34 amount=-1
+kerning first=57 second=44 amount=-3
+kerning first=57 second=46 amount=-2
+kerning first=48 second=87 amount=-1
+kerning first=48 second=77 amount=-1
+kerning first=48 second=88 amount=-1
+kerning first=48 second=89 amount=-2
+kerning first=48 second=90 amount=-1
+kerning first=48 second=65 amount=-2
+kerning first=48 second=75 amount=-1
+kerning first=48 second=78 amount=-1
+kerning first=48 second=86 amount=-1
+kerning first=48 second=84 amount=-1
+kerning first=48 second=85 amount=-1
+kerning first=48 second=66 amount=-1
+kerning first=48 second=68 amount=-1
+kerning first=48 second=80 amount=-1
+kerning first=48 second=104 amount=-1
+kerning first=48 second=74 amount=-1
+kerning first=48 second=76 amount=-1
+kerning first=48 second=63 amount=-1
+kerning first=48 second=69 amount=-1
+kerning first=48 second=70 amount=-1
+kerning first=48 second=93 amount=-2
+kerning first=48 second=41 amount=-1
+kerning first=48 second=64 amount=-1
+kerning first=48 second=82 amount=-1
+kerning first=48 second=47 amount=-1
+kerning first=48 second=92 amount=-2
+kerning first=48 second=73 amount=-1
+kerning first=48 second=116 amount=1
+kerning first=48 second=119 amount=1
+kerning first=48 second=109 amount=-1
+kerning first=48 second=118 amount=1
+kerning first=48 second=122 amount=-1
+kerning first=48 second=115 amount=-1
+kerning first=48 second=58 amount=-1
+kerning first=48 second=34 amount=-1
+kerning first=48 second=39 amount=-1
+kerning first=48 second=44 amount=-2
+kerning first=48 second=46 amount=-1
+kerning first=74 second=106 amount=1
+kerning first=74 second=87 amount=1
+kerning first=74 second=72 amount=1
+kerning first=74 second=77 amount=1
+kerning first=74 second=88 amount=1
+kerning first=74 second=89 amount=1
+kerning first=74 second=75 amount=1
+kerning first=74 second=78 amount=1
+kerning first=74 second=86 amount=1
+kerning first=74 second=71 amount=1
+kerning first=74 second=84 amount=1
+kerning first=74 second=85 amount=1
+kerning first=74 second=51 amount=-1
+kerning first=74 second=66 amount=1
+kerning first=74 second=67 amount=1
+kerning first=74 second=68 amount=1
+kerning first=74 second=80 amount=1
+kerning first=74 second=104 amount=1
+kerning first=74 second=54 amount=-1
+kerning first=74 second=57 amount=-1
+kerning first=74 second=76 amount=1
+kerning first=74 second=102 amount=1
+kerning first=74 second=56 amount=-1
+kerning first=74 second=63 amount=1
+kerning first=74 second=69 amount=1
+kerning first=74 second=93 amount=1
+kerning first=74 second=49 amount=-2
+kerning first=74 second=41 amount=1
+kerning first=74 second=108 amount=1
+kerning first=74 second=82 amount=1
+kerning first=74 second=92 amount=1
+kerning first=74 second=107 amount=1
+kerning first=74 second=73 amount=1
+kerning first=74 second=105 amount=1
+kerning first=74 second=33 amount=1
+kerning first=74 second=121 amount=1
+kerning first=74 second=98 amount=1
+kerning first=74 second=116 amount=1
+kerning first=74 second=119 amount=1
+kerning first=74 second=118 amount=1
+kerning first=74 second=97 amount=1
+kerning first=74 second=111 amount=1
+kerning first=74 second=114 amount=1
+kerning first=74 second=120 amount=1
+kerning first=74 second=115 amount=1
+kerning first=74 second=34 amount=1
+kerning first=74 second=39 amount=1
+kerning first=76 second=106 amount=1
+kerning first=76 second=87 amount=-2
+kerning first=76 second=88 amount=1
+kerning first=76 second=89 amount=-3
+kerning first=76 second=90 amount=1
+kerning first=76 second=52 amount=-1
+kerning first=76 second=86 amount=-2
+kerning first=76 second=53 amount=1
+kerning first=76 second=83 amount=1
+kerning first=76 second=84 amount=-2
+kerning first=76 second=67 amount=1
+kerning first=76 second=104 amount=1
+kerning first=76 second=54 amount=-1
+kerning first=76 second=102 amount=-1
+kerning first=76 second=63 amount=-2
+kerning first=76 second=49 amount=-3
+kerning first=76 second=41 amount=1
+kerning first=76 second=108 amount=1
+kerning first=76 second=47 amount=1
+kerning first=76 second=92 amount=-4
+kerning first=76 second=107 amount=1
+kerning first=76 second=105 amount=1
+kerning first=76 second=33 amount=1
+kerning first=76 second=121 amount=-1
+kerning first=76 second=98 amount=1
+kerning first=76 second=100 amount=1
+kerning first=76 second=112 amount=1
+kerning first=76 second=113 amount=1
+kerning first=76 second=103 amount=1
+kerning first=76 second=116 amount=-1
+kerning first=76 second=59 amount=1
+kerning first=76 second=122 amount=1
+kerning first=76 second=97 amount=1
+kerning first=76 second=110 amount=1
+kerning first=76 second=111 amount=1
+kerning first=76 second=114 amount=1
+kerning first=76 second=120 amount=1
+kerning first=76 second=99 amount=1
+kerning first=76 second=101 amount=1
+kerning first=76 second=115 amount=1
+kerning first=76 second=117 amount=1
+kerning first=76 second=58 amount=1
+kerning first=76 second=35 amount=-4
+kerning first=76 second=34 amount=-3
+kerning first=76 second=39 amount=-3
+kerning first=76 second=44 amount=1
+kerning first=76 second=46 amount=1
+kerning first=76 second=45 amount=-4
+kerning first=102 second=106 amount=2
+kerning first=102 second=53 amount=1
+kerning first=102 second=55 amount=-1
+kerning first=102 second=104 amount=1
+kerning first=102 second=54 amount=1
+kerning first=102 second=57 amount=1
+kerning first=102 second=48 amount=1
+kerning first=102 second=102 amount=2
+kerning first=102 second=93 amount=1
+kerning first=102 second=49 amount=-2
+kerning first=102 second=40 amount=2
+kerning first=102 second=41 amount=1
+kerning first=102 second=108 amount=2
+kerning first=102 second=50 amount=-1
+kerning first=102 second=47 amount=-1
+kerning first=102 second=92 amount=1
+kerning first=102 second=107 amount=2
+kerning first=102 second=105 amount=2
+kerning first=102 second=33 amount=2
+kerning first=102 second=121 amount=2
+kerning first=102 second=98 amount=1
+kerning first=102 second=100 amount=1
+kerning first=102 second=112 amount=2
+kerning first=102 second=113 amount=1
+kerning first=102 second=103 amount=1
+kerning first=102 second=116 amount=2
+kerning first=102 second=59 amount=1
+kerning first=102 second=119 amount=3
+kerning first=102 second=109 amount=1
+kerning first=102 second=118 amount=3
+kerning first=102 second=122 amount=1
+kerning first=102 second=97 amount=2
+kerning first=102 second=110 amount=2
+kerning first=102 second=111 amount=1
+kerning first=102 second=114 amount=2
+kerning first=102 second=120 amount=2
+kerning first=102 second=99 amount=1
+kerning first=102 second=101 amount=1
+kerning first=102 second=115 amount=1
+kerning first=102 second=117 amount=2
+kerning first=102 second=58 amount=1
+kerning first=102 second=35 amount=2
+kerning first=102 second=34 amount=2
+kerning first=102 second=39 amount=2
+kerning first=102 second=46 amount=-1
+kerning first=102 second=45 amount=-2
+kerning first=56 second=106 amount=-1
+kerning first=56 second=87 amount=-1
+kerning first=56 second=81 amount=-1
+kerning first=56 second=72 amount=-2
+kerning first=56 second=77 amount=-2
+kerning first=56 second=88 amount=-1
+kerning first=56 second=89 amount=-2
+kerning first=56 second=90 amount=-1
+kerning first=56 second=65 amount=-2
+kerning first=56 second=75 amount=-1
+kerning first=56 second=78 amount=-2
+kerning first=56 second=86 amount=-1
+kerning first=56 second=71 amount=-1
+kerning first=56 second=79 amount=-1
+kerning first=56 second=83 amount=-1
+kerning first=56 second=84 amount=-1
+kerning first=56 second=85 amount=-1
+kerning first=56 second=66 amount=-1
+kerning first=56 second=67 amount=-1
+kerning first=56 second=68 amount=-2
+kerning first=56 second=80 amount=-1
+kerning first=56 second=104 amount=-1
+kerning first=56 second=74 amount=-1
+kerning first=56 second=76 amount=-2
+kerning first=56 second=102 amount=-2
+kerning first=56 second=63 amount=-1
+kerning first=56 second=69 amount=-1
+kerning first=56 second=70 amount=-2
+kerning first=56 second=93 amount=-1
+kerning first=56 second=40 amount=-1
+kerning first=56 second=41 amount=-2
+kerning first=56 second=108 amount=-1
+kerning first=56 second=64 amount=-1
+kerning first=56 second=82 amount=-1
+kerning first=56 second=47 amount=-2
+kerning first=56 second=92 amount=-1
+kerning first=56 second=107 amount=-1
+kerning first=56 second=73 amount=-1
+kerning first=56 second=105 amount=-1
+kerning first=56 second=33 amount=-1
+kerning first=56 second=121 amount=-1
+kerning first=56 second=98 amount=-1
+kerning first=56 second=100 amount=-1
+kerning first=56 second=112 amount=-1
+kerning first=56 second=113 amount=-1
+kerning first=56 second=103 amount=-1
+kerning first=56 second=116 amount=-2
+kerning first=56 second=59 amount=-2
+kerning first=56 second=119 amount=-1
+kerning first=56 second=109 amount=-1
+kerning first=56 second=118 amount=-1
+kerning first=56 second=122 amount=-2
+kerning first=56 second=97 amount=-1
+kerning first=56 second=110 amount=-1
+kerning first=56 second=111 amount=-1
+kerning first=56 second=114 amount=-1
+kerning first=56 second=120 amount=-2
+kerning first=56 second=99 amount=-1
+kerning first=56 second=101 amount=-1
+kerning first=56 second=115 amount=-1
+kerning first=56 second=117 amount=-1
+kerning first=56 second=58 amount=-2
+kerning first=56 second=35 amount=-2
+kerning first=56 second=34 amount=-1
+kerning first=56 second=39 amount=-1
+kerning first=56 second=44 amount=-3
+kerning first=56 second=46 amount=-2
+kerning first=56 second=45 amount=-1
+kerning first=63 second=87 amount=1
+kerning first=63 second=88 amount=1
+kerning first=63 second=90 amount=-1
+kerning first=63 second=65 amount=-2
+kerning first=63 second=75 amount=1
+kerning first=63 second=52 amount=-2
+kerning first=63 second=86 amount=1
+kerning first=63 second=53 amount=-1
+kerning first=63 second=84 amount=1
+kerning first=63 second=85 amount=1
+kerning first=63 second=51 amount=-1
+kerning first=63 second=66 amount=1
+kerning first=63 second=80 amount=1
+kerning first=63 second=54 amount=-1
+kerning first=63 second=57 amount=-1
+kerning first=63 second=48 amount=-1
+kerning first=63 second=74 amount=-2
+kerning first=63 second=102 amount=-1
+kerning first=63 second=56 amount=-1
+kerning first=63 second=63 amount=1
+kerning first=63 second=49 amount=-2
+kerning first=63 second=108 amount=1
+kerning first=63 second=64 amount=-3
+kerning first=63 second=82 amount=1
+kerning first=63 second=50 amount=-1
+kerning first=63 second=47 amount=-2
+kerning first=63 second=107 amount=1
+kerning first=63 second=73 amount=1
+kerning first=63 second=105 amount=1
+kerning first=63 second=33 amount=1
+kerning first=63 second=98 amount=1
+kerning first=63 second=100 amount=-2
+kerning first=63 second=113 amount=-1
+kerning first=63 second=103 amount=-1
+kerning first=63 second=59 amount=-1
+kerning first=63 second=119 amount=1
+kerning first=63 second=118 amount=1
+kerning first=63 second=122 amount=-1
+kerning first=63 second=97 amount=-1
+kerning first=63 second=111 amount=-1
+kerning first=63 second=99 amount=-2
+kerning first=63 second=101 amount=-2
+kerning first=63 second=115 amount=-2
+kerning first=63 second=58 amount=-1
+kerning first=63 second=35 amount=-1
+kerning first=63 second=34 amount=1
+kerning first=63 second=39 amount=1
+kerning first=63 second=44 amount=-1
+kerning first=63 second=46 amount=-1
+kerning first=63 second=45 amount=-2
+kerning first=69 second=87 amount=1
+kerning first=69 second=81 amount=-1
+kerning first=69 second=88 amount=1
+kerning first=69 second=90 amount=1
+kerning first=69 second=75 amount=1
+kerning first=69 second=52 amount=-1
+kerning first=69 second=86 amount=1
+kerning first=69 second=85 amount=1
+kerning first=69 second=51 amount=-1
+kerning first=69 second=66 amount=1
+kerning first=69 second=80 amount=1
+kerning first=69 second=54 amount=-1
+kerning first=69 second=57 amount=-1
+kerning first=69 second=48 amount=-1
+kerning first=69 second=74 amount=-1
+kerning first=69 second=76 amount=1
+kerning first=69 second=102 amount=-1
+kerning first=69 second=56 amount=-1
+kerning first=69 second=63 amount=-1
+kerning first=69 second=93 amount=1
+kerning first=69 second=49 amount=-2
+kerning first=69 second=41 amount=1
+kerning first=69 second=108 amount=1
+kerning first=69 second=64 amount=-1
+kerning first=69 second=82 amount=1
+kerning first=69 second=92 amount=1
+kerning first=69 second=107 amount=1
+kerning first=69 second=73 amount=1
+kerning first=69 second=105 amount=1
+kerning first=69 second=33 amount=1
+kerning first=69 second=121 amount=-1
+kerning first=69 second=98 amount=1
+kerning first=69 second=118 amount=-1
+kerning first=69 second=97 amount=1
+kerning first=69 second=120 amount=1
+kerning first=69 second=35 amount=-1
+kerning first=69 second=34 amount=1
+kerning first=69 second=39 amount=1
+kerning first=69 second=46 amount=1
+kerning first=70 second=87 amount=1
+kerning first=70 second=88 amount=1
+kerning first=70 second=90 amount=-1
+kerning first=70 second=65 amount=-2
+kerning first=70 second=75 amount=1
+kerning first=70 second=86 amount=1
+kerning first=70 second=53 amount=-1
+kerning first=70 second=83 amount=-1
+kerning first=70 second=85 amount=1
+kerning first=70 second=51 amount=-2
+kerning first=70 second=66 amount=1
+kerning first=70 second=80 amount=1
+kerning first=70 second=54 amount=-1
+kerning first=70 second=57 amount=-1
+kerning first=70 second=48 amount=-1
+kerning first=70 second=74 amount=-2
+kerning first=70 second=76 amount=1
+kerning first=70 second=56 amount=-1
+kerning first=70 second=63 amount=-1
+kerning first=70 second=93 amount=1
+kerning first=70 second=49 amount=-2
+kerning first=70 second=41 amount=1
+kerning first=70 second=108 amount=1
+kerning first=70 second=64 amount=-1
+kerning first=70 second=82 amount=1
+kerning first=70 second=50 amount=-3
+kerning first=70 second=47 amount=-3
+kerning first=70 second=92 amount=1
+kerning first=70 second=107 amount=1
+kerning first=70 second=73 amount=1
+kerning first=70 second=105 amount=1
+kerning first=70 second=33 amount=1
+kerning first=70 second=98 amount=1
+kerning first=70 second=59 amount=-1
+kerning first=70 second=109 amount=-1
+kerning first=70 second=122 amount=-2
+kerning first=70 second=120 amount=-1
+kerning first=70 second=58 amount=-1
+kerning first=70 second=34 amount=1
+kerning first=70 second=39 amount=1
+kerning first=70 second=44 amount=-3
+kerning first=70 second=46 amount=-3
+kerning first=93 second=106 amount=1
+kerning first=93 second=88 amount=1
+kerning first=93 second=90 amount=1
+kerning first=93 second=65 amount=1
+kerning first=93 second=75 amount=1
+kerning first=93 second=78 amount=1
+kerning first=93 second=86 amount=1
+kerning first=93 second=83 amount=1
+kerning first=93 second=55 amount=1
+kerning first=93 second=66 amount=1
+kerning first=93 second=67 amount=1
+kerning first=93 second=80 amount=1
+kerning first=93 second=104 amount=1
+kerning first=93 second=54 amount=-1
+kerning first=93 second=56 amount=-1
+kerning first=93 second=69 amount=1
+kerning first=93 second=70 amount=1
+kerning first=93 second=49 amount=-3
+kerning first=93 second=41 amount=1
+kerning first=93 second=108 amount=1
+kerning first=93 second=82 amount=1
+kerning first=93 second=50 amount=1
+kerning first=93 second=47 amount=1
+kerning first=93 second=107 amount=1
+kerning first=93 second=73 amount=1
+kerning first=93 second=105 amount=1
+kerning first=93 second=33 amount=1
+kerning first=93 second=121 amount=1
+kerning first=93 second=98 amount=1
+kerning first=93 second=112 amount=1
+kerning first=93 second=103 amount=1
+kerning first=93 second=116 amount=1
+kerning first=93 second=59 amount=1
+kerning first=93 second=119 amount=1
+kerning first=93 second=118 amount=1
+kerning first=93 second=122 amount=1
+kerning first=93 second=97 amount=1
+kerning first=93 second=110 amount=1
+kerning first=93 second=111 amount=1
+kerning first=93 second=114 amount=1
+kerning first=93 second=120 amount=2
+kerning first=93 second=99 amount=1
+kerning first=93 second=115 amount=1
+kerning first=93 second=117 amount=1
+kerning first=93 second=58 amount=1
+kerning first=93 second=34 amount=1
+kerning first=93 second=39 amount=1
+kerning first=93 second=44 amount=1
+kerning first=93 second=46 amount=1
+kerning first=123 second=32 amount=1
+kerning first=125 second=112 amount=1
+kerning first=125 second=109 amount=1
+kerning first=125 second=110 amount=1
+kerning first=125 second=111 amount=1
+kerning first=49 second=106 amount=-3
+kerning first=49 second=87 amount=-3
+kerning first=49 second=81 amount=-4
+kerning first=49 second=72 amount=-4
+kerning first=49 second=77 amount=-4
+kerning first=49 second=88 amount=-3
+kerning first=49 second=89 amount=-4
+kerning first=49 second=90 amount=-3
+kerning first=49 second=65 amount=-3
+kerning first=49 second=75 amount=-3
+kerning first=49 second=78 amount=-3
+kerning first=49 second=86 amount=-3
+kerning first=49 second=71 amount=-4
+kerning first=49 second=79 amount=-4
+kerning first=49 second=83 amount=-3
+kerning first=49 second=84 amount=-4
+kerning first=49 second=85 amount=-4
+kerning first=49 second=66 amount=-3
+kerning first=49 second=67 amount=-4
+kerning first=49 second=68 amount=-4
+kerning first=49 second=80 amount=-3
+kerning first=49 second=104 amount=-3
+kerning first=49 second=74 amount=-4
+kerning first=49 second=76 amount=-3
+kerning first=49 second=102 amount=-4
+kerning first=49 second=63 amount=-4
+kerning first=49 second=69 amount=-3
+kerning first=49 second=70 amount=-3
+kerning first=49 second=93 amount=-4
+kerning first=49 second=40 amount=-4
+kerning first=49 second=41 amount=-3
+kerning first=49 second=108 amount=-3
+kerning first=49 second=64 amount=-4
+kerning first=49 second=82 amount=-3
+kerning first=49 second=47 amount=-3
+kerning first=49 second=92 amount=-4
+kerning first=49 second=107 amount=-3
+kerning first=49 second=73 amount=-3
+kerning first=49 second=105 amount=-3
+kerning first=49 second=33 amount=-3
+kerning first=49 second=121 amount=-3
+kerning first=49 second=98 amount=-3
+kerning first=49 second=100 amount=-4
+kerning first=49 second=112 amount=-3
+kerning first=49 second=113 amount=-4
+kerning first=49 second=103 amount=-3
+kerning first=49 second=116 amount=-3
+kerning first=49 second=59 amount=-3
+kerning first=49 second=119 amount=-3
+kerning first=49 second=109 amount=-4
+kerning first=49 second=118 amount=-3
+kerning first=49 second=122 amount=-3
+kerning first=49 second=97 amount=-3
+kerning first=49 second=110 amount=-3
+kerning first=49 second=111 amount=-3
+kerning first=49 second=114 amount=-3
+kerning first=49 second=120 amount=-2
+kerning first=49 second=99 amount=-3
+kerning first=49 second=101 amount=-4
+kerning first=49 second=115 amount=-3
+kerning first=49 second=117 amount=-3
+kerning first=49 second=58 amount=-3
+kerning first=49 second=35 amount=-4
+kerning first=49 second=34 amount=-3
+kerning first=49 second=39 amount=-3
+kerning first=49 second=44 amount=-3
+kerning first=49 second=46 amount=-3
+kerning first=49 second=45 amount=-4
+kerning first=40 second=106 amount=1
+kerning first=40 second=87 amount=1
+kerning first=40 second=81 amount=-1
+kerning first=40 second=88 amount=1
+kerning first=40 second=89 amount=1
+kerning first=40 second=90 amount=1
+kerning first=40 second=65 amount=1
+kerning first=40 second=75 amount=1
+kerning first=40 second=52 amount=-1
+kerning first=40 second=78 amount=1
+kerning first=40 second=86 amount=1
+kerning first=40 second=85 amount=1
+kerning first=40 second=51 amount=-1
+kerning first=40 second=66 amount=1
+kerning first=40 second=68 amount=1
+kerning first=40 second=80 amount=1
+kerning first=40 second=104 amount=1
+kerning first=40 second=54 amount=-2
+kerning first=40 second=57 amount=-1
+kerning first=40 second=48 amount=-1
+kerning first=40 second=74 amount=-1
+kerning first=40 second=76 amount=1
+kerning first=40 second=56 amount=-1
+kerning first=40 second=69 amount=1
+kerning first=40 second=93 amount=1
+kerning first=40 second=49 amount=-2
+kerning first=40 second=41 amount=1
+kerning first=40 second=108 amount=1
+kerning first=40 second=64 amount=-1
+kerning first=40 second=82 amount=1
+kerning first=40 second=47 amount=1
+kerning first=40 second=92 amount=1
+kerning first=40 second=107 amount=1
+kerning first=40 second=73 amount=1
+kerning first=40 second=105 amount=1
+kerning first=40 second=33 amount=1
+kerning first=40 second=98 amount=1
+kerning first=40 second=112 amount=1
+kerning first=40 second=59 amount=1
+kerning first=40 second=122 amount=1
+kerning first=40 second=97 amount=1
+kerning first=40 second=110 amount=1
+kerning first=40 second=114 amount=1
+kerning first=40 second=120 amount=1
+kerning first=40 second=58 amount=1
+kerning first=40 second=35 amount=-1
+kerning first=40 second=34 amount=1
+kerning first=40 second=39 amount=1
+kerning first=40 second=44 amount=1
+kerning first=40 second=46 amount=1
+kerning first=40 second=45 amount=-1
+kerning first=41 second=106 amount=1
+kerning first=41 second=81 amount=1
+kerning first=41 second=72 amount=1
+kerning first=41 second=52 amount=1
+kerning first=41 second=71 amount=1
+kerning first=41 second=79 amount=1
+kerning first=41 second=83 amount=1
+kerning first=41 second=85 amount=1
+kerning first=41 second=55 amount=-1
+kerning first=41 second=66 amount=1
+kerning first=41 second=67 amount=1
+kerning first=41 second=80 amount=1
+kerning first=41 second=104 amount=1
+kerning first=41 second=74 amount=1
+kerning first=41 second=102 amount=1
+kerning first=41 second=56 amount=-1
+kerning first=41 second=63 amount=1
+kerning first=41 second=69 amount=1
+kerning first=41 second=49 amount=-2
+kerning first=41 second=40 amount=1
+kerning first=41 second=108 amount=1
+kerning first=41 second=50 amount=-1
+kerning first=41 second=107 amount=1
+kerning first=41 second=73 amount=1
+kerning first=41 second=105 amount=1
+kerning first=41 second=33 amount=1
+kerning first=41 second=121 amount=1
+kerning first=41 second=98 amount=1
+kerning first=41 second=100 amount=1
+kerning first=41 second=112 amount=1
+kerning first=41 second=113 amount=1
+kerning first=41 second=103 amount=1
+kerning first=41 second=116 amount=2
+kerning first=41 second=59 amount=1
+kerning first=41 second=119 amount=2
+kerning first=41 second=109 amount=1
+kerning first=41 second=118 amount=2
+kerning first=41 second=97 amount=1
+kerning first=41 second=110 amount=1
+kerning first=41 second=111 amount=1
+kerning first=41 second=114 amount=1
+kerning first=41 second=120 amount=1
+kerning first=41 second=99 amount=1
+kerning first=41 second=101 amount=1
+kerning first=41 second=115 amount=1
+kerning first=41 second=117 amount=1
+kerning first=41 second=35 amount=1
+kerning first=41 second=34 amount=1
+kerning first=41 second=39 amount=1
+kerning first=41 second=44 amount=-1
+kerning first=41 second=45 amount=1
+kerning first=108 second=106 amount=1
+kerning first=108 second=104 amount=1
+kerning first=108 second=102 amount=1
+kerning first=108 second=63 amount=1
+kerning first=108 second=93 amount=1
+kerning first=108 second=49 amount=-2
+kerning first=108 second=40 amount=1
+kerning first=108 second=41 amount=1
+kerning first=108 second=108 amount=1
+kerning first=108 second=50 amount=1
+kerning first=108 second=47 amount=1
+kerning first=108 second=92 amount=1
+kerning first=108 second=107 amount=1
+kerning first=108 second=105 amount=1
+kerning first=108 second=33 amount=1
+kerning first=108 second=121 amount=1
+kerning first=108 second=98 amount=1
+kerning first=108 second=100 amount=1
+kerning first=108 second=112 amount=1
+kerning first=108 second=113 amount=1
+kerning first=108 second=103 amount=1
+kerning first=108 second=116 amount=2
+kerning first=108 second=59 amount=2
+kerning first=108 second=119 amount=2
+kerning first=108 second=118 amount=2
+kerning first=108 second=122 amount=1
+kerning first=108 second=97 amount=1
+kerning first=108 second=110 amount=1
+kerning first=108 second=111 amount=1
+kerning first=108 second=114 amount=1
+kerning first=108 second=120 amount=1
+kerning first=108 second=99 amount=1
+kerning first=108 second=101 amount=1
+kerning first=108 second=115 amount=1
+kerning first=108 second=117 amount=1
+kerning first=108 second=58 amount=1
+kerning first=108 second=35 amount=1
+kerning first=108 second=34 amount=1
+kerning first=108 second=39 amount=1
+kerning first=108 second=44 amount=1
+kerning first=108 second=46 amount=1
+kerning first=108 second=45 amount=1
+kerning first=64 second=106 amount=1
+kerning first=64 second=87 amount=-1
+kerning first=64 second=81 amount=1
+kerning first=64 second=72 amount=1
+kerning first=64 second=88 amount=-2
+kerning first=64 second=89 amount=-2
+kerning first=64 second=90 amount=-1
+kerning first=64 second=65 amount=-1
+kerning first=64 second=52 amount=1
+kerning first=64 second=86 amount=-1
+kerning first=64 second=71 amount=1
+kerning first=64 second=79 amount=1
+kerning first=64 second=84 amount=-2
+kerning first=64 second=51 amount=-2
+kerning first=64 second=55 amount=-2
+kerning first=64 second=67 amount=1
+kerning first=64 second=57 amount=-1
+kerning first=64 second=74 amount=1
+kerning first=64 second=102 amount=1
+kerning first=64 second=56 amount=-1
+kerning first=64 second=63 amount=-1
+kerning first=64 second=93 amount=-3
+kerning first=64 second=49 amount=-4
+kerning first=64 second=40 amount=1
+kerning first=64 second=41 amount=-1
+kerning first=64 second=108 amount=1
+kerning first=64 second=50 amount=-3
+kerning first=64 second=47 amount=-1
+kerning first=64 second=92 amount=-3
+kerning first=64 second=107 amount=1
+kerning first=64 second=105 amount=1
+kerning first=64 second=33 amount=1
+kerning first=64 second=121 amount=1
+kerning first=64 second=100 amount=1
+kerning first=64 second=113 amount=1
+kerning first=64 second=103 amount=1
+kerning first=64 second=116 amount=1
+kerning first=64 second=119 amount=1
+kerning first=64 second=118 amount=1
+kerning first=64 second=122 amount=-1
+kerning first=64 second=97 amount=1
+kerning first=64 second=110 amount=1
+kerning first=64 second=111 amount=1
+kerning first=64 second=114 amount=1
+kerning first=64 second=99 amount=1
+kerning first=64 second=101 amount=1
+kerning first=64 second=117 amount=1
+kerning first=64 second=35 amount=1
+kerning first=64 second=34 amount=-2
+kerning first=64 second=39 amount=-2
+kerning first=64 second=44 amount=-3
+kerning first=64 second=46 amount=-2
+kerning first=64 second=45 amount=1
+kerning first=82 second=106 amount=1
+kerning first=82 second=72 amount=1
+kerning first=82 second=77 amount=1
+kerning first=82 second=88 amount=2
+kerning first=82 second=89 amount=-1
+kerning first=82 second=90 amount=2
+kerning first=82 second=65 amount=1
+kerning first=82 second=75 amount=1
+kerning first=82 second=52 amount=-3
+kerning first=82 second=78 amount=1
+kerning first=82 second=53 amount=1
+kerning first=82 second=55 amount=1
+kerning first=82 second=66 amount=1
+kerning first=82 second=67 amount=1
+kerning first=82 second=68 amount=1
+kerning first=82 second=80 amount=1
+kerning first=82 second=104 amount=1
+kerning first=82 second=54 amount=-1
+kerning first=82 second=57 amount=-1
+kerning first=82 second=74 amount=-1
+kerning first=82 second=76 amount=1
+kerning first=82 second=63 amount=-1
+kerning first=82 second=69 amount=1
+kerning first=82 second=70 amount=1
+kerning first=82 second=93 amount=1
+kerning first=82 second=49 amount=-2
+kerning first=82 second=40 amount=1
+kerning first=82 second=41 amount=1
+kerning first=82 second=108 amount=2
+kerning first=82 second=82 amount=1
+kerning first=82 second=50 amount=1
+kerning first=82 second=47 amount=1
+kerning first=82 second=107 amount=1
+kerning first=82 second=73 amount=1
+kerning first=82 second=105 amount=1
+kerning first=82 second=33 amount=1
+kerning first=82 second=121 amount=-1
+kerning first=82 second=98 amount=1
+kerning first=82 second=100 amount=1
+kerning first=82 second=112 amount=1
+kerning first=82 second=113 amount=1
+kerning first=82 second=103 amount=1
+kerning first=82 second=59 amount=1
+kerning first=82 second=122 amount=1
+kerning first=82 second=97 amount=2
+kerning first=82 second=110 amount=1
+kerning first=82 second=111 amount=1
+kerning first=82 second=114 amount=1
+kerning first=82 second=120 amount=2
+kerning first=82 second=99 amount=1
+kerning first=82 second=101 amount=1
+kerning first=82 second=115 amount=1
+kerning first=82 second=117 amount=1
+kerning first=82 second=58 amount=1
+kerning first=82 second=35 amount=-3
+kerning first=82 second=44 amount=2
+kerning first=82 second=46 amount=2
+kerning first=82 second=45 amount=-4
+kerning first=50 second=106 amount=1
+kerning first=50 second=81 amount=-1
+kerning first=50 second=88 amount=1
+kerning first=50 second=90 amount=1
+kerning first=50 second=74 amount=-1
+kerning first=50 second=41 amount=1
+kerning first=50 second=108 amount=1
+kerning first=50 second=47 amount=1
+kerning first=50 second=107 amount=1
+kerning first=50 second=105 amount=1
+kerning first=50 second=119 amount=1
+kerning first=50 second=118 amount=1
+kerning first=50 second=122 amount=1
+kerning first=50 second=97 amount=1
+kerning first=50 second=110 amount=1
+kerning first=50 second=120 amount=1
+kerning first=50 second=115 amount=1
+kerning first=50 second=35 amount=-1
+kerning first=50 second=34 amount=1
+kerning first=50 second=39 amount=1
+kerning first=50 second=46 amount=1
+kerning first=50 second=45 amount=-2
+kerning first=47 second=87 amount=1
+kerning first=47 second=81 amount=-2
+kerning first=47 second=88 amount=1
+kerning first=47 second=90 amount=-1
+kerning first=47 second=65 amount=-4
+kerning first=47 second=75 amount=1
+kerning first=47 second=52 amount=-4
+kerning first=47 second=86 amount=1
+kerning first=47 second=53 amount=-1
+kerning first=47 second=71 amount=-1
+kerning first=47 second=79 amount=-1
+kerning first=47 second=83 amount=-1
+kerning first=47 second=51 amount=-2
+kerning first=47 second=55 amount=-1
+kerning first=47 second=66 amount=1
+kerning first=47 second=67 amount=-1
+kerning first=47 second=54 amount=-2
+kerning first=47 second=57 amount=-2
+kerning first=47 second=48 amount=-2
+kerning first=47 second=74 amount=-4
+kerning first=47 second=102 amount=-2
+kerning first=47 second=56 amount=-2
+kerning first=47 second=63 amount=-1
+kerning first=47 second=49 amount=-2
+kerning first=47 second=40 amount=-1
+kerning first=47 second=64 amount=-5
+kerning first=47 second=50 amount=-3
+kerning first=47 second=47 amount=-6
+kerning first=47 second=121 amount=-2
+kerning first=47 second=100 amount=-3
+kerning first=47 second=112 amount=-2
+kerning first=47 second=113 amount=-3
+kerning first=47 second=103 amount=-3
+kerning first=47 second=116 amount=-2
+kerning first=47 second=59 amount=-3
+kerning first=47 second=119 amount=-1
+kerning first=47 second=109 amount=-2
+kerning first=47 second=118 amount=-1
+kerning first=47 second=122 amount=-3
+kerning first=47 second=97 amount=-3
+kerning first=47 second=110 amount=-2
+kerning first=47 second=111 amount=-3
+kerning first=47 second=114 amount=-2
+kerning first=47 second=120 amount=-2
+kerning first=47 second=99 amount=-4
+kerning first=47 second=101 amount=-4
+kerning first=47 second=115 amount=-4
+kerning first=47 second=117 amount=-2
+kerning first=47 second=58 amount=-3
+kerning first=47 second=35 amount=-2
+kerning first=47 second=34 amount=1
+kerning first=47 second=39 amount=1
+kerning first=47 second=44 amount=-4
+kerning first=47 second=46 amount=-5
+kerning first=47 second=45 amount=-4
+kerning first=92 second=87 amount=-3
+kerning first=92 second=81 amount=-1
+kerning first=92 second=88 amount=1
+kerning first=92 second=89 amount=-3
+kerning first=92 second=52 amount=-2
+kerning first=92 second=86 amount=-2
+kerning first=92 second=71 amount=-1
+kerning first=92 second=79 amount=-1
+kerning first=92 second=83 amount=-1
+kerning first=92 second=84 amount=-2
+kerning first=92 second=85 amount=-1
+kerning first=92 second=51 amount=-1
+kerning first=92 second=54 amount=-2
+kerning first=92 second=57 amount=-1
+kerning first=92 second=48 amount=-1
+kerning first=92 second=74 amount=-1
+kerning first=92 second=102 amount=-2
+kerning first=92 second=56 amount=-1
+kerning first=92 second=63 amount=-2
+kerning first=92 second=93 amount=-1
+kerning first=92 second=49 amount=-3
+kerning first=92 second=108 amount=1
+kerning first=92 second=64 amount=-1
+kerning first=92 second=92 amount=-4
+kerning first=92 second=121 amount=-2
+kerning first=92 second=116 amount=-1
+kerning first=92 second=59 amount=1
+kerning first=92 second=118 amount=-1
+kerning first=92 second=122 amount=1
+kerning first=92 second=97 amount=1
+kerning first=92 second=110 amount=1
+kerning first=92 second=114 amount=1
+kerning first=92 second=120 amount=1
+kerning first=92 second=115 amount=1
+kerning first=92 second=58 amount=1
+kerning first=92 second=35 amount=-3
+kerning first=92 second=34 amount=-6
+kerning first=92 second=39 amount=-4
+kerning first=92 second=44 amount=1
+kerning first=92 second=46 amount=1
+kerning first=92 second=45 amount=-2
+kerning first=107 second=106 amount=1
+kerning first=107 second=52 amount=-1
+kerning first=107 second=53 amount=1
+kerning first=107 second=55 amount=1
+kerning first=107 second=104 amount=1
+kerning first=107 second=102 amount=1
+kerning first=107 second=49 amount=-2
+kerning first=107 second=40 amount=1
+kerning first=107 second=41 amount=1
+kerning first=107 second=108 amount=1
+kerning first=107 second=50 amount=1
+kerning first=107 second=47 amount=1
+kerning first=107 second=92 amount=-2
+kerning first=107 second=107 amount=1
+kerning first=107 second=105 amount=1
+kerning first=107 second=33 amount=1
+kerning first=107 second=121 amount=2
+kerning first=107 second=98 amount=1
+kerning first=107 second=100 amount=1
+kerning first=107 second=112 amount=1
+kerning first=107 second=113 amount=1
+kerning first=107 second=103 amount=1
+kerning first=107 second=116 amount=1
+kerning first=107 second=59 amount=2
+kerning first=107 second=119 amount=2
+kerning first=107 second=109 amount=1
+kerning first=107 second=118 amount=2
+kerning first=107 second=122 amount=2
+kerning first=107 second=97 amount=2
+kerning first=107 second=110 amount=2
+kerning first=107 second=111 amount=1
+kerning first=107 second=114 amount=1
+kerning first=107 second=120 amount=2
+kerning first=107 second=99 amount=1
+kerning first=107 second=101 amount=1
+kerning first=107 second=115 amount=2
+kerning first=107 second=117 amount=1
+kerning first=107 second=58 amount=1
+kerning first=107 second=35 amount=1
+kerning first=107 second=34 amount=-1
+kerning first=107 second=39 amount=-1
+kerning first=107 second=44 amount=2
+kerning first=107 second=46 amount=2
+kerning first=107 second=45 amount=-2
+kerning first=73 second=106 amount=1
+kerning first=73 second=87 amount=1
+kerning first=73 second=72 amount=1
+kerning first=73 second=88 amount=1
+kerning first=73 second=90 amount=1
+kerning first=73 second=65 amount=1
+kerning first=73 second=75 amount=1
+kerning first=73 second=86 amount=1
+kerning first=73 second=71 amount=1
+kerning first=73 second=83 amount=1
+kerning first=73 second=85 amount=1
+kerning first=73 second=66 amount=1
+kerning first=73 second=67 amount=1
+kerning first=73 second=80 amount=1
+kerning first=73 second=54 amount=-1
+kerning first=73 second=76 amount=1
+kerning first=73 second=102 amount=1
+kerning first=73 second=56 amount=-1
+kerning first=73 second=93 amount=1
+kerning first=73 second=49 amount=-2
+kerning first=73 second=41 amount=1
+kerning first=73 second=108 amount=1
+kerning first=73 second=82 amount=1
+kerning first=73 second=47 amount=1
+kerning first=73 second=92 amount=1
+kerning first=73 second=107 amount=1
+kerning first=73 second=73 amount=1
+kerning first=73 second=105 amount=1
+kerning first=73 second=33 amount=1
+kerning first=73 second=121 amount=1
+kerning first=73 second=98 amount=1
+kerning first=73 second=112 amount=1
+kerning first=73 second=113 amount=1
+kerning first=73 second=103 amount=1
+kerning first=73 second=116 amount=1
+kerning first=73 second=59 amount=1
+kerning first=73 second=119 amount=1
+kerning first=73 second=118 amount=1
+kerning first=73 second=122 amount=1
+kerning first=73 second=97 amount=1
+kerning first=73 second=110 amount=1
+kerning first=73 second=111 amount=1
+kerning first=73 second=114 amount=1
+kerning first=73 second=120 amount=1
+kerning first=73 second=99 amount=1
+kerning first=73 second=115 amount=1
+kerning first=73 second=117 amount=1
+kerning first=73 second=58 amount=1
+kerning first=73 second=34 amount=1
+kerning first=73 second=39 amount=1
+kerning first=73 second=44 amount=1
+kerning first=73 second=46 amount=1
+kerning first=105 second=106 amount=1
+kerning first=105 second=104 amount=1
+kerning first=105 second=102 amount=1
+kerning first=105 second=63 amount=1
+kerning first=105 second=93 amount=1
+kerning first=105 second=49 amount=-2
+kerning first=105 second=40 amount=1
+kerning first=105 second=41 amount=1
+kerning first=105 second=108 amount=1
+kerning first=105 second=47 amount=1
+kerning first=105 second=92 amount=1
+kerning first=105 second=107 amount=1
+kerning first=105 second=105 amount=1
+kerning first=105 second=33 amount=1
+kerning first=105 second=121 amount=2
+kerning first=105 second=98 amount=1
+kerning first=105 second=100 amount=1
+kerning first=105 second=112 amount=1
+kerning first=105 second=113 amount=1
+kerning first=105 second=103 amount=1
+kerning first=105 second=116 amount=2
+kerning first=105 second=59 amount=2
+kerning first=105 second=119 amount=2
+kerning first=105 second=109 amount=1
+kerning first=105 second=118 amount=2
+kerning first=105 second=122 amount=1
+kerning first=105 second=97 amount=1
+kerning first=105 second=110 amount=1
+kerning first=105 second=111 amount=1
+kerning first=105 second=114 amount=1
+kerning first=105 second=120 amount=1
+kerning first=105 second=99 amount=1
+kerning first=105 second=115 amount=1
+kerning first=105 second=117 amount=1
+kerning first=105 second=58 amount=1
+kerning first=105 second=35 amount=1
+kerning first=105 second=34 amount=1
+kerning first=105 second=39 amount=1
+kerning first=105 second=44 amount=1
+kerning first=105 second=46 amount=1
+kerning first=33 second=106 amount=1
+kerning first=33 second=87 amount=1
+kerning first=33 second=81 amount=1
+kerning first=33 second=72 amount=1
+kerning first=33 second=88 amount=1
+kerning first=33 second=89 amount=1
+kerning first=33 second=90 amount=1
+kerning first=33 second=65 amount=1
+kerning first=33 second=75 amount=1
+kerning first=33 second=52 amount=1
+kerning first=33 second=78 amount=1
+kerning first=33 second=86 amount=1
+kerning first=33 second=53 amount=2
+kerning first=33 second=71 amount=1
+kerning first=33 second=79 amount=1
+kerning first=33 second=83 amount=1
+kerning first=33 second=84 amount=1
+kerning first=33 second=85 amount=1
+kerning first=33 second=66 amount=1
+kerning first=33 second=67 amount=1
+kerning first=33 second=68 amount=1
+kerning first=33 second=80 amount=1
+kerning first=33 second=104 amount=1
+kerning first=33 second=74 amount=1
+kerning first=33 second=76 amount=1
+kerning first=33 second=102 amount=1
+kerning first=33 second=63 amount=1
+kerning first=33 second=69 amount=1
+kerning first=33 second=93 amount=1
+kerning first=33 second=49 amount=-2
+kerning first=33 second=40 amount=1
+kerning first=33 second=41 amount=1
+kerning first=33 second=108 amount=1
+kerning first=33 second=82 amount=1
+kerning first=33 second=47 amount=1
+kerning first=33 second=92 amount=1
+kerning first=33 second=107 amount=1
+kerning first=33 second=73 amount=2
+kerning first=33 second=105 amount=1
+kerning first=33 second=33 amount=1
+kerning first=33 second=121 amount=1
+kerning first=33 second=98 amount=1
+kerning first=33 second=100 amount=1
+kerning first=33 second=112 amount=1
+kerning first=33 second=113 amount=1
+kerning first=33 second=103 amount=1
+kerning first=33 second=116 amount=2
+kerning first=33 second=59 amount=1
+kerning first=33 second=119 amount=2
+kerning first=33 second=118 amount=2
+kerning first=33 second=122 amount=1
+kerning first=33 second=97 amount=1
+kerning first=33 second=110 amount=1
+kerning first=33 second=111 amount=1
+kerning first=33 second=114 amount=1
+kerning first=33 second=120 amount=1
+kerning first=33 second=99 amount=1
+kerning first=33 second=101 amount=1
+kerning first=33 second=115 amount=1
+kerning first=33 second=117 amount=1
+kerning first=33 second=58 amount=1
+kerning first=33 second=35 amount=1
+kerning first=33 second=43 amount=1
+kerning first=33 second=34 amount=1
+kerning first=33 second=39 amount=1
+kerning first=33 second=44 amount=1
+kerning first=33 second=46 amount=1
+kerning first=33 second=45 amount=1
+kerning first=121 second=106 amount=1
+kerning first=121 second=51 amount=-1
+kerning first=121 second=55 amount=-3
+kerning first=121 second=104 amount=1
+kerning first=121 second=102 amount=1
+kerning first=121 second=93 amount=-3
+kerning first=121 second=49 amount=-3
+kerning first=121 second=40 amount=1
+kerning first=121 second=41 amount=-1
+kerning first=121 second=108 amount=1
+kerning first=121 second=64 amount=-1
+kerning first=121 second=50 amount=-2
+kerning first=121 second=47 amount=-2
+kerning first=121 second=92 amount=-2
+kerning first=121 second=107 amount=1
+kerning first=121 second=105 amount=1
+kerning first=121 second=33 amount=1
+kerning first=121 second=121 amount=1
+kerning first=121 second=98 amount=1
+kerning first=121 second=112 amount=1
+kerning first=121 second=116 amount=2
+kerning first=121 second=59 amount=1
+kerning first=121 second=119 amount=2
+kerning first=121 second=109 amount=1
+kerning first=121 second=118 amount=2
+kerning first=121 second=97 amount=1
+kerning first=121 second=110 amount=1
+kerning first=121 second=111 amount=1
+kerning first=121 second=114 amount=1
+kerning first=121 second=120 amount=1
+kerning first=121 second=117 amount=1
+kerning first=121 second=35 amount=1
+kerning first=121 second=44 amount=-2
+kerning first=121 second=46 amount=-2
+kerning first=121 second=32 amount=1
+kerning first=98 second=52 amount=1
+kerning first=98 second=102 amount=1
+kerning first=98 second=56 amount=-1
+kerning first=98 second=63 amount=-1
+kerning first=98 second=93 amount=-1
+kerning first=98 second=49 amount=-4
+kerning first=98 second=40 amount=1
+kerning first=98 second=108 amount=1
+kerning first=98 second=92 amount=-3
+kerning first=98 second=107 amount=1
+kerning first=98 second=105 amount=1
+kerning first=98 second=33 amount=1
+kerning first=98 second=100 amount=1
+kerning first=98 second=112 amount=1
+kerning first=98 second=113 amount=1
+kerning first=98 second=103 amount=1
+kerning first=98 second=116 amount=1
+kerning first=98 second=119 amount=1
+kerning first=98 second=118 amount=1
+kerning first=98 second=97 amount=1
+kerning first=98 second=110 amount=1
+kerning first=98 second=111 amount=1
+kerning first=98 second=114 amount=1
+kerning first=98 second=120 amount=1
+kerning first=98 second=99 amount=1
+kerning first=98 second=101 amount=1
+kerning first=98 second=115 amount=1
+kerning first=98 second=117 amount=1
+kerning first=98 second=35 amount=1
+kerning first=98 second=34 amount=-3
+kerning first=98 second=39 amount=-3
+kerning first=98 second=46 amount=1
+kerning first=98 second=45 amount=1
+kerning first=100 second=106 amount=1
+kerning first=100 second=102 amount=1
+kerning first=100 second=56 amount=-1
+kerning first=100 second=63 amount=1
+kerning first=100 second=93 amount=1
+kerning first=100 second=49 amount=-2
+kerning first=100 second=41 amount=1
+kerning first=100 second=108 amount=1
+kerning first=100 second=47 amount=1
+kerning first=100 second=92 amount=1
+kerning first=100 second=107 amount=1
+kerning first=100 second=105 amount=1
+kerning first=100 second=33 amount=1
+kerning first=100 second=121 amount=1
+kerning first=100 second=98 amount=1
+kerning first=100 second=112 amount=1
+kerning first=100 second=113 amount=1
+kerning first=100 second=103 amount=1
+kerning first=100 second=116 amount=1
+kerning first=100 second=59 amount=1
+kerning first=100 second=119 amount=2
+kerning first=100 second=118 amount=1
+kerning first=100 second=122 amount=1
+kerning first=100 second=97 amount=1
+kerning first=100 second=110 amount=1
+kerning first=100 second=111 amount=1
+kerning first=100 second=114 amount=1
+kerning first=100 second=120 amount=1
+kerning first=100 second=99 amount=1
+kerning first=100 second=115 amount=1
+kerning first=100 second=117 amount=1
+kerning first=100 second=58 amount=1
+kerning first=100 second=34 amount=1
+kerning first=100 second=39 amount=1
+kerning first=100 second=44 amount=1
+kerning first=100 second=46 amount=1
+kerning first=112 second=106 amount=1
+kerning first=112 second=52 amount=1
+kerning first=112 second=104 amount=1
+kerning first=112 second=102 amount=1
+kerning first=112 second=63 amount=-1
+kerning first=112 second=93 amount=-1
+kerning first=112 second=49 amount=-3
+kerning first=112 second=40 amount=1
+kerning first=112 second=108 amount=1
+kerning first=112 second=50 amount=-1
+kerning first=112 second=92 amount=-3
+kerning first=112 second=107 amount=1
+kerning first=112 second=105 amount=1
+kerning first=112 second=33 amount=1
+kerning first=112 second=98 amount=1
+kerning first=112 second=100 amount=1
+kerning first=112 second=113 amount=1
+kerning first=112 second=103 amount=1
+kerning first=112 second=116 amount=2
+kerning first=112 second=119 amount=1
+kerning first=112 second=118 amount=1
+kerning first=112 second=97 amount=1
+kerning first=112 second=110 amount=1
+kerning first=112 second=111 amount=1
+kerning first=112 second=114 amount=1
+kerning first=112 second=120 amount=1
+kerning first=112 second=99 amount=1
+kerning first=112 second=101 amount=1
+kerning first=112 second=115 amount=1
+kerning first=112 second=117 amount=1
+kerning first=112 second=35 amount=1
+kerning first=112 second=34 amount=-2
+kerning first=112 second=39 amount=-2
+kerning first=112 second=44 amount=-1
+kerning first=112 second=45 amount=1
+kerning first=113 second=106 amount=3
+kerning first=113 second=52 amount=1
+kerning first=113 second=104 amount=1
+kerning first=113 second=102 amount=1
+kerning first=113 second=49 amount=-3
+kerning first=113 second=40 amount=1
+kerning first=113 second=41 amount=1
+kerning first=113 second=108 amount=1
+kerning first=113 second=47 amount=1
+kerning first=113 second=92 amount=-2
+kerning first=113 second=107 amount=1
+kerning first=113 second=105 amount=1
+kerning first=113 second=33 amount=1
+kerning first=113 second=121 amount=1
+kerning first=113 second=98 amount=1
+kerning first=113 second=100 amount=1
+kerning first=113 second=112 amount=1
+kerning first=113 second=103 amount=1
+kerning first=113 second=116 amount=2
+kerning first=113 second=59 amount=2
+kerning first=113 second=119 amount=2
+kerning first=113 second=109 amount=1
+kerning first=113 second=118 amount=2
+kerning first=113 second=122 amount=1
+kerning first=113 second=97 amount=1
+kerning first=113 second=110 amount=1
+kerning first=113 second=111 amount=1
+kerning first=113 second=114 amount=1
+kerning first=113 second=120 amount=1
+kerning first=113 second=99 amount=1
+kerning first=113 second=101 amount=1
+kerning first=113 second=115 amount=1
+kerning first=113 second=117 amount=1
+kerning first=113 second=58 amount=1
+kerning first=113 second=35 amount=1
+kerning first=113 second=44 amount=2
+kerning first=113 second=46 amount=1
+kerning first=113 second=45 amount=1
+kerning first=103 second=106 amount=3
+kerning first=103 second=52 amount=1
+kerning first=103 second=53 amount=1
+kerning first=103 second=104 amount=1
+kerning first=103 second=102 amount=1
+kerning first=103 second=49 amount=-3
+kerning first=103 second=40 amount=1
+kerning first=103 second=41 amount=1
+kerning first=103 second=108 amount=1
+kerning first=103 second=47 amount=1
+kerning first=103 second=92 amount=-2
+kerning first=103 second=107 amount=1
+kerning first=103 second=105 amount=1
+kerning first=103 second=33 amount=1
+kerning first=103 second=121 amount=1
+kerning first=103 second=98 amount=1
+kerning first=103 second=100 amount=1
+kerning first=103 second=112 amount=1
+kerning first=103 second=113 amount=1
+kerning first=103 second=103 amount=1
+kerning first=103 second=116 amount=2
+kerning first=103 second=59 amount=2
+kerning first=103 second=119 amount=2
+kerning first=103 second=118 amount=2
+kerning first=103 second=122 amount=1
+kerning first=103 second=97 amount=1
+kerning first=103 second=110 amount=1
+kerning first=103 second=111 amount=1
+kerning first=103 second=114 amount=1
+kerning first=103 second=120 amount=1
+kerning first=103 second=99 amount=1
+kerning first=103 second=101 amount=1
+kerning first=103 second=115 amount=1
+kerning first=103 second=117 amount=1
+kerning first=103 second=58 amount=1
+kerning first=103 second=35 amount=1
+kerning first=103 second=34 amount=-1
+kerning first=103 second=44 amount=2
+kerning first=103 second=46 amount=1
+kerning first=103 second=45 amount=1
+kerning first=116 second=106 amount=2
+kerning first=116 second=52 amount=-1
+kerning first=116 second=55 amount=-1
+kerning first=116 second=104 amount=1
+kerning first=116 second=54 amount=1
+kerning first=116 second=57 amount=1
+kerning first=116 second=48 amount=1
+kerning first=116 second=102 amount=2
+kerning first=116 second=63 amount=1
+kerning first=116 second=93 amount=-1
+kerning first=116 second=49 amount=-3
+kerning first=116 second=40 amount=2
+kerning first=116 second=108 amount=2
+kerning first=116 second=50 amount=-1
+kerning first=116 second=92 amount=-1
+kerning first=116 second=107 amount=2
+kerning first=116 second=105 amount=2
+kerning first=116 second=33 amount=2
+kerning first=116 second=121 amount=2
+kerning first=116 second=98 amount=1
+kerning first=116 second=100 amount=1
+kerning first=116 second=112 amount=2
+kerning first=116 second=113 amount=1
+kerning first=116 second=103 amount=1
+kerning first=116 second=116 amount=2
+kerning first=116 second=59 amount=1
+kerning first=116 second=119 amount=3
+kerning first=116 second=109 amount=1
+kerning first=116 second=118 amount=3
+kerning first=116 second=122 amount=1
+kerning first=116 second=97 amount=1
+kerning first=116 second=110 amount=2
+kerning first=116 second=111 amount=1
+kerning first=116 second=114 amount=2
+kerning first=116 second=120 amount=2
+kerning first=116 second=99 amount=1
+kerning first=116 second=101 amount=1
+kerning first=116 second=115 amount=1
+kerning first=116 second=117 amount=2
+kerning first=116 second=58 amount=1
+kerning first=116 second=35 amount=1
+kerning first=116 second=34 amount=1
+kerning first=116 second=39 amount=1
+kerning first=116 second=45 amount=-1
+kerning first=116 second=32 amount=1
+kerning first=59 second=106 amount=1
+kerning first=59 second=87 amount=-1
+kerning first=59 second=89 amount=-2
+kerning first=59 second=52 amount=-1
+kerning first=59 second=86 amount=-1
+kerning first=59 second=53 amount=-1
+kerning first=59 second=84 amount=-2
+kerning first=59 second=51 amount=-1
+kerning first=59 second=67 amount=1
+kerning first=59 second=54 amount=-1
+kerning first=59 second=57 amount=-1
+kerning first=59 second=74 amount=-2
+kerning first=59 second=102 amount=1
+kerning first=59 second=56 amount=-1
+kerning first=59 second=63 amount=-1
+kerning first=59 second=93 amount=-1
+kerning first=59 second=49 amount=-4
+kerning first=59 second=64 amount=-1
+kerning first=59 second=92 amount=-2
+kerning first=59 second=105 amount=1
+kerning first=59 second=33 amount=1
+kerning first=59 second=121 amount=1
+kerning first=59 second=112 amount=1
+kerning first=59 second=116 amount=1
+kerning first=59 second=59 amount=1
+kerning first=59 second=119 amount=2
+kerning first=59 second=118 amount=1
+kerning first=59 second=110 amount=1
+kerning first=59 second=114 amount=1
+kerning first=59 second=120 amount=1
+kerning first=59 second=117 amount=1
+kerning first=59 second=34 amount=-1
+kerning first=59 second=44 amount=1
+kerning first=59 second=45 amount=-1
+kerning first=119 second=106 amount=1
+kerning first=119 second=55 amount=-2
+kerning first=119 second=104 amount=1
+kerning first=119 second=102 amount=1
+kerning first=119 second=63 amount=1
+kerning first=119 second=93 amount=-3
+kerning first=119 second=49 amount=-3
+kerning first=119 second=40 amount=1
+kerning first=119 second=108 amount=1
+kerning first=119 second=64 amount=-1
+kerning first=119 second=50 amount=-1
+kerning first=119 second=47 amount=-2
+kerning first=119 second=92 amount=-1
+kerning first=119 second=107 amount=1
+kerning first=119 second=105 amount=1
+kerning first=119 second=33 amount=1
+kerning first=119 second=121 amount=2
+kerning first=119 second=98 amount=1
+kerning first=119 second=112 amount=1
+kerning first=119 second=116 amount=1
+kerning first=119 second=59 amount=1
+kerning first=119 second=119 amount=2
+kerning first=119 second=109 amount=1
+kerning first=119 second=118 amount=2
+kerning first=119 second=110 amount=1
+kerning first=119 second=114 amount=1
+kerning first=119 second=120 amount=1
+kerning first=119 second=117 amount=1
+kerning first=119 second=35 amount=1
+kerning first=119 second=34 amount=1
+kerning first=119 second=39 amount=1
+kerning first=119 second=44 amount=-2
+kerning first=119 second=46 amount=-2
+kerning first=109 second=106 amount=1
+kerning first=109 second=51 amount=-1
+kerning first=109 second=55 amount=1
+kerning first=109 second=104 amount=1
+kerning first=109 second=54 amount=-1
+kerning first=109 second=57 amount=-1
+kerning first=109 second=102 amount=1
+kerning first=109 second=56 amount=-1
+kerning first=109 second=63 amount=-2
+kerning first=109 second=49 amount=-3
+kerning first=109 second=41 amount=1
+kerning first=109 second=108 amount=1
+kerning first=109 second=50 amount=1
+kerning first=109 second=47 amount=1
+kerning first=109 second=92 amount=-3
+kerning first=109 second=107 amount=1
+kerning first=109 second=105 amount=1
+kerning first=109 second=33 amount=1
+kerning first=109 second=121 amount=1
+kerning first=109 second=98 amount=1
+kerning first=109 second=100 amount=1
+kerning first=109 second=112 amount=1
+kerning first=109 second=116 amount=1
+kerning first=109 second=59 amount=2
+kerning first=109 second=119 amount=1
+kerning first=109 second=118 amount=1
+kerning first=109 second=122 amount=1
+kerning first=109 second=97 amount=1
+kerning first=109 second=110 amount=1
+kerning first=109 second=111 amount=1
+kerning first=109 second=114 amount=1
+kerning first=109 second=120 amount=2
+kerning first=109 second=115 amount=1
+kerning first=109 second=58 amount=1
+kerning first=109 second=39 amount=-1
+kerning first=109 second=44 amount=2
+kerning first=109 second=46 amount=1
+kerning first=118 second=106 amount=2
+kerning first=118 second=55 amount=-2
+kerning first=118 second=104 amount=1
+kerning first=118 second=54 amount=1
+kerning first=118 second=57 amount=1
+kerning first=118 second=48 amount=1
+kerning first=118 second=102 amount=2
+kerning first=118 second=63 amount=1
+kerning first=118 second=93 amount=-2
+kerning first=118 second=49 amount=-3
+kerning first=118 second=40 amount=2
+kerning first=118 second=108 amount=2
+kerning first=118 second=50 amount=-1
+kerning first=118 second=47 amount=-1
+kerning first=118 second=92 amount=-1
+kerning first=118 second=107 amount=2
+kerning first=118 second=105 amount=2
+kerning first=118 second=33 amount=2
+kerning first=118 second=121 amount=2
+kerning first=118 second=98 amount=1
+kerning first=118 second=100 amount=1
+kerning first=118 second=112 amount=2
+kerning first=118 second=113 amount=1
+kerning first=118 second=103 amount=1
+kerning first=118 second=116 amount=2
+kerning first=118 second=59 amount=1
+kerning first=118 second=119 amount=3
+kerning first=118 second=109 amount=1
+kerning first=118 second=118 amount=3
+kerning first=118 second=122 amount=1
+kerning first=118 second=97 amount=1
+kerning first=118 second=110 amount=2
+kerning first=118 second=111 amount=1
+kerning first=118 second=114 amount=2
+kerning first=118 second=120 amount=2
+kerning first=118 second=99 amount=1
+kerning first=118 second=101 amount=1
+kerning first=118 second=115 amount=1
+kerning first=118 second=117 amount=2
+kerning first=118 second=58 amount=1
+kerning first=118 second=35 amount=2
+kerning first=118 second=34 amount=1
+kerning first=118 second=39 amount=1
+kerning first=118 second=44 amount=-2
+kerning first=118 second=46 amount=-1
+kerning first=118 second=32 amount=1
+kerning first=122 second=106 amount=1
+kerning first=122 second=52 amount=-1
+kerning first=122 second=104 amount=1
+kerning first=122 second=102 amount=1
+kerning first=122 second=49 amount=-3
+kerning first=122 second=40 amount=1
+kerning first=122 second=41 amount=1
+kerning first=122 second=108 amount=1
+kerning first=122 second=50 amount=1
+kerning first=122 second=47 amount=1
+kerning first=122 second=92 amount=-2
+kerning first=122 second=107 amount=1
+kerning first=122 second=105 amount=1
+kerning first=122 second=33 amount=1
+kerning first=122 second=121 amount=2
+kerning first=122 second=98 amount=1
+kerning first=122 second=100 amount=1
+kerning first=122 second=112 amount=1
+kerning first=122 second=103 amount=1
+kerning first=122 second=116 amount=2
+kerning first=122 second=59 amount=1
+kerning first=122 second=119 amount=2
+kerning first=122 second=109 amount=1
+kerning first=122 second=118 amount=2
+kerning first=122 second=122 amount=1
+kerning first=122 second=97 amount=1
+kerning first=122 second=110 amount=1
+kerning first=122 second=111 amount=1
+kerning first=122 second=114 amount=1
+kerning first=122 second=120 amount=1
+kerning first=122 second=99 amount=1
+kerning first=122 second=115 amount=1
+kerning first=122 second=117 amount=1
+kerning first=122 second=58 amount=1
+kerning first=122 second=35 amount=1
+kerning first=122 second=44 amount=1
+kerning first=122 second=46 amount=1
+kerning first=122 second=45 amount=-1
+kerning first=122 second=32 amount=1
+kerning first=97 second=106 amount=1
+kerning first=97 second=55 amount=1
+kerning first=97 second=104 amount=1
+kerning first=97 second=54 amount=-1
+kerning first=97 second=57 amount=-1
+kerning first=97 second=48 amount=-1
+kerning first=97 second=63 amount=-2
+kerning first=97 second=49 amount=-3
+kerning first=97 second=41 amount=1
+kerning first=97 second=108 amount=1
+kerning first=97 second=50 amount=1
+kerning first=97 second=47 amount=1
+kerning first=97 second=92 amount=-4
+kerning first=97 second=107 amount=1
+kerning first=97 second=105 amount=1
+kerning first=97 second=33 amount=1
+kerning first=97 second=98 amount=1
+kerning first=97 second=100 amount=1
+kerning first=97 second=112 amount=1
+kerning first=97 second=116 amount=1
+kerning first=97 second=59 amount=1
+kerning first=97 second=119 amount=1
+kerning first=97 second=118 amount=1
+kerning first=97 second=122 amount=1
+kerning first=97 second=97 amount=1
+kerning first=97 second=110 amount=1
+kerning first=97 second=111 amount=1
+kerning first=97 second=114 amount=1
+kerning first=97 second=120 amount=2
+kerning first=97 second=99 amount=1
+kerning first=97 second=115 amount=1
+kerning first=97 second=117 amount=1
+kerning first=97 second=58 amount=1
+kerning first=97 second=34 amount=-3
+kerning first=97 second=39 amount=-2
+kerning first=97 second=44 amount=1
+kerning first=97 second=46 amount=1
+kerning first=110 second=106 amount=1
+kerning first=110 second=52 amount=1
+kerning first=110 second=55 amount=1
+kerning first=110 second=104 amount=1
+kerning first=110 second=102 amount=1
+kerning first=110 second=63 amount=-1
+kerning first=110 second=49 amount=-3
+kerning first=110 second=40 amount=1
+kerning first=110 second=41 amount=1
+kerning first=110 second=108 amount=1
+kerning first=110 second=50 amount=1
+kerning first=110 second=47 amount=1
+kerning first=110 second=92 amount=-3
+kerning first=110 second=107 amount=1
+kerning first=110 second=105 amount=1
+kerning first=110 second=33 amount=1
+kerning first=110 second=121 amount=1
+kerning first=110 second=98 amount=1
+kerning first=110 second=100 amount=1
+kerning first=110 second=112 amount=1
+kerning first=110 second=113 amount=1
+kerning first=110 second=103 amount=1
+kerning first=110 second=116 amount=1
+kerning first=110 second=59 amount=1
+kerning first=110 second=119 amount=1
+kerning first=110 second=118 amount=1
+kerning first=110 second=122 amount=1
+kerning first=110 second=97 amount=1
+kerning first=110 second=110 amount=1
+kerning first=110 second=111 amount=1
+kerning first=110 second=114 amount=1
+kerning first=110 second=120 amount=2
+kerning first=110 second=99 amount=1
+kerning first=110 second=101 amount=1
+kerning first=110 second=115 amount=1
+kerning first=110 second=117 amount=1
+kerning first=110 second=58 amount=1
+kerning first=110 second=35 amount=1
+kerning first=110 second=34 amount=-1
+kerning first=110 second=39 amount=-1
+kerning first=110 second=46 amount=1
+kerning first=110 second=45 amount=1
+kerning first=111 second=106 amount=1
+kerning first=111 second=52 amount=1
+kerning first=111 second=53 amount=1
+kerning first=111 second=104 amount=1
+kerning first=111 second=102 amount=1
+kerning first=111 second=63 amount=-1
+kerning first=111 second=93 amount=-1
+kerning first=111 second=49 amount=-3
+kerning first=111 second=40 amount=1
+kerning first=111 second=108 amount=1
+kerning first=111 second=64 amount=1
+kerning first=111 second=47 amount=1
+kerning first=111 second=92 amount=-3
+kerning first=111 second=107 amount=1
+kerning first=111 second=105 amount=1
+kerning first=111 second=33 amount=1
+kerning first=111 second=121 amount=1
+kerning first=111 second=98 amount=1
+kerning first=111 second=100 amount=1
+kerning first=111 second=112 amount=1
+kerning first=111 second=113 amount=1
+kerning first=111 second=103 amount=1
+kerning first=111 second=116 amount=2
+kerning first=111 second=59 amount=1
+kerning first=111 second=119 amount=1
+kerning first=111 second=109 amount=1
+kerning first=111 second=118 amount=1
+kerning first=111 second=97 amount=1
+kerning first=111 second=110 amount=1
+kerning first=111 second=111 amount=1
+kerning first=111 second=114 amount=1
+kerning first=111 second=120 amount=1
+kerning first=111 second=99 amount=1
+kerning first=111 second=101 amount=1
+kerning first=111 second=115 amount=1
+kerning first=111 second=117 amount=1
+kerning first=111 second=35 amount=1
+kerning first=111 second=34 amount=-2
+kerning first=111 second=39 amount=-2
+kerning first=111 second=46 amount=1
+kerning first=111 second=45 amount=1
+kerning first=114 second=106 amount=1
+kerning first=114 second=52 amount=-1
+kerning first=114 second=55 amount=-2
+kerning first=114 second=104 amount=1
+kerning first=114 second=48 amount=1
+kerning first=114 second=102 amount=1
+kerning first=114 second=63 amount=1
+kerning first=114 second=93 amount=-3
+kerning first=114 second=49 amount=-3
+kerning first=114 second=40 amount=1
+kerning first=114 second=108 amount=1
+kerning first=114 second=64 amount=-1
+kerning first=114 second=50 amount=-1
+kerning first=114 second=47 amount=-3
+kerning first=114 second=92 amount=-1
+kerning first=114 second=107 amount=1
+kerning first=114 second=105 amount=1
+kerning first=114 second=33 amount=1
+kerning first=114 second=121 amount=2
+kerning first=114 second=98 amount=1
+kerning first=114 second=112 amount=1
+kerning first=114 second=113 amount=1
+kerning first=114 second=103 amount=1
+kerning first=114 second=116 amount=1
+kerning first=114 second=59 amount=1
+kerning first=114 second=119 amount=2
+kerning first=114 second=109 amount=1
+kerning first=114 second=118 amount=2
+kerning first=114 second=122 amount=1
+kerning first=114 second=97 amount=1
+kerning first=114 second=110 amount=1
+kerning first=114 second=111 amount=1
+kerning first=114 second=114 amount=2
+kerning first=114 second=120 amount=2
+kerning first=114 second=117 amount=1
+kerning first=114 second=35 amount=1
+kerning first=114 second=34 amount=1
+kerning first=114 second=39 amount=2
+kerning first=114 second=44 amount=-3
+kerning first=114 second=46 amount=-3
+kerning first=114 second=45 amount=-2
+kerning first=120 second=106 amount=1
+kerning first=120 second=52 amount=-1
+kerning first=120 second=53 amount=-1
+kerning first=120 second=104 amount=1
+kerning first=120 second=102 amount=1
+kerning first=120 second=63 amount=1
+kerning first=120 second=93 amount=-1
+kerning first=120 second=49 amount=-3
+kerning first=120 second=40 amount=1
+kerning first=120 second=108 amount=1
+kerning first=120 second=64 amount=-1
+kerning first=120 second=47 amount=1
+kerning first=120 second=92 amount=-1
+kerning first=120 second=107 amount=1
+kerning first=120 second=105 amount=1
+kerning first=120 second=33 amount=1
+kerning first=120 second=121 amount=2
+kerning first=120 second=98 amount=1
+kerning first=120 second=112 amount=1
+kerning first=120 second=116 amount=1
+kerning first=120 second=59 amount=1
+kerning first=120 second=119 amount=2
+kerning first=120 second=109 amount=1
+kerning first=120 second=118 amount=2
+kerning first=120 second=122 amount=1
+kerning first=120 second=97 amount=1
+kerning first=120 second=110 amount=1
+kerning first=120 second=114 amount=1
+kerning first=120 second=120 amount=1
+kerning first=120 second=117 amount=1
+kerning first=120 second=35 amount=1
+kerning first=120 second=34 amount=1
+kerning first=120 second=39 amount=1
+kerning first=120 second=44 amount=1
+kerning first=120 second=46 amount=1
+kerning first=120 second=45 amount=-1
+kerning first=120 second=32 amount=1
+kerning first=99 second=106 amount=1
+kerning first=99 second=52 amount=1
+kerning first=99 second=53 amount=1
+kerning first=99 second=104 amount=1
+kerning first=99 second=102 amount=1
+kerning first=99 second=63 amount=-1
+kerning first=99 second=93 amount=-1
+kerning first=99 second=49 amount=-4
+kerning first=99 second=40 amount=1
+kerning first=99 second=108 amount=1
+kerning first=99 second=50 amount=-1
+kerning first=99 second=92 amount=-3
+kerning first=99 second=107 amount=1
+kerning first=99 second=105 amount=1
+kerning first=99 second=33 amount=1
+kerning first=99 second=121 amount=1
+kerning first=99 second=98 amount=1
+kerning first=99 second=100 amount=1
+kerning first=99 second=112 amount=1
+kerning first=99 second=113 amount=1
+kerning first=99 second=103 amount=1
+kerning first=99 second=116 amount=1
+kerning first=99 second=119 amount=1
+kerning first=99 second=118 amount=1
+kerning first=99 second=97 amount=1
+kerning first=99 second=110 amount=1
+kerning first=99 second=111 amount=1
+kerning first=99 second=114 amount=1
+kerning first=99 second=120 amount=1
+kerning first=99 second=99 amount=1
+kerning first=99 second=101 amount=1
+kerning first=99 second=115 amount=1
+kerning first=99 second=117 amount=1
+kerning first=99 second=58 amount=1
+kerning first=99 second=35 amount=1
+kerning first=99 second=34 amount=-2
+kerning first=99 second=39 amount=-2
+kerning first=99 second=46 amount=1
+kerning first=99 second=45 amount=1
+kerning first=101 second=106 amount=1
+kerning first=101 second=52 amount=1
+kerning first=101 second=53 amount=1
+kerning first=101 second=51 amount=1
+kerning first=101 second=55 amount=1
+kerning first=101 second=104 amount=1
+kerning first=101 second=57 amount=1
+kerning first=101 second=102 amount=1
+kerning first=101 second=63 amount=-1
+kerning first=101 second=49 amount=-2
+kerning first=101 second=40 amount=1
+kerning first=101 second=41 amount=1
+kerning first=101 second=108 amount=2
+kerning first=101 second=64 amount=1
+kerning first=101 second=50 amount=1
+kerning first=101 second=47 amount=2
+kerning first=101 second=92 amount=-2
+kerning first=101 second=107 amount=1
+kerning first=101 second=105 amount=2
+kerning first=101 second=33 amount=1
+kerning first=101 second=121 amount=1
+kerning first=101 second=98 amount=1
+kerning first=101 second=100 amount=2
+kerning first=101 second=112 amount=1
+kerning first=101 second=113 amount=1
+kerning first=101 second=103 amount=1
+kerning first=101 second=116 amount=2
+kerning first=101 second=59 amount=1
+kerning first=101 second=119 amount=2
+kerning first=101 second=109 amount=1
+kerning first=101 second=118 amount=2
+kerning first=101 second=122 amount=1
+kerning first=101 second=97 amount=2
+kerning first=101 second=110 amount=2
+kerning first=101 second=111 amount=2
+kerning first=101 second=114 amount=1
+kerning first=101 second=120 amount=2
+kerning first=101 second=99 amount=1
+kerning first=101 second=101 amount=1
+kerning first=101 second=115 amount=2
+kerning first=101 second=117 amount=1
+kerning first=101 second=58 amount=1
+kerning first=101 second=35 amount=1
+kerning first=101 second=34 amount=-1
+kerning first=101 second=39 amount=-1
+kerning first=101 second=44 amount=1
+kerning first=101 second=46 amount=2
+kerning first=101 second=45 amount=1
+kerning first=115 second=106 amount=1
+kerning first=115 second=53 amount=1
+kerning first=115 second=104 amount=1
+kerning first=115 second=102 amount=1
+kerning first=115 second=63 amount=-1
+kerning first=115 second=49 amount=-3
+kerning first=115 second=40 amount=1
+kerning first=115 second=41 amount=1
+kerning first=115 second=108 amount=1
+kerning first=115 second=47 amount=1
+kerning first=115 second=92 amount=-3
+kerning first=115 second=107 amount=1
+kerning first=115 second=105 amount=1
+kerning first=115 second=33 amount=1
+kerning first=115 second=121 amount=1
+kerning first=115 second=98 amount=1
+kerning first=115 second=100 amount=1
+kerning first=115 second=112 amount=1
+kerning first=115 second=113 amount=1
+kerning first=115 second=103 amount=1
+kerning first=115 second=116 amount=2
+kerning first=115 second=59 amount=1
+kerning first=115 second=119 amount=1
+kerning first=115 second=109 amount=1
+kerning first=115 second=118 amount=1
+kerning first=115 second=122 amount=1
+kerning first=115 second=97 amount=1
+kerning first=115 second=110 amount=1
+kerning first=115 second=111 amount=1
+kerning first=115 second=114 amount=1
+kerning first=115 second=120 amount=1
+kerning first=115 second=99 amount=1
+kerning first=115 second=101 amount=1
+kerning first=115 second=115 amount=1
+kerning first=115 second=117 amount=1
+kerning first=115 second=58 amount=1
+kerning first=115 second=35 amount=1
+kerning first=115 second=34 amount=-2
+kerning first=115 second=39 amount=-2
+kerning first=115 second=46 amount=1
+kerning first=117 second=106 amount=1
+kerning first=117 second=52 amount=1
+kerning first=117 second=51 amount=-1
+kerning first=117 second=104 amount=1
+kerning first=117 second=102 amount=1
+kerning first=117 second=56 amount=-1
+kerning first=117 second=63 amount=-1
+kerning first=117 second=93 amount=-1
+kerning first=117 second=49 amount=-3
+kerning first=117 second=40 amount=1
+kerning first=117 second=108 amount=1
+kerning first=117 second=50 amount=-1
+kerning first=117 second=92 amount=-2
+kerning first=117 second=107 amount=1
+kerning first=117 second=105 amount=1
+kerning first=117 second=33 amount=1
+kerning first=117 second=121 amount=1
+kerning first=117 second=98 amount=1
+kerning first=117 second=100 amount=1
+kerning first=117 second=112 amount=1
+kerning first=117 second=113 amount=1
+kerning first=117 second=103 amount=1
+kerning first=117 second=116 amount=2
+kerning first=117 second=59 amount=1
+kerning first=117 second=119 amount=2
+kerning first=117 second=109 amount=1
+kerning first=117 second=118 amount=2
+kerning first=117 second=97 amount=1
+kerning first=117 second=110 amount=1
+kerning first=117 second=111 amount=1
+kerning first=117 second=114 amount=1
+kerning first=117 second=120 amount=1
+kerning first=117 second=99 amount=1
+kerning first=117 second=101 amount=1
+kerning first=117 second=115 amount=1
+kerning first=117 second=117 amount=1
+kerning first=117 second=35 amount=1
+kerning first=117 second=34 amount=-2
+kerning first=117 second=39 amount=-2
+kerning first=117 second=44 amount=-1
+kerning first=117 second=45 amount=1
+kerning first=58 second=87 amount=-1
+kerning first=58 second=77 amount=-1
+kerning first=58 second=89 amount=-2
+kerning first=58 second=65 amount=-1
+kerning first=58 second=52 amount=-1
+kerning first=58 second=86 amount=-1
+kerning first=58 second=53 amount=-1
+kerning first=58 second=84 amount=-2
+kerning first=58 second=51 amount=-1
+kerning first=58 second=55 amount=-1
+kerning first=58 second=54 amount=-1
+kerning first=58 second=57 amount=-1
+kerning first=58 second=48 amount=-1
+kerning first=58 second=74 amount=-2
+kerning first=58 second=56 amount=-1
+kerning first=58 second=63 amount=-1
+kerning first=58 second=93 amount=-1
+kerning first=58 second=49 amount=-4
+kerning first=58 second=64 amount=-1
+kerning first=58 second=50 amount=-1
+kerning first=58 second=92 amount=-3
+kerning first=58 second=121 amount=1
+kerning first=58 second=116 amount=1
+kerning first=58 second=119 amount=1
+kerning first=58 second=118 amount=1
+kerning first=58 second=114 amount=1
+kerning first=58 second=120 amount=1
+kerning first=58 second=58 amount=-1
+kerning first=58 second=34 amount=-2
+kerning first=58 second=39 amount=-1
+kerning first=58 second=45 amount=-2
+kerning first=35 second=106 amount=1
+kerning first=35 second=81 amount=1
+kerning first=35 second=72 amount=1
+kerning first=35 second=88 amount=-2
+kerning first=35 second=89 amount=-1
+kerning first=35 second=90 amount=-3
+kerning first=35 second=65 amount=-1
+kerning first=35 second=53 amount=-1
+kerning first=35 second=71 amount=1
+kerning first=35 second=79 amount=1
+kerning first=35 second=85 amount=1
+kerning first=35 second=51 amount=-1
+kerning first=35 second=55 amount=-1
+kerning first=35 second=67 amount=1
+kerning first=35 second=57 amount=-1
+kerning first=35 second=74 amount=-1
+kerning first=35 second=102 amount=1
+kerning first=35 second=56 amount=-1
+kerning first=35 second=63 amount=1
+kerning first=35 second=93 amount=-2
+kerning first=35 second=49 amount=-3
+kerning first=35 second=40 amount=1
+kerning first=35 second=41 amount=-1
+kerning first=35 second=108 amount=1
+kerning first=35 second=50 amount=-1
+kerning first=35 second=47 amount=-2
+kerning first=35 second=92 amount=-1
+kerning first=35 second=107 amount=1
+kerning first=35 second=105 amount=1
+kerning first=35 second=33 amount=1
+kerning first=35 second=121 amount=1
+kerning first=35 second=112 amount=1
+kerning first=35 second=113 amount=1
+kerning first=35 second=103 amount=1
+kerning first=35 second=116 amount=1
+kerning first=35 second=119 amount=2
+kerning first=35 second=109 amount=1
+kerning first=35 second=118 amount=2
+kerning first=35 second=122 amount=-1
+kerning first=35 second=97 amount=1
+kerning first=35 second=110 amount=1
+kerning first=35 second=111 amount=1
+kerning first=35 second=114 amount=1
+kerning first=35 second=120 amount=1
+kerning first=35 second=117 amount=1
+kerning first=35 second=34 amount=1
+kerning first=35 second=39 amount=1
+kerning first=35 second=44 amount=-5
+kerning first=35 second=46 amount=-3
+kerning first=42 second=83 amount=1
+kerning first=42 second=93 amount=1
+kerning first=42 second=113 amount=1
+kerning first=42 second=103 amount=1
+kerning first=34 second=106 amount=1
+kerning first=34 second=87 amount=1
+kerning first=34 second=88 amount=1
+kerning first=34 second=89 amount=1
+kerning first=34 second=90 amount=-1
+kerning first=34 second=65 amount=-3
+kerning first=34 second=75 amount=1
+kerning first=34 second=52 amount=-3
+kerning first=34 second=86 amount=1
+kerning first=34 second=53 amount=-1
+kerning first=34 second=84 amount=1
+kerning first=34 second=85 amount=1
+kerning first=34 second=66 amount=1
+kerning first=34 second=80 amount=1
+kerning first=34 second=54 amount=-1
+kerning first=34 second=57 amount=-1
+kerning first=34 second=48 amount=-1
+kerning first=34 second=74 amount=-4
+kerning first=34 second=76 amount=1
+kerning first=34 second=102 amount=-1
+kerning first=34 second=56 amount=-1
+kerning first=34 second=63 amount=1
+kerning first=34 second=93 amount=1
+kerning first=34 second=49 amount=-2
+kerning first=34 second=41 amount=1
+kerning first=34 second=108 amount=1
+kerning first=34 second=64 amount=-3
+kerning first=34 second=82 amount=1
+kerning first=34 second=50 amount=-1
+kerning first=34 second=47 amount=-1
+kerning first=34 second=92 amount=1
+kerning first=34 second=107 amount=1
+kerning first=34 second=73 amount=1
+kerning first=34 second=105 amount=1
+kerning first=34 second=33 amount=1
+kerning first=34 second=121 amount=2
+kerning first=34 second=98 amount=1
+kerning first=34 second=100 amount=-2
+kerning first=34 second=112 amount=1
+kerning first=34 second=113 amount=-1
+kerning first=34 second=103 amount=-1
+kerning first=34 second=116 amount=-1
+kerning first=34 second=119 amount=1
+kerning first=34 second=109 amount=1
+kerning first=34 second=118 amount=1
+kerning first=34 second=122 amount=-1
+kerning first=34 second=97 amount=-2
+kerning first=34 second=110 amount=1
+kerning first=34 second=111 amount=-1
+kerning first=34 second=120 amount=1
+kerning first=34 second=99 amount=-2
+kerning first=34 second=101 amount=-2
+kerning first=34 second=115 amount=-1
+kerning first=34 second=117 amount=1
+kerning first=34 second=35 amount=-1
+kerning first=34 second=34 amount=1
+kerning first=34 second=39 amount=1
+kerning first=34 second=44 amount=-3
+kerning first=34 second=46 amount=-2
+kerning first=34 second=45 amount=-1
+kerning first=39 second=87 amount=1
+kerning first=39 second=88 amount=1
+kerning first=39 second=89 amount=1
+kerning first=39 second=90 amount=-1
+kerning first=39 second=65 amount=-3
+kerning first=39 second=75 amount=1
+kerning first=39 second=52 amount=-2
+kerning first=39 second=78 amount=1
+kerning first=39 second=86 amount=1
+kerning first=39 second=53 amount=-1
+kerning first=39 second=84 amount=1
+kerning first=39 second=85 amount=1
+kerning first=39 second=66 amount=1
+kerning first=39 second=68 amount=1
+kerning first=39 second=80 amount=1
+kerning first=39 second=104 amount=1
+kerning first=39 second=54 amount=-1
+kerning first=39 second=74 amount=-4
+kerning first=39 second=76 amount=1
+kerning first=39 second=102 amount=-1
+kerning first=39 second=63 amount=1
+kerning first=39 second=69 amount=1
+kerning first=39 second=93 amount=1
+kerning first=39 second=49 amount=-1
+kerning first=39 second=41 amount=1
+kerning first=39 second=108 amount=1
+kerning first=39 second=64 amount=-5
+kerning first=39 second=82 amount=1
+kerning first=39 second=50 amount=-1
+kerning first=39 second=47 amount=-4
+kerning first=39 second=92 amount=2
+kerning first=39 second=107 amount=1
+kerning first=39 second=73 amount=1
+kerning first=39 second=105 amount=1
+kerning first=39 second=33 amount=1
+kerning first=39 second=121 amount=1
+kerning first=39 second=98 amount=1
+kerning first=39 second=100 amount=-2
+kerning first=39 second=113 amount=-2
+kerning first=39 second=103 amount=-1
+kerning first=39 second=116 amount=-1
+kerning first=39 second=59 amount=-1
+kerning first=39 second=118 amount=1
+kerning first=39 second=122 amount=-1
+kerning first=39 second=97 amount=-1
+kerning first=39 second=111 amount=-2
+kerning first=39 second=114 amount=-1
+kerning first=39 second=99 amount=-2
+kerning first=39 second=101 amount=-2
+kerning first=39 second=115 amount=-2
+kerning first=39 second=58 amount=-1
+kerning first=39 second=35 amount=-1
+kerning first=39 second=34 amount=1
+kerning first=39 second=39 amount=1
+kerning first=39 second=44 amount=-3
+kerning first=39 second=46 amount=-1
+kerning first=39 second=45 amount=-2
+kerning first=44 second=106 amount=1
+kerning first=44 second=87 amount=-3
+kerning first=44 second=81 amount=-2
+kerning first=44 second=88 amount=1
+kerning first=44 second=89 amount=-3
+kerning first=44 second=90 amount=1
+kerning first=44 second=65 amount=1
+kerning first=44 second=52 amount=-2
+kerning first=44 second=86 amount=-2
+kerning first=44 second=71 amount=-1
+kerning first=44 second=79 amount=-2
+kerning first=44 second=83 amount=-1
+kerning first=44 second=84 amount=-1
+kerning first=44 second=85 amount=-1
+kerning first=44 second=51 amount=-1
+kerning first=44 second=55 amount=1
+kerning first=44 second=80 amount=1
+kerning first=44 second=54 amount=-2
+kerning first=44 second=57 amount=-2
+kerning first=44 second=48 amount=-1
+kerning first=44 second=74 amount=-2
+kerning first=44 second=102 amount=-1
+kerning first=44 second=56 amount=-1
+kerning first=44 second=63 amount=-2
+kerning first=44 second=49 amount=-3
+kerning first=44 second=41 amount=1
+kerning first=44 second=108 amount=1
+kerning first=44 second=64 amount=-1
+kerning first=44 second=50 amount=1
+kerning first=44 second=47 amount=2
+kerning first=44 second=92 amount=-4
+kerning first=44 second=107 amount=1
+kerning first=44 second=73 amount=1
+kerning first=44 second=105 amount=1
+kerning first=44 second=33 amount=1
+kerning first=44 second=121 amount=-2
+kerning first=44 second=98 amount=1
+kerning first=44 second=113 amount=-1
+kerning first=44 second=116 amount=-1
+kerning first=44 second=59 amount=2
+kerning first=44 second=119 amount=-1
+kerning first=44 second=109 amount=-1
+kerning first=44 second=118 amount=-1
+kerning first=44 second=122 amount=1
+kerning first=44 second=97 amount=1
+kerning first=44 second=110 amount=1
+kerning first=44 second=114 amount=1
+kerning first=44 second=120 amount=1
+kerning first=44 second=58 amount=1
+kerning first=44 second=35 amount=-2
+kerning first=44 second=34 amount=-2
+kerning first=44 second=39 amount=-4
+kerning first=44 second=44 amount=1
+kerning first=44 second=46 amount=1
+kerning first=44 second=45 amount=-2
+kerning first=46 second=106 amount=1
+kerning first=46 second=87 amount=-2
+kerning first=46 second=88 amount=1
+kerning first=46 second=89 amount=-2
+kerning first=46 second=90 amount=2
+kerning first=46 second=65 amount=1
+kerning first=46 second=52 amount=-3
+kerning first=46 second=86 amount=-1
+kerning first=46 second=53 amount=1
+kerning first=46 second=79 amount=-1
+kerning first=46 second=84 amount=-2
+kerning first=46 second=85 amount=-1
+kerning first=46 second=55 amount=1
+kerning first=46 second=80 amount=1
+kerning first=46 second=104 amount=1
+kerning first=46 second=54 amount=-1
+kerning first=46 second=48 amount=-1
+kerning first=46 second=74 amount=-1
+kerning first=46 second=102 amount=-1
+kerning first=46 second=63 amount=-2
+kerning first=46 second=49 amount=-3
+kerning first=46 second=41 amount=1
+kerning first=46 second=108 amount=1
+kerning first=46 second=50 amount=1
+kerning first=46 second=47 amount=1
+kerning first=46 second=92 amount=-5
+kerning first=46 second=107 amount=1
+kerning first=46 second=73 amount=1
+kerning first=46 second=105 amount=1
+kerning first=46 second=33 amount=1
+kerning first=46 second=121 amount=-2
+kerning first=46 second=98 amount=1
+kerning first=46 second=100 amount=1
+kerning first=46 second=112 amount=1
+kerning first=46 second=103 amount=1
+kerning first=46 second=116 amount=-1
+kerning first=46 second=59 amount=1
+kerning first=46 second=118 amount=-1
+kerning first=46 second=122 amount=1
+kerning first=46 second=97 amount=1
+kerning first=46 second=110 amount=1
+kerning first=46 second=111 amount=1
+kerning first=46 second=114 amount=1
+kerning first=46 second=120 amount=1
+kerning first=46 second=99 amount=1
+kerning first=46 second=115 amount=1
+kerning first=46 second=117 amount=1
+kerning first=46 second=58 amount=1
+kerning first=46 second=35 amount=-4
+kerning first=46 second=34 amount=-4
+kerning first=46 second=39 amount=-1
+kerning first=46 second=44 amount=1
+kerning first=46 second=46 amount=1
+kerning first=46 second=45 amount=-2
+kerning first=45 second=87 amount=-1
+kerning first=45 second=81 amount=1
+kerning first=45 second=72 amount=1
+kerning first=45 second=88 amount=-2
+kerning first=45 second=89 amount=-3
+kerning first=45 second=90 amount=-2
+kerning first=45 second=65 amount=-1
+kerning first=45 second=52 amount=1
+kerning first=45 second=86 amount=-1
+kerning first=45 second=53 amount=-1
+kerning first=45 second=71 amount=1
+kerning first=45 second=79 amount=1
+kerning first=45 second=83 amount=-2
+kerning first=45 second=84 amount=-2
+kerning first=45 second=51 amount=-2
+kerning first=45 second=55 amount=-3
+kerning first=45 second=67 amount=1
+kerning first=45 second=57 amount=-1
+kerning first=45 second=56 amount=-2
+kerning first=45 second=63 amount=-1
+kerning first=45 second=93 amount=-4
+kerning first=45 second=49 amount=-4
+kerning first=45 second=40 amount=1
+kerning first=45 second=41 amount=-1
+kerning first=45 second=108 amount=1
+kerning first=45 second=50 amount=-4
+kerning first=45 second=47 amount=-2
+kerning first=45 second=92 amount=-4
+kerning first=45 second=107 amount=1
+kerning first=45 second=105 amount=1
+kerning first=45 second=33 amount=1
+kerning first=45 second=100 amount=1
+kerning first=45 second=113 amount=1
+kerning first=45 second=103 amount=1
+kerning first=45 second=116 amount=1
+kerning first=45 second=119 amount=1
+kerning first=45 second=118 amount=1
+kerning first=45 second=122 amount=-2
+kerning first=45 second=110 amount=1
+kerning first=45 second=111 amount=1
+kerning first=45 second=114 amount=1
+kerning first=45 second=120 amount=-1
+kerning first=45 second=99 amount=1
+kerning first=45 second=101 amount=1
+kerning first=45 second=117 amount=1
+kerning first=45 second=58 amount=-1
+kerning first=45 second=35 amount=1
+kerning first=45 second=34 amount=-1
+kerning first=45 second=39 amount=-1
+kerning first=45 second=44 amount=-3
+kerning first=45 second=46 amount=-3
+kerning first=45 second=45 amount=1
+kerning first=126 second=33 amount=-1
+kerning first=126 second=32 amount=-1
+kerning first=32 second=53 amount=-1
+kerning first=32 second=83 amount=1
+kerning first=32 second=123 amount=1
diff --git a/tests/cpp-tests/Resources/ccb/markerfelt24shadow.png b/tests/cpp-tests/Resources/ccb/markerfelt24shadow.png
new file mode 100755
index 0000000000..5bab028496
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/markerfelt24shadow.png differ
diff --git a/tests/cpp-tests/Resources/ccb/particle-fire.png b/tests/cpp-tests/Resources/ccb/particle-fire.png
new file mode 100755
index 0000000000..81c6d2410b
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/particle-fire.png differ
diff --git a/tests/cpp-tests/Resources/ccb/particle-smoke.png b/tests/cpp-tests/Resources/ccb/particle-smoke.png
new file mode 100755
index 0000000000..a289b1371e
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/particle-smoke.png differ
diff --git a/tests/cpp-tests/Resources/ccb/particle-snow.png b/tests/cpp-tests/Resources/ccb/particle-snow.png
new file mode 100755
index 0000000000..9e12963498
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/particle-snow.png differ
diff --git a/tests/cpp-tests/Resources/ccb/particle-stars.png b/tests/cpp-tests/Resources/ccb/particle-stars.png
new file mode 100755
index 0000000000..f493dcc334
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/particle-stars.png differ
diff --git a/tests/cpp-tests/Resources/ccb/scale-9-demo.png b/tests/cpp-tests/Resources/ccb/scale-9-demo.png
new file mode 100755
index 0000000000..ee4537207f
Binary files /dev/null and b/tests/cpp-tests/Resources/ccb/scale-9-demo.png differ
diff --git a/tests/cpp-tests/Resources/commonly_used_words.txt b/tests/cpp-tests/Resources/commonly_used_words.txt
new file mode 100755
index 0000000000..ede487b2c8
--- /dev/null
+++ b/tests/cpp-tests/Resources/commonly_used_words.txt
@@ -0,0 +1,60 @@
+三画
+三于干äºå£«å·¥åœŸæ‰å¯¸ä¸‹å¤§ä¸ˆä¸Žä¸‡ä¸Šå°å£å·¾å±±åƒä¹žå·äº¿ä¸ªå‹ºä¹…凡åŠå¤•ä¸¸ä¹ˆå¹¿
+亡门义之尸弓己已åå«ä¹Ÿå¥³é£žåˆƒä¹ å‰é©¬ä¹¡
+
+四画
+ä¸°çŽ‹äº•å¼€å¤«å¤©æ— å…ƒä¸“äº‘æ‰Žè‰ºæœ¨äº”æ”¯åŽ…ä¸å¤ªçŠ¬åŒºåŽ†å°¤å‹åŒ¹è½¦å·¨ç‰™å±¯æ¯”互切瓦
+æ¢å°‘æ—¥ä¸å†ˆè´å†…æ°´è§åˆç‰›æ‰‹æ¯›æ°”å‡é•¿ä»ä»€ç‰‡ä»†åŒ–仇å¸ä»ä»…斤爪å介父从今
+凶分ä¹å…¬ä»“月æ°å‹¿æ¬ 风丹匀乌凤勾文å…æ–¹ç«ä¸ºæ–—忆订计户认心尺引丑巴å”
+队办以å…予åŠåŒä¹¦å¹»
+
+五画
+玉刊示末未击打巧æ£æ‰‘扒功扔去甘世å¤èŠ‚本术å¯ä¸™å·¦åŽ‰å³çŸ³å¸ƒé¾™å¹³ç轧东
+å¡åŒ—å 业旧帅归且旦目å¶ç”²ç”³å®ç”µå·ç”°ç”±å²åªå¤®å…„å¼å«å¦å¨å¹å››ç”Ÿå¤±ç¦¾ä¸˜
+付仗代仙们仪白仔他斥瓜乎丛令用甩å°ä¹å¥åŒ†å†ŒçŠ¯å¤–处冬鸟务包饥主市立
+闪兰åŠæ±æ±‡å¤´æ±‰å®ç©´å®ƒè®¨å†™è®©ç¤¼è®å¿…议讯记永å¸å°¼æ°‘å‡ºè¾½å¥¶å¥´åŠ å¬çš®è¾¹å‘
+å•åœ£å¯¹å°çŸ›çº æ¯å¹¼ä¸
+
+å…ç”»
+å¼åˆ‘动扛寺å‰æ‰£è€ƒæ‰˜è€æ‰§å·©åœ¾æ‰©æ‰«åœ°æ‰¬åœºè€³å…±èŠ’亚èŠæœ½æœ´æœºæƒè¿‡è‡£å†å西
+压厌在有百å˜è€Œé¡µåŒ 夸夺ç°è¾¾åˆ—æ»æˆå¤¹è½¨é‚ªåˆ’迈毕至æ¤è´žå¸ˆå°˜å°–劣光当早
+åå“虫曲团åŒåŠåƒå› å¸å—屿帆å²å›žå²‚刚则肉网年朱先丢舌竹è¿ä¹”ä¼Ÿä¼ ä¹’ä¹“
+休ä¼ä¼ä¼˜ä¼å»¶ä»¶ä»»ä¼¤ä»·ä»½åŽä»°ä»¿ä¼™ä¼ªè‡ªè¡€å‘ä¼¼åŽè¡ŒèˆŸå…¨ä¼šæ€åˆå…†ä¼ä¼—爷伞
+创肌朵æ‚å±æ—¬æ—¨è´Ÿå„å多争色壮冲冰庄庆亦刘é½äº¤æ¬¡è¡£äº§å†³å……妄é—问闯羊
+并关米ç¯å·žæ±—æ±¡æ±Ÿæ± æ±¤å¿™å…´å®‡å®ˆå®…å—安讲军许论农讽设访寻那迅尽导异å™
+阵阳收阶阴防奸如妇好她妈æˆç¾½è§‚欢买红纤级约纪驰巡
+
+七画
+寿弄麦形进戒åžè¿œè¿è¿æ‰¶æŠšå›æŠ€å扰拒找批扯å€èµ°æŠ„å贡攻赤折抓扮抢å
+å‡æŠ›æŠ•åŸæŠ—å‘åŠæŠ–护壳志æ‰å—声把报å´åŠ«èŠ½èŠ±èŠ¹èŠ¬è‹èŠ³ä¸¥èŠ¦åŠ³å…‹è‹æ†æ æœ
+ææ‘ææžæŽæ¨æ±‚æ›´æŸè±†ä¸¤ä¸½åŒ»è¾°åŠ±å¦è¿˜æ¼æ¥è¿žæ¥åšæ—±ç›¯å‘ˆæ—¶å´åŠ©åŽ¿é‡Œå‘†å›
+æ—·å›´å‘€å¨è¶³é‚®ç”·å›°åµä¸²å‘˜å¬å©å¹å‘œå§å¼åˆ«å²—å¸è´¢é’ˆé’‰å‘Šæˆ‘乱利秃秀ç§æ¯å…µ
+ä¼°ä½“ä½•ä½†ä¼¸ä½œä¼¯ä¼¶ä½£ä½Žä½ ä½ä½ä¼´èº«çš‚佛近彻役返余希å谷妥å«é‚»å²”è‚è‚šè‚
+龟å…ç‹‚çŠ¹è§’åˆ æ¡åµå²›è¿Žé¥é¥®ç³»è¨€å†»çŠ¶äº©å†µåºŠåº“疗应冷这åºè¾›å¼ƒå†¶å¿˜é—²é—´é—·
+判ç¶ç¿å¼Ÿæ±ªæ²™æ±½æ²ƒæ³›æ²Ÿæ²¡æ²ˆæ²‰æ€€å¿§å¿«å®Œå®‹å®ç‰¢ç©¶ç©·ç¾è‰¯è¯å¯è¯„è¡¥åˆç¤¾è¯†è¯‰
+诊è¯è¯‘å›çµå³å±‚å°¿å°¾è¿Ÿå±€æ”¹å¼ å¿Œé™…é™†é˜¿é™ˆé˜»é™„å¦™å¦–å¦¨åŠªå¿åŠ²é¸¡é©±çº¯çº±çº³çº²
+驳纵纷纸纹纺驴纽
+
+å…«ç”»
+奉玩环æ¦é’责现表规抹拢拔拣担å¦æŠ¼æŠ½æ‹æ‹–æ‹è€…顶拆拥抵拘势抱垃拉拦拌
+幸招å¡æŠ«æ‹¨æ‹©æŠ¬å…¶å–苦若茂苹苗英范直茄茎茅林æžæ¯æŸœæžæ¿æ¾æžªæž„æ°è¿°æž•
+丧或画å§äº‹åˆºæž£é›¨å–矿ç 厕奔奇奋æ€æ¬§åž„妻轰顷转斩轮软到éžå”肯齿些虎
+è™è‚¾è´¤å°šæ—ºå…·æžœå‘³æ˜†å›½æ˜Œç•…æ˜Žæ˜“æ˜‚å…¸å›ºå¿ å’呼鸣å’呢岸岩帖罗帜å²å‡¯è´¥è´©
+è´å›¾é’“制知垂牧物乖刮秆和å£å§”ä½³ä¾ä¾›ä½¿ä¾‹ç‰ˆä¾„侦侧å‡ä¾¨ä½©è´§ä¾çš„迫质欣
+å¾å¾€çˆ¬å½¼å¾„所èˆé‡‘命斧爸采å—乳贪念贫肤肺肢肿胀朋股肥æœèƒå‘¨æ˜é±¼å…”ç‹
+忽狗备饰饱饲å˜äº¬äº«åº—夜庙府底剂郊废净盲放刻育闸闹郑券å·å•ç‚’ç‚Šç‚•ç‚Ž
+炉沫浅法泄河沾泪油泊沿泡注泻泳泥沸波泼泽治怖性怕怜怪å¦å®å®—定宜审
+宙官空帘实试郎诗肩房诚衬衫视è¯è¯žè¯¢è¯¥è¯¦å»ºè‚ƒå½•éš¶å±…届刷屈弦承åŸå¤é™•
+é™é™å¦¹å§‘å§å§“始驾å‚艰线练组细驶织终驻驼ç»ç»è´¯
+
+ä¹ç”»
+å¥æ˜¥å¸®ç玻毒型挂å°æŒé¡¹åž®æŒŽåŸŽæŒ 政赴赵挡挺括拴拾挑指垫挣挤拼挖按挥
+挪æŸç”šé©è巷带è‰èŒ§èŒ¶è’茫è¡è£æ•…胡å—è¯æ ‡æž¯æŸ„æ ‹ç›¸æŸ¥æŸæŸ³æŸ±æŸ¿æ æ ‘è¦å’¸
+å¨æªç ”ç –åŽ˜åŽšç Œç é¢è€è€ç‰µæ®‹æ®ƒè½»é¸¦çš†èƒŒæˆ˜ç‚¹ä¸´è§ˆç«–çœå‰Šå°æ˜¯ç›¼çœ¨å“„显哑
+å†’æ˜ æ˜Ÿæ˜¨ç•è¶´èƒƒè´µç•Œè™¹è™¾èšæ€èš‚虽å“咽骂哗咱å“哈咬咳哪ç‚峡罚贱贴骨钞
+钟钢钥钩å¸ç¼¸æ‹œçœ‹çŸ©æ€Žç‰²é€‰é€‚秒香ç§ç§‹ç§‘é‡å¤ç«¿æ®µä¾¿ä¿©è´·é¡ºä¿®ä¿ä¿ƒä¾®ä¿ä¿—
+俘信皇泉鬼侵追俊盾待律很须å™å‰‘逃食盆胆胜胞胖脉勉ç‹ç‹®ç‹¬ç‹¡ç‹±ç‹ 贸怨
+急饶蚀饺饼弯将奖哀äºäº®åº¦è¿¹åºç–®ç–¯ç–«ç–¤å§¿äº²éŸ³å¸æ–½é—»é˜€é˜å·®å…»ç¾Žå§œå›é€
+类迷å‰é¦–逆总炼炸炮烂剃æ´æ´ªæ´’浇浊洞测洗活派洽染济洋洲浑浓津æ’æ¢æ°
+æ¼æ¨ä¸¾è§‰å®£å®¤å®«å®ªçªç©¿çªƒå®¢å† è¯æ‰è¢„祖神ç¥è¯¯è¯±è¯´è¯µåž¦é€€æ—¢å±‹æ˜¼è´¹é™¡çœ‰å©
+é™¤é™©é™¢å¨ƒå§¥å§¨å§»å¨‡æ€’æž¶è´ºç›ˆå‹‡æ€ æŸ”åž’ç»‘ç»’ç»“ç»•éª„ç»˜ç»™ç»œéª†ç»ç»žç»Ÿ
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/components/Player.png b/tests/cpp-tests/Resources/components/Player.png
new file mode 100755
index 0000000000..77d4470de0
Binary files /dev/null and b/tests/cpp-tests/Resources/components/Player.png differ
diff --git a/tests/cpp-tests/Resources/components/Projectile.png b/tests/cpp-tests/Resources/components/Projectile.png
new file mode 100755
index 0000000000..548fe43293
Binary files /dev/null and b/tests/cpp-tests/Resources/components/Projectile.png differ
diff --git a/tests/cpp-tests/Resources/components/Target.png b/tests/cpp-tests/Resources/components/Target.png
new file mode 100755
index 0000000000..22906f3c02
Binary files /dev/null and b/tests/cpp-tests/Resources/components/Target.png differ
diff --git a/tests/cpp-tests/Resources/configs/config-example.plist b/tests/cpp-tests/Resources/configs/config-example.plist
new file mode 100755
index 0000000000..b680f89421
--- /dev/null
+++ b/tests/cpp-tests/Resources/configs/config-example.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ data
+
+ cocos2d.x.fps
+ 60
+ cocos2d.x.display_fps
+
+ cocos2d.x.gl.projection
+ 3d
+ cocos2d.x.texture.pixel_format_for_png
+ rgba8888
+ cocos2d.x.texture.pvrv2_has_alpha_premultiplied
+
+
+ metadata
+
+ format
+ 1
+
+
+
diff --git a/tests/cpp-tests/Resources/configs/config-test-invalid.plist b/tests/cpp-tests/Resources/configs/config-test-invalid.plist
new file mode 100755
index 0000000000..2c894b6f3a
--- /dev/null
+++ b/tests/cpp-tests/Resources/configs/config-test-invalid.plist
@@ -0,0 +1,282 @@
+
+
+
+
+ texture
+
+ width
+ 512
+ height
+ 256
+
+ frames
+
+ grossini_dance_01.png
+
+ x
+ 347
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_02.png
+
+ x
+ 215
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_03.png
+
+ x
+ 151
+ y
+ 111
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_04.png
+
+ x
+ 1
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_05.png
+
+ x
+ 76
+ y
+ 111
+ width
+ 74
+ height
+ 109
+ offsetX
+ -0.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_06.png
+
+ x
+ 399
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_07.png
+
+ x
+ 105
+ y
+ 1
+ width
+ 63
+ height
+ 109
+ offsetX
+ -6
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_08.png
+
+ x
+ 1
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_09.png
+
+ x
+ 295
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_10.png
+
+ x
+ 232
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_11.png
+
+ x
+ 169
+ y
+ 1
+ width
+ 62
+ height
+ 109
+ offsetX
+ 5.5
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_12.png
+
+ x
+ 279
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_13.png
+
+ x
+ 53
+ y
+ 1
+ width
+ 51
+ height
+ 109
+ offsetX
+ 0
+ offsetY
+ -1
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+ grossini_dance_14.png
+
+ x
+ 331
+ y
+ 111
+ width
+ 51
+ height
+ 106
+ offsetX
+ 0
+ offsetY
+ -2.5
+ originalWidth
+ 85
+ originalHeight
+ -121
+
+
+
+
diff --git a/tests/cpp-tests/Resources/configs/config-test-ok.plist b/tests/cpp-tests/Resources/configs/config-test-ok.plist
new file mode 100755
index 0000000000..a4d08007cc
--- /dev/null
+++ b/tests/cpp-tests/Resources/configs/config-test-ok.plist
@@ -0,0 +1,30 @@
+
+
+
+
+ data
+
+ test.1
+ test1
+ test.2
+ test2
+ test.3
+ test3
+ cocos2d.x.fps
+ 60
+ cocos2d.x.display_fps
+
+ cocos2d.x.gl.projection
+ 3d
+ cocos2d.x.texture.pixel_format_for_png
+ rgba8888
+ cocos2d.x.texture.pvrv2_has_alpha_premultiplied
+
+
+ metadata
+
+ format
+ 1
+
+
+
diff --git a/tests/cpp-tests/Resources/effect1.raw b/tests/cpp-tests/Resources/effect1.raw
new file mode 100755
index 0000000000..d427d2844a
Binary files /dev/null and b/tests/cpp-tests/Resources/effect1.raw differ
diff --git a/tests/cpp-tests/Resources/effect1.wav b/tests/cpp-tests/Resources/effect1.wav
new file mode 100755
index 0000000000..f8d4292d0f
Binary files /dev/null and b/tests/cpp-tests/Resources/effect1.wav differ
diff --git a/tests/cpp-tests/Resources/effect2.ogg b/tests/cpp-tests/Resources/effect2.ogg
new file mode 100755
index 0000000000..32a10e3a01
Binary files /dev/null and b/tests/cpp-tests/Resources/effect2.ogg differ
diff --git a/tests/cpp-tests/Resources/extensions/CCControlColourPickerSpriteSheet.plist b/tests/cpp-tests/Resources/extensions/CCControlColourPickerSpriteSheet.plist
new file mode 100755
index 0000000000..040712dafb
--- /dev/null
+++ b/tests/cpp-tests/Resources/extensions/CCControlColourPickerSpriteSheet.plist
@@ -0,0 +1,113 @@
+
+
+
+
+ frames
+
+ colourPicker.png
+
+ frame
+ {{484,2},{15,15}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{15,15}}
+ sourceSize
+ {15,15}
+
+ colourPickerBackground.png
+
+ frame
+ {{182,156},{112,112}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{112,112}}
+ sourceSize
+ {112,112}
+
+ colourPickerOverlay.png
+
+ frame
+ {{336,116},{112,112}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{112,112}}
+ sourceSize
+ {112,112}
+
+ colourPickerShadow.png
+
+ frame
+ {{336,2},{112,112}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{112,112}}
+ sourceSize
+ {112,112}
+
+ huePickerBackground.png
+
+ frame
+ {{182,2},{152,152}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{152,152}}
+ sourceSize
+ {152,152}
+
+ menuCircleWhite.png
+
+ frame
+ {{450,2},{32,32}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{32,32}}
+ sourceSize
+ {32,32}
+
+ menuColourPanelBackground.png
+
+ frame
+ {{2,2},{178,168}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{178,168}}
+ sourceSize
+ {178,168}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ CCControlColourPickerSpriteSheet.png
+ size
+ {512,512}
+ smartupdate
+ $TexturePacker:SmartUpdate:d2864960f8710950545c0c206dff4f61$
+ textureFileName
+ CCControlColourPickerSpriteSheet.png
+
+
+
diff --git a/tests/cpp-tests/Resources/extensions/CCControlColourPickerSpriteSheet.png b/tests/cpp-tests/Resources/extensions/CCControlColourPickerSpriteSheet.png
new file mode 100755
index 0000000000..c49479ffaa
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/CCControlColourPickerSpriteSheet.png differ
diff --git a/tests/cpp-tests/Resources/extensions/background.png b/tests/cpp-tests/Resources/extensions/background.png
new file mode 100755
index 0000000000..500d95937f
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/background.png differ
diff --git a/tests/cpp-tests/Resources/extensions/button.png b/tests/cpp-tests/Resources/extensions/button.png
new file mode 100755
index 0000000000..816cf6e36c
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/button.png differ
diff --git a/tests/cpp-tests/Resources/extensions/buttonBackground.png b/tests/cpp-tests/Resources/extensions/buttonBackground.png
new file mode 100755
index 0000000000..a46706102b
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/buttonBackground.png differ
diff --git a/tests/cpp-tests/Resources/extensions/buttonHighlighted.png b/tests/cpp-tests/Resources/extensions/buttonHighlighted.png
new file mode 100755
index 0000000000..f2073e86d2
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/buttonHighlighted.png differ
diff --git a/tests/cpp-tests/Resources/extensions/green_edit.png b/tests/cpp-tests/Resources/extensions/green_edit.png
new file mode 100755
index 0000000000..f3b22a4adc
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/green_edit.png differ
diff --git a/tests/cpp-tests/Resources/extensions/orange_edit.png b/tests/cpp-tests/Resources/extensions/orange_edit.png
new file mode 100755
index 0000000000..e1f7c30f74
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/orange_edit.png differ
diff --git a/tests/cpp-tests/Resources/extensions/potentiometerButton.png b/tests/cpp-tests/Resources/extensions/potentiometerButton.png
new file mode 100755
index 0000000000..fb76d094d5
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/potentiometerButton.png differ
diff --git a/tests/cpp-tests/Resources/extensions/potentiometerProgress.png b/tests/cpp-tests/Resources/extensions/potentiometerProgress.png
new file mode 100755
index 0000000000..6bd8b32636
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/potentiometerProgress.png differ
diff --git a/tests/cpp-tests/Resources/extensions/potentiometerTrack.png b/tests/cpp-tests/Resources/extensions/potentiometerTrack.png
new file mode 100755
index 0000000000..445c3ba657
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/potentiometerTrack.png differ
diff --git a/tests/cpp-tests/Resources/extensions/ribbon.png b/tests/cpp-tests/Resources/extensions/ribbon.png
new file mode 100755
index 0000000000..b80fb94444
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/ribbon.png differ
diff --git a/tests/cpp-tests/Resources/extensions/sliderProgress.png b/tests/cpp-tests/Resources/extensions/sliderProgress.png
new file mode 100755
index 0000000000..81d517307d
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/sliderProgress.png differ
diff --git a/tests/cpp-tests/Resources/extensions/sliderProgress2.png b/tests/cpp-tests/Resources/extensions/sliderProgress2.png
new file mode 100755
index 0000000000..3b8794e38c
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/sliderProgress2.png differ
diff --git a/tests/cpp-tests/Resources/extensions/sliderThumb.png b/tests/cpp-tests/Resources/extensions/sliderThumb.png
new file mode 100755
index 0000000000..901803d70f
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/sliderThumb.png differ
diff --git a/tests/cpp-tests/Resources/extensions/sliderTrack.png b/tests/cpp-tests/Resources/extensions/sliderTrack.png
new file mode 100755
index 0000000000..59b8dc91b1
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/sliderTrack.png differ
diff --git a/tests/cpp-tests/Resources/extensions/sliderTrack2.png b/tests/cpp-tests/Resources/extensions/sliderTrack2.png
new file mode 100755
index 0000000000..dbc3173b87
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/sliderTrack2.png differ
diff --git a/tests/cpp-tests/Resources/extensions/stepper-minus.png b/tests/cpp-tests/Resources/extensions/stepper-minus.png
new file mode 100755
index 0000000000..bae9cb4725
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/stepper-minus.png differ
diff --git a/tests/cpp-tests/Resources/extensions/stepper-plus.png b/tests/cpp-tests/Resources/extensions/stepper-plus.png
new file mode 100755
index 0000000000..82b0673077
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/stepper-plus.png differ
diff --git a/tests/cpp-tests/Resources/extensions/switch-mask.png b/tests/cpp-tests/Resources/extensions/switch-mask.png
new file mode 100755
index 0000000000..fc49f947d7
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/switch-mask.png differ
diff --git a/tests/cpp-tests/Resources/extensions/switch-off.png b/tests/cpp-tests/Resources/extensions/switch-off.png
new file mode 100755
index 0000000000..ec2992a424
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/switch-off.png differ
diff --git a/tests/cpp-tests/Resources/extensions/switch-on.png b/tests/cpp-tests/Resources/extensions/switch-on.png
new file mode 100755
index 0000000000..2d8acc00e3
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/switch-on.png differ
diff --git a/tests/cpp-tests/Resources/extensions/switch-thumb.png b/tests/cpp-tests/Resources/extensions/switch-thumb.png
new file mode 100755
index 0000000000..a7363e5ac3
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/switch-thumb.png differ
diff --git a/tests/cpp-tests/Resources/extensions/yellow_edit.png b/tests/cpp-tests/Resources/extensions/yellow_edit.png
new file mode 100755
index 0000000000..f9dc6b114d
Binary files /dev/null and b/tests/cpp-tests/Resources/extensions/yellow_edit.png differ
diff --git a/tests/cpp-tests/Resources/fileLookup.plist b/tests/cpp-tests/Resources/fileLookup.plist
new file mode 100755
index 0000000000..7a04cd9ea7
--- /dev/null
+++ b/tests/cpp-tests/Resources/fileLookup.plist
@@ -0,0 +1,13 @@
+
+
+
+
+ filenames
+
+ metadata
+
+ version
+ 1
+
+
+
diff --git a/tests/cpp-tests/Resources/fonts/A Damn Mess.ttf b/tests/cpp-tests/Resources/fonts/A Damn Mess.ttf
new file mode 100755
index 0000000000..e3d2a40095
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/A Damn Mess.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Abberancy.ttf b/tests/cpp-tests/Resources/fonts/Abberancy.ttf
new file mode 100755
index 0000000000..cb1b43ee08
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Abberancy.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Abduction.ttf b/tests/cpp-tests/Resources/fonts/Abduction.ttf
new file mode 100755
index 0000000000..1c20f9ab22
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Abduction.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/American Typewriter.ttf b/tests/cpp-tests/Resources/fonts/American Typewriter.ttf
new file mode 100755
index 0000000000..8ef0d3c9a5
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/American Typewriter.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Courier New.ttf b/tests/cpp-tests/Resources/fonts/Courier New.ttf
new file mode 100755
index 0000000000..ebb3361a7a
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Courier New.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Japanese.ttf b/tests/cpp-tests/Resources/fonts/Japanese.ttf
new file mode 100755
index 0000000000..a96886e6a2
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Japanese.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Marker Felt.ttf b/tests/cpp-tests/Resources/fonts/Marker Felt.ttf
new file mode 100755
index 0000000000..3752ef3110
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Marker Felt.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Paint Boy.ttf b/tests/cpp-tests/Resources/fonts/Paint Boy.ttf
new file mode 100755
index 0000000000..42088720ca
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Paint Boy.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Roboto.bmf.fnt b/tests/cpp-tests/Resources/fonts/Roboto.bmf.fnt
new file mode 100755
index 0000000000..23d70cfbb9
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Roboto.bmf.fnt differ
diff --git a/tests/cpp-tests/Resources/fonts/Roboto.bmf_0.png b/tests/cpp-tests/Resources/fonts/Roboto.bmf_0.png
new file mode 100755
index 0000000000..ddf50bdd13
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Roboto.bmf_0.png differ
diff --git a/tests/cpp-tests/Resources/fonts/Schwarzwald Regular.ttf b/tests/cpp-tests/Resources/fonts/Schwarzwald Regular.ttf
new file mode 100755
index 0000000000..1062de0d1c
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Schwarzwald Regular.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Scissor Cuts.ttf b/tests/cpp-tests/Resources/fonts/Scissor Cuts.ttf
new file mode 100755
index 0000000000..0203661868
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Scissor Cuts.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/Thonburi.ttf b/tests/cpp-tests/Resources/fonts/Thonburi.ttf
new file mode 100755
index 0000000000..ab579da818
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/Thonburi.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/ThonburiBold.ttf b/tests/cpp-tests/Resources/fonts/ThonburiBold.ttf
new file mode 100755
index 0000000000..cce195a8ee
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/ThonburiBold.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/arial-26-en-ru.fnt b/tests/cpp-tests/Resources/fonts/arial-26-en-ru.fnt
new file mode 100755
index 0000000000..47ec88cef4
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/arial-26-en-ru.fnt
@@ -0,0 +1,638 @@
+info face="Arial" size=26 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=4 padding=0,0,0,0 spacing=2,2 outline=1
+common lineHeight=26 base=21 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=2 redChnl=0 greenChnl=0 blueChnl=0
+page id=0 file="arial-26-en-ru_0.png"
+chars count=447
+char id=32 x=344 y=306 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=15
+char id=33 x=233 y=232 width=5 height=19 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=34 x=133 y=312 width=9 height=9 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=15
+char id=35 x=68 y=217 width=15 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=36 x=268 y=78 width=14 height=23 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15
+char id=37 x=262 y=103 width=21 height=20 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=15
+char id=38 x=177 y=125 width=17 height=20 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15
+char id=39 x=144 y=312 width=5 height=9 xoffset=-1 yoffset=3 xadvance=4 page=0 chnl=15
+char id=40 x=222 y=52 width=8 height=24 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15
+char id=41 x=232 y=52 width=8 height=24 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=42 x=110 y=312 width=10 height=10 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=15
+char id=43 x=428 y=284 width=14 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=44 x=151 y=312 width=5 height=8 xoffset=0 yoffset=17 xadvance=6 page=0 chnl=15
+char id=45 x=292 y=307 width=9 height=5 xoffset=-1 yoffset=12 xadvance=7 page=0 chnl=15
+char id=46 x=325 y=306 width=5 height=5 xoffset=0 yoffset=17 xadvance=6 page=0 chnl=15
+char id=47 x=222 y=232 width=9 height=19 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=48 x=176 y=148 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=49 x=501 y=145 width=9 height=19 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=50 x=416 y=209 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=51 x=144 y=148 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=52 x=400 y=209 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=53 x=384 y=209 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=54 x=112 y=149 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=55 x=120 y=237 width=13 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=56 x=80 y=152 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=57 x=64 y=152 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=58 x=389 y=286 width=5 height=15 xoffset=0 yoffset=7 xadvance=6 page=0 chnl=15
+char id=59 x=337 y=252 width=5 height=18 xoffset=0 yoffset=7 xadvance=6 page=0 chnl=15
+char id=60 x=396 y=286 width=14 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=61 x=78 y=313 width=14 height=10 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=62 x=412 y=284 width=14 height=14 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=63 x=494 y=123 width=14 height=20 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15
+char id=64 x=66 y=0 width=24 height=25 xoffset=0 yoffset=2 xadvance=23 page=0 chnl=15
+char id=65 x=431 y=167 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=66 x=204 y=211 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=67 x=139 y=126 width=17 height=20 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=68 x=415 y=188 width=16 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=69 x=102 y=216 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=70 x=320 y=211 width=14 height=19 xoffset=0 yoffset=3 xadvance=14 page=0 chnl=15
+char id=71 x=42 y=130 width=18 height=20 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=72 x=187 y=212 width=15 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=73 x=247 y=232 width=5 height=19 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=74 x=460 y=145 width=12 height=20 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=75 x=451 y=188 width=16 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=76 x=30 y=239 width=13 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=77 x=451 y=167 width=18 height=19 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=15
+char id=78 x=170 y=212 width=15 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=79 x=484 y=101 width=19 height=20 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=80 x=153 y=213 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=81 x=22 y=107 width=19 height=21 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=82 x=140 y=192 width=17 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=83 x=232 y=125 width=16 height=20 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15
+char id=84 x=271 y=190 width=16 height=19 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=85 x=250 y=125 width=15 height=20 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=86 x=40 y=196 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=87 x=66 y=174 width=25 height=19 xoffset=-1 yoffset=3 xadvance=23 page=0 chnl=15
+char id=88 x=20 y=196 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=89 x=100 y=195 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=90 x=289 y=190 width=16 height=19 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=91 x=278 y=52 width=7 height=24 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=92 x=211 y=232 width=9 height=19 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=93 x=287 y=52 width=7 height=24 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=94 x=0 y=314 width=12 height=12 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=15
+char id=95 x=256 y=307 width=16 height=5 xoffset=-1 yoffset=22 xadvance=13 page=0 chnl=15
+char id=96 x=238 y=308 width=7 height=6 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=97 x=32 y=297 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=98 x=222 y=147 width=13 height=20 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=99 x=94 y=296 width=13 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=100 x=237 y=147 width=13 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=101 x=16 y=297 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=102 x=0 y=175 width=10 height=20 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=15
+char id=103 x=417 y=145 width=13 height=20 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=104 x=45 y=238 width=13 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=105 x=240 y=232 width=5 height=19 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=106 x=242 y=52 width=7 height=24 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=15
+char id=107 x=105 y=237 width=13 height=19 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=15
+char id=108 x=505 y=98 width=5 height=19 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=109 x=21 y=280 width=19 height=15 xoffset=0 yoffset=7 xadvance=19 page=0 chnl=15
+char id=110 x=124 y=295 width=13 height=15 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=111 x=0 y=297 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=112 x=297 y=147 width=13 height=20 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=113 x=327 y=146 width=13 height=20 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=114 x=378 y=288 width=9 height=15 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=15
+char id=115 x=64 y=296 width=13 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=116 x=200 y=233 width=9 height=19 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=117 x=169 y=292 width=13 height=15 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=118 x=465 y=267 width=14 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=119 x=488 y=250 width=20 height=15 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=15
+char id=120 x=449 y=267 width=14 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=121 x=334 y=123 width=14 height=20 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=122 x=497 y=267 width=13 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=123 x=211 y=52 width=9 height=24 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=124 x=505 y=26 width=4 height=24 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=125 x=200 y=52 width=9 height=24 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=126 x=175 y=309 width=14 height=7 xoffset=-1 yoffset=9 xadvance=13 page=0 chnl=15
+char id=160 x=339 y=306 width=3 height=3 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=15
+char id=161 x=275 y=232 width=5 height=19 xoffset=1 yoffset=7 xadvance=7 page=0 chnl=15
+char id=162 x=127 y=53 width=13 height=24 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=163 x=267 y=125 width=15 height=20 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15
+char id=164 x=444 y=284 width=14 height=13 xoffset=-1 yoffset=6 xadvance=13 page=0 chnl=15
+char id=165 x=0 y=218 width=15 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=166 x=296 y=52 width=4 height=24 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=167 x=32 y=56 width=14 height=24 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15
+char id=168 x=314 y=306 width=9 height=5 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=169 x=354 y=101 width=20 height=20 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15
+char id=170 x=66 y=313 width=10 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15
+char id=171 x=489 y=284 width=12 height=13 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=172 x=94 y=313 width=14 height=10 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=173 x=303 y=307 width=9 height=5 xoffset=-1 yoffset=12 xadvance=7 page=0 chnl=15
+char id=174 x=420 y=101 width=20 height=20 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15
+char id=175 x=274 y=307 width=16 height=5 xoffset=-1 yoffset=0 xadvance=12 page=0 chnl=15
+char id=176 x=122 y=312 width=9 height=9 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15
+char id=177 x=362 y=252 width=14 height=17 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=15
+char id=178 x=42 y=314 width=10 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=179 x=54 y=314 width=10 height=11 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=15
+char id=180 x=247 y=307 width=7 height=6 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=15
+char id=181 x=15 y=239 width=13 height=19 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=182 x=301 y=26 width=15 height=24 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=183 x=332 y=306 width=5 height=5 xoffset=1 yoffset=10 xadvance=7 page=0 chnl=15
+char id=184 x=203 y=308 width=7 height=7 xoffset=0 yoffset=19 xadvance=7 page=0 chnl=15
+char id=185 x=503 y=284 width=7 height=11 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15
+char id=186 x=30 y=314 width=10 height=11 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=15
+char id=187 x=475 y=284 width=12 height=13 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=15
+char id=188 x=376 y=101 width=20 height=20 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=15
+char id=189 x=398 y=101 width=20 height=20 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=15
+char id=190 x=191 y=103 width=22 height=20 xoffset=-1 yoffset=2 xadvance=19 page=0 chnl=15
+char id=191 x=267 y=147 width=13 height=20 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
+char id=192 x=20 y=30 width=18 height=24 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=193 x=0 y=30 width=18 height=24 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=194 x=40 y=28 width=18 height=24 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=195 x=0 y=82 width=18 height=23 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=196 x=376 y=77 width=18 height=22 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=197 x=473 y=52 width=18 height=23 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=198 x=12 y=175 width=25 height=19 xoffset=-1 yoffset=3 xadvance=23 page=0 chnl=15
+char id=199 x=117 y=27 width=17 height=24 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=200 x=318 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=201 x=420 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=202 x=471 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=203 x=469 y=77 width=15 height=22 xoffset=0 yoffset=0 xadvance=15 page=0 chnl=15
+char id=204 x=260 y=52 width=7 height=24 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=15
+char id=205 x=269 y=52 width=7 height=24 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=15
+char id=206 x=500 y=0 width=10 height=24 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=15
+char id=207 x=0 y=107 width=9 height=22 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=208 x=411 y=167 width=18 height=19 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=15
+char id=209 x=186 y=78 width=15 height=23 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=210 x=358 y=0 width=19 height=24 xoffset=-1 yoffset=-1 xadvance=18 page=0 chnl=15
+char id=211 x=337 y=0 width=19 height=24 xoffset=-1 yoffset=-1 xadvance=18 page=0 chnl=15
+char id=212 x=316 y=0 width=19 height=24 xoffset=-1 yoffset=-1 xadvance=18 page=0 chnl=15
+char id=213 x=379 y=0 width=19 height=24 xoffset=-1 yoffset=-1 xadvance=18 page=0 chnl=15
+char id=214 x=452 y=52 width=19 height=23 xoffset=-1 yoffset=0 xadvance=18 page=0 chnl=15
+char id=215 x=460 y=284 width=13 height=13 xoffset=0 yoffset=6 xadvance=13 page=0 chnl=15
+char id=216 x=43 y=107 width=19 height=21 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=217 x=488 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=218 x=386 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=219 x=335 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=220 x=203 y=78 width=15 height=23 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=15
+char id=221 x=400 y=0 width=18 height=24 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=222 x=85 y=216 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=223 x=398 y=123 width=14 height=20 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=15
+char id=224 x=414 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=225 x=430 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=226 x=446 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=227 x=352 y=210 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=228 x=144 y=258 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=229 x=64 y=105 width=14 height=21 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15
+char id=230 x=418 y=250 width=22 height=15 xoffset=-1 yoffset=7 xadvance=20 page=0 chnl=15
+char id=231 x=282 y=147 width=13 height=20 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=232 x=160 y=148 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=233 x=32 y=153 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=234 x=48 y=152 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=235 x=64 y=259 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=236 x=503 y=188 width=7 height=19 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=237 x=503 y=77 width=7 height=19 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=238 x=188 y=233 width=10 height=19 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=15
+char id=239 x=326 y=252 width=9 height=18 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=240 x=462 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=241 x=135 y=237 width=13 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=242 x=366 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=243 x=350 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=244 x=478 y=123 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=245 x=480 y=209 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=246 x=80 y=259 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=247 x=14 y=314 width=14 height=11 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=248 x=378 y=250 width=14 height=17 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=15
+char id=249 x=192 y=147 width=13 height=20 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=250 x=387 y=145 width=13 height=20 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=251 x=402 y=145 width=13 height=20 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=252 x=160 y=255 width=13 height=18 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=253 x=80 y=53 width=14 height=24 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=254 x=157 y=52 width=13 height=24 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=255 x=220 y=78 width=14 height=23 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=1024 x=352 y=26 width=15 height=24 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=1025 x=486 y=77 width=15 height=22 xoffset=0 yoffset=0 xadvance=15 page=0 chnl=15
+char id=1026 x=285 y=102 width=21 height=20 xoffset=-1 yoffset=3 xadvance=20 page=0 chnl=15
+char id=1027 x=112 y=53 width=13 height=24 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=15
+char id=1028 x=101 y=127 width=17 height=20 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=1029 x=214 y=125 width=16 height=20 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=15
+char id=1030 x=268 y=232 width=5 height=19 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=1031 x=11 y=107 width=9 height=22 xoffset=-1 yoffset=0 xadvance=6 page=0 chnl=15
+char id=1032 x=446 y=145 width=12 height=20 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=1033 x=113 y=104 width=26 height=20 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=15
+char id=1034 x=145 y=170 width=23 height=19 xoffset=0 yoffset=3 xadvance=23 page=0 chnl=15
+char id=1035 x=283 y=169 width=20 height=19 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=15
+char id=1036 x=0 y=56 width=14 height=24 xoffset=0 yoffset=-1 xadvance=13 page=0 chnl=15
+char id=1037 x=230 y=26 width=16 height=24 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=1038 x=60 y=28 width=17 height=24 xoffset=-1 yoffset=-1 xadvance=14 page=0 chnl=15
+char id=1039 x=212 y=26 width=16 height=24 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1040 x=60 y=196 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1041 x=34 y=217 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1042 x=469 y=188 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1043 x=496 y=209 width=13 height=19 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=1044 x=493 y=52 width=17 height=23 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1045 x=119 y=216 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1046 x=119 y=171 width=24 height=19 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=15
+char id=1047 x=301 y=124 width=15 height=20 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15
+char id=1048 x=253 y=190 width=16 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1049 x=117 y=79 width=16 height=23 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=1050 x=288 y=211 width=14 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1051 x=196 y=125 width=16 height=20 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1052 x=0 y=197 width=18 height=19 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=15
+char id=1053 x=221 y=211 width=15 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1054 x=442 y=101 width=19 height=20 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=1055 x=235 y=190 width=16 height=19 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1056 x=51 y=217 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1057 x=120 y=126 width=17 height=20 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=1058 x=325 y=190 width=16 height=19 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=1059 x=158 y=126 width=17 height=20 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=1060 x=390 y=167 width=19 height=19 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=15
+char id=1061 x=491 y=167 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1062 x=155 y=26 width=17 height=24 xoffset=0 yoffset=3 xadvance=17 page=0 chnl=15
+char id=1063 x=17 y=218 width=15 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1064 x=170 y=170 width=21 height=19 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=15
+char id=1065 x=225 y=0 width=22 height=24 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=15
+char id=1066 x=261 y=169 width=20 height=19 xoffset=-1 yoffset=3 xadvance=18 page=0 chnl=15
+char id=1067 x=369 y=167 width=19 height=19 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=15
+char id=1068 x=486 y=188 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1069 x=82 y=127 width=17 height=20 xoffset=-1 yoffset=2 xadvance=16 page=0 chnl=15
+char id=1070 x=166 y=103 width=23 height=20 xoffset=0 yoffset=2 xadvance=23 page=0 chnl=15
+char id=1071 x=159 y=191 width=17 height=19 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1072 x=321 y=272 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1073 x=382 y=123 width=14 height=20 xoffset=-1 yoffset=2 xadvance=13 page=0 chnl=15
+char id=1074 x=283 y=290 width=12 height=15 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1075 x=366 y=288 width=10 height=15 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=1076 x=445 y=230 width=15 height=18 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1077 x=353 y=271 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1078 x=63 y=279 width=18 height=15 xoffset=-1 yoffset=7 xadvance=15 page=0 chnl=15
+char id=1079 x=269 y=290 width=12 height=15 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1080 x=139 y=295 width=13 height=15 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1081 x=0 y=239 width=13 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1082 x=339 y=289 width=12 height=15 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1083 x=369 y=271 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1084 x=270 y=273 width=16 height=15 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1085 x=213 y=291 width=12 height=15 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1086 x=385 y=269 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1087 x=227 y=291 width=12 height=15 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1088 x=372 y=145 width=13 height=20 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1089 x=154 y=295 width=13 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1090 x=184 y=292 width=13 height=15 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1091 x=318 y=124 width=14 height=20 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1092 x=294 y=0 width=20 height=24 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=15
+char id=1093 x=401 y=267 width=14 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1094 x=48 y=259 width=14 height=18 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1095 x=297 y=290 width=12 height=15 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1096 x=0 y=280 width=19 height=15 xoffset=0 yoffset=7 xadvance=18 page=0 chnl=15
+char id=1097 x=289 y=232 width=20 height=18 xoffset=0 yoffset=7 xadvance=19 page=0 chnl=15
+char id=1098 x=198 y=274 width=16 height=15 xoffset=-1 yoffset=7 xadvance=14 page=0 chnl=15
+char id=1099 x=252 y=273 width=16 height=15 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1100 x=311 y=289 width=12 height=15 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1101 x=325 y=289 width=12 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1102 x=83 y=279 width=18 height=15 xoffset=0 yoffset=7 xadvance=17 page=0 chnl=15
+char id=1103 x=79 y=296 width=13 height=15 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1104 x=16 y=153 width=14 height=20 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1105 x=0 y=260 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1106 x=48 y=54 width=14 height=24 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1107 x=176 y=233 width=10 height=19 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15
+char id=1108 x=241 y=290 width=12 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1109 x=109 y=295 width=13 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1110 x=254 y=232 width=5 height=19 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=1111 x=315 y=252 width=9 height=18 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=15
+char id=1112 x=251 y=52 width=7 height=24 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=15
+char id=1113 x=442 y=250 width=22 height=15 xoffset=-1 yoffset=7 xadvance=21 page=0 chnl=15
+char id=1114 x=42 y=280 width=19 height=15 xoffset=0 yoffset=7 xadvance=19 page=0 chnl=15
+char id=1115 x=464 y=209 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1116 x=150 y=234 width=12 height=19 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15
+char id=1117 x=90 y=237 width=13 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1118 x=16 y=56 width=14 height=24 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=1119 x=276 y=253 width=12 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1120 x=80 y=105 width=31 height=20 xoffset=0 yoffset=2 xadvance=31 page=0 chnl=15
+char id=1121 x=179 y=275 width=17 height=15 xoffset=-1 yoffset=7 xadvance=14 page=0 chnl=15
+char id=1122 x=305 y=169 width=20 height=19 xoffset=-1 yoffset=3 xadvance=18 page=0 chnl=15
+char id=1123 x=379 y=188 width=16 height=19 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=1124 x=215 y=103 width=22 height=20 xoffset=1 yoffset=2 xadvance=22 page=0 chnl=15
+char id=1125 x=103 y=278 width=17 height=15 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1126 x=471 y=167 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1127 x=433 y=267 width=14 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1128 x=193 y=169 width=21 height=19 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=15
+char id=1129 x=160 y=275 width=17 height=15 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1130 x=239 y=169 width=20 height=19 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=15
+char id=1131 x=216 y=274 width=16 height=15 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1132 x=93 y=174 width=24 height=19 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=15
+char id=1133 x=466 y=250 width=20 height=15 xoffset=0 yoffset=7 xadvance=20 page=0 chnl=15
+char id=1134 x=20 y=0 width=14 height=28 xoffset=0 yoffset=-1 xadvance=14 page=0 chnl=15
+char id=1135 x=172 y=52 width=13 height=24 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=1136 x=348 y=167 width=19 height=19 xoffset=-1 yoffset=3 xadvance=18 page=0 chnl=15
+char id=1137 x=307 y=190 width=16 height=19 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1138 x=0 y=131 width=19 height=20 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=1139 x=481 y=267 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1140 x=308 y=102 width=21 height=20 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=1141 x=122 y=278 width=17 height=15 xoffset=-1 yoffset=7 xadvance=14 page=0 chnl=15
+char id=1142 x=249 y=0 width=21 height=24 xoffset=-1 yoffset=-1 xadvance=18 page=0 chnl=15
+char id=1143 x=178 y=191 width=17 height=19 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=1144 x=118 y=0 width=26 height=24 xoffset=0 yoffset=2 xadvance=25 page=0 chnl=15
+char id=1145 x=141 y=104 width=23 height=20 xoffset=-1 yoffset=7 xadvance=20 page=0 chnl=15
+char id=1146 x=310 y=77 width=21 height=22 xoffset=-1 yoffset=1 xadvance=19 page=0 chnl=15
+char id=1147 x=344 y=252 width=16 height=17 xoffset=-1 yoffset=6 xadvance=14 page=0 chnl=15
+char id=1148 x=36 y=0 width=28 height=26 xoffset=0 yoffset=-3 xadvance=27 page=0 chnl=15
+char id=1149 x=333 y=77 width=20 height=22 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15
+char id=1150 x=302 y=52 width=31 height=23 xoffset=0 yoffset=-1 xadvance=31 page=0 chnl=15
+char id=1151 x=390 y=230 width=17 height=18 xoffset=-1 yoffset=4 xadvance=14 page=0 chnl=15
+char id=1152 x=174 y=26 width=17 height=24 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15
+char id=1153 x=207 y=147 width=13 height=20 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1154 x=0 y=153 width=14 height=20 xoffset=-1 yoffset=2 xadvance=11 page=0 chnl=15
+char id=1155 x=191 y=309 width=10 height=7 xoffset=-5 yoffset=2 xadvance=0 page=0 chnl=15
+char id=1156 x=226 y=308 width=10 height=6 xoffset=-4 yoffset=3 xadvance=0 page=0 chnl=15
+char id=1157 x=212 y=308 width=5 height=7 xoffset=-2 yoffset=3 xadvance=0 page=0 chnl=15
+char id=1158 x=219 y=308 width=5 height=7 xoffset=-2 yoffset=3 xadvance=0 page=0 chnl=15
+char id=1159 x=158 y=312 width=15 height=7 xoffset=-7 yoffset=0 xadvance=0 page=0 chnl=15
+char id=1160 x=335 y=52 width=24 height=23 xoffset=-12 yoffset=3 xadvance=0 page=0 chnl=15
+char id=1161 x=92 y=0 width=24 height=25 xoffset=-11 yoffset=2 xadvance=0 page=0 chnl=15
+char id=1162 x=0 y=0 width=18 height=28 xoffset=0 yoffset=-1 xadvance=16 page=0 chnl=15
+char id=1163 x=152 y=78 width=15 height=23 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1164 x=216 y=190 width=17 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1165 x=368 y=209 width=14 height=19 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=1166 x=433 y=188 width=16 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1167 x=252 y=147 width=13 height=20 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1168 x=187 y=52 width=11 height=24 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=15
+char id=1169 x=164 y=234 width=10 height=19 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15
+char id=1170 x=136 y=213 width=15 height=19 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=1171 x=353 y=288 width=11 height=15 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=15
+char id=1172 x=369 y=26 width=15 height=24 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1173 x=312 y=146 width=13 height=20 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1174 x=174 y=0 width=24 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=15
+char id=1175 x=311 y=232 width=18 height=18 xoffset=-1 yoffset=7 xadvance=15 page=0 chnl=15
+char id=1176 x=437 y=26 width=15 height=24 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=15
+char id=1177 x=474 y=145 width=12 height=20 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1178 x=96 y=53 width=14 height=24 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1179 x=290 y=252 width=11 height=18 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1180 x=336 y=211 width=14 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1181 x=199 y=291 width=12 height=15 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1182 x=397 y=188 width=16 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1183 x=60 y=238 width=13 height=19 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=15
+char id=1184 x=327 y=168 width=19 height=19 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=15
+char id=1185 x=288 y=273 width=15 height=15 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1186 x=136 y=26 width=17 height=24 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1187 x=112 y=258 width=14 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1188 x=216 y=169 width=21 height=19 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=15
+char id=1189 x=234 y=273 width=16 height=15 xoffset=0 yoffset=7 xadvance=15 page=0 chnl=15
+char id=1190 x=146 y=0 width=26 height=24 xoffset=0 yoffset=3 xadvance=26 page=0 chnl=15
+char id=1191 x=331 y=101 width=21 height=20 xoffset=0 yoffset=7 xadvance=20 page=0 chnl=15
+char id=1192 x=21 y=131 width=19 height=20 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15
+char id=1193 x=305 y=272 width=14 height=15 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1194 x=193 y=26 width=17 height=24 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=15
+char id=1195 x=342 y=145 width=13 height=20 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1196 x=248 y=26 width=16 height=24 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=1197 x=205 y=254 width=13 height=18 xoffset=-1 yoffset=7 xadvance=10 page=0 chnl=15
+char id=1198 x=343 y=189 width=16 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1199 x=432 y=209 width=14 height=19 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1200 x=361 y=188 width=16 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1201 x=448 y=209 width=14 height=19 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1202 x=460 y=0 width=18 height=24 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1203 x=478 y=230 width=14 height=18 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1204 x=200 y=0 width=23 height=24 xoffset=-1 yoffset=3 xadvance=21 page=0 chnl=15
+char id=1205 x=371 y=230 width=17 height=18 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1206 x=98 y=27 width=17 height=24 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1207 x=128 y=258 width=14 height=18 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1208 x=238 y=211 width=15 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1209 x=255 y=290 width=12 height=15 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1210 x=255 y=211 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1211 x=75 y=238 width=13 height=19 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1212 x=239 y=103 width=21 height=20 xoffset=-1 yoffset=2 xadvance=20 page=0 chnl=15
+char id=1213 x=141 y=278 width=17 height=15 xoffset=-1 yoffset=7 xadvance=15 page=0 chnl=15
+char id=1214 x=387 y=52 width=21 height=23 xoffset=-1 yoffset=2 xadvance=20 page=0 chnl=15
+char id=1215 x=197 y=190 width=17 height=19 xoffset=-1 yoffset=7 xadvance=15 page=0 chnl=15
+char id=1216 x=282 y=232 width=5 height=19 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15
+char id=1217 x=361 y=52 width=24 height=23 xoffset=-1 yoffset=-1 xadvance=21 page=0 chnl=15
+char id=1218 x=120 y=192 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1219 x=454 y=26 width=15 height=24 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1220 x=357 y=145 width=13 height=20 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1221 x=420 y=0 width=18 height=24 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1222 x=409 y=230 width=16 height=18 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1223 x=266 y=26 width=16 height=24 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1224 x=432 y=145 width=12 height=20 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1225 x=440 y=0 width=18 height=24 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=15
+char id=1226 x=32 y=260 width=14 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1227 x=284 y=26 width=15 height=24 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1228 x=234 y=253 width=12 height=18 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1229 x=272 y=0 width=20 height=24 xoffset=0 yoffset=3 xadvance=19 page=0 chnl=15
+char id=1230 x=351 y=232 width=18 height=18 xoffset=0 yoffset=7 xadvance=16 page=0 chnl=15
+char id=1231 x=261 y=232 width=5 height=19 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15
+char id=1232 x=40 y=82 width=18 height=23 xoffset=-1 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=1233 x=272 y=211 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1234 x=396 y=77 width=18 height=22 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=1235 x=462 y=230 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1236 x=39 y=175 width=25 height=19 xoffset=-1 yoffset=3 xadvance=23 page=0 chnl=15
+char id=1237 x=394 y=250 width=22 height=15 xoffset=-1 yoffset=7 xadvance=20 page=0 chnl=15
+char id=1238 x=169 y=78 width=15 height=23 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=15
+char id=1239 x=304 y=211 width=14 height=19 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=15
+char id=1240 x=62 y=130 width=18 height=20 xoffset=-1 yoffset=2 xadvance=17 page=0 chnl=15
+char id=1241 x=337 y=272 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1242 x=20 y=82 width=18 height=23 xoffset=-1 yoffset=0 xadvance=17 page=0 chnl=15
+char id=1243 x=16 y=260 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1244 x=284 y=78 width=24 height=22 xoffset=-1 yoffset=0 xadvance=21 page=0 chnl=15
+char id=1245 x=331 y=232 width=18 height=18 xoffset=-1 yoffset=4 xadvance=15 page=0 chnl=15
+char id=1246 x=135 y=79 width=15 height=23 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15
+char id=1247 x=220 y=253 width=12 height=18 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=15
+char id=1248 x=284 y=125 width=15 height=20 xoffset=-1 yoffset=3 xadvance=14 page=0 chnl=15
+char id=1249 x=96 y=149 width=14 height=20 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=15
+char id=1250 x=416 y=77 width=16 height=22 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=15
+char id=1251 x=190 y=254 width=13 height=18 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1252 x=434 y=77 width=16 height=22 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=15
+char id=1253 x=175 y=255 width=13 height=18 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1254 x=431 y=52 width=19 height=23 xoffset=-1 yoffset=0 xadvance=18 page=0 chnl=15
+char id=1255 x=96 y=258 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1256 x=463 y=101 width=19 height=20 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=15
+char id=1257 x=417 y=267 width=14 height=15 xoffset=-1 yoffset=7 xadvance=13 page=0 chnl=15
+char id=1258 x=410 y=52 width=19 height=23 xoffset=-1 yoffset=0 xadvance=18 page=0 chnl=15
+char id=1259 x=494 y=230 width=14 height=18 xoffset=-1 yoffset=4 xadvance=13 page=0 chnl=15
+char id=1260 x=98 y=79 width=17 height=23 xoffset=-1 yoffset=0 xadvance=16 page=0 chnl=15
+char id=1261 x=248 y=253 width=12 height=18 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=1262 x=79 y=80 width=17 height=23 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15
+char id=1263 x=236 y=78 width=14 height=23 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=1264 x=60 y=80 width=17 height=23 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15
+char id=1265 x=252 y=78 width=14 height=23 xoffset=-1 yoffset=4 xadvance=11 page=0 chnl=15
+char id=1266 x=79 y=27 width=17 height=24 xoffset=-1 yoffset=-1 xadvance=14 page=0 chnl=15
+char id=1267 x=64 y=54 width=14 height=24 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=15
+char id=1268 x=452 y=77 width=15 height=22 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
+char id=1269 x=262 y=253 width=12 height=18 xoffset=-1 yoffset=4 xadvance=12 page=0 chnl=15
+char id=1270 x=142 y=52 width=13 height=24 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=15
+char id=1271 x=303 y=252 width=10 height=18 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
+char id=1272 x=355 y=77 width=19 height=22 xoffset=0 yoffset=0 xadvance=20 page=0 chnl=15
+char id=1273 x=427 y=230 width=16 height=18 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=15
+char id=1274 x=403 y=26 width=15 height=24 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=15
+char id=1275 x=488 y=145 width=11 height=20 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=15
+char id=1276 x=480 y=0 width=18 height=24 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1277 x=128 y=148 width=14 height=20 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+char id=1278 x=80 y=195 width=18 height=19 xoffset=-1 yoffset=3 xadvance=15 page=0 chnl=15
+char id=1279 x=48 y=297 width=14 height=15 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=15
+kernings count=186
+kerning first=32 second=65 amount=-1
+kerning first=1168 second=187 amount=-1
+kerning first=1168 second=171 amount=-1
+kerning first=1168 second=46 amount=-2
+kerning first=1168 second=44 amount=-2
+kerning first=1118 second=46 amount=-2
+kerning first=1118 second=44 amount=-2
+kerning first=1100 second=1095 amount=-1
+kerning first=1100 second=1090 amount=-1
+kerning first=1091 second=46 amount=-2
+kerning first=49 second=49 amount=-1
+kerning first=65 second=32 amount=-1
+kerning first=65 second=84 amount=-1
+kerning first=65 second=86 amount=-1
+kerning first=1091 second=44 amount=-2
+kerning first=65 second=89 amount=-1
+kerning first=1090 second=46 amount=-2
+kerning first=1090 second=44 amount=-2
+kerning first=1075 second=1076 amount=-1
+kerning first=1075 second=46 amount=-2
+kerning first=70 second=44 amount=-2
+kerning first=70 second=46 amount=-2
+kerning first=70 second=65 amount=-1
+kerning first=1075 second=44 amount=-2
+kerning first=76 second=84 amount=-1
+kerning first=76 second=86 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=89 amount=-1
+kerning first=1074 second=1095 amount=-1
+kerning first=1073 second=1083 amount=-1
+kerning first=1073 second=1076 amount=-1
+kerning first=80 second=44 amount=-3
+kerning first=80 second=46 amount=-3
+kerning first=80 second=65 amount=-1
+kerning first=1070 second=1083 amount=-1
+kerning first=1070 second=1076 amount=-1
+kerning first=1070 second=1061 amount=-1
+kerning first=1070 second=1058 amount=-1
+kerning first=1070 second=1051 amount=-1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-1
+kerning first=84 second=46 amount=-2
+kerning first=84 second=58 amount=-2
+kerning first=1070 second=1044 amount=-1
+kerning first=84 second=65 amount=-1
+kerning first=1068 second=1071 amount=-1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=99 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=1068 second=1063 amount=-1
+kerning first=84 second=111 amount=-2
+kerning first=1068 second=1061 amount=-1
+kerning first=84 second=115 amount=-2
+kerning first=1068 second=1058 amount=-2
+kerning first=84 second=119 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=86 second=44 amount=-2
+kerning first=86 second=45 amount=-1
+kerning first=86 second=46 amount=-2
+kerning first=1060 second=1059 amount=-1
+kerning first=1060 second=1058 amount=-1
+kerning first=86 second=65 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-1
+kerning first=1059 second=1103 amount=-1
+kerning first=86 second=111 amount=-1
+kerning first=1059 second=1102 amount=-1
+kerning first=1059 second=1097 amount=-1
+kerning first=1059 second=1096 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=1059 second=1094 amount=-1
+kerning first=87 second=46 amount=-1
+kerning first=1059 second=1093 amount=-1
+kerning first=1059 second=1089 amount=-1
+kerning first=1059 second=1088 amount=-1
+kerning first=1059 second=1087 amount=-1
+kerning first=1059 second=1086 amount=-1
+kerning first=1059 second=1085 amount=-1
+kerning first=1059 second=1084 amount=-1
+kerning first=1059 second=1083 amount=-1
+kerning first=1059 second=1082 amount=-1
+kerning first=1059 second=1080 amount=-1
+kerning first=1059 second=1079 amount=-1
+kerning first=89 second=44 amount=-3
+kerning first=89 second=45 amount=-2
+kerning first=89 second=46 amount=-3
+kerning first=89 second=58 amount=-1
+kerning first=1059 second=1077 amount=-1
+kerning first=89 second=65 amount=-1
+kerning first=89 second=97 amount=-1
+kerning first=89 second=101 amount=-2
+kerning first=1059 second=1076 amount=-1
+kerning first=89 second=111 amount=-2
+kerning first=89 second=112 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=89 second=117 amount=-1
+kerning first=89 second=118 amount=-1
+kerning first=1059 second=1075 amount=-1
+kerning first=1059 second=1074 amount=-1
+kerning first=114 second=44 amount=-1
+kerning first=114 second=46 amount=-1
+kerning first=1059 second=1044 amount=-1
+kerning first=118 second=44 amount=-1
+kerning first=118 second=46 amount=-1
+kerning first=119 second=44 amount=-1
+kerning first=119 second=46 amount=-1
+kerning first=121 second=44 amount=-1
+kerning first=121 second=46 amount=-1
+kerning first=1059 second=1040 amount=-1
+kerning first=1059 second=187 amount=-1
+kerning first=1059 second=171 amount=-1
+kerning first=1059 second=46 amount=-3
+kerning first=1059 second=44 amount=-3
+kerning first=1058 second=1103 amount=-1
+kerning first=1058 second=1102 amount=-1
+kerning first=1058 second=1100 amount=-1
+kerning first=1058 second=1099 amount=-1
+kerning first=1058 second=1097 amount=-1
+kerning first=1058 second=1093 amount=-1
+kerning first=1058 second=1091 amount=-1
+kerning first=1058 second=1089 amount=-1
+kerning first=1058 second=1088 amount=-1
+kerning first=1058 second=1087 amount=-1
+kerning first=1058 second=1086 amount=-1
+kerning first=1058 second=1084 amount=-1
+kerning first=1058 second=1083 amount=-1
+kerning first=1058 second=1082 amount=-1
+kerning first=1058 second=1080 amount=-1
+kerning first=1058 second=1077 amount=-1
+kerning first=1058 second=1074 amount=-1
+kerning first=1058 second=1072 amount=-1
+kerning first=1058 second=1054 amount=-1
+kerning first=1058 second=187 amount=-1
+kerning first=1058 second=171 amount=-1
+kerning first=1058 second=46 amount=-2
+kerning first=1058 second=44 amount=-2
+kerning first=1057 second=1061 amount=-1
+kerning first=1056 second=1086 amount=-1
+kerning first=1056 second=1077 amount=-1
+kerning first=1056 second=1076 amount=-1
+kerning first=1056 second=1061 amount=-1
+kerning first=1056 second=1058 amount=-1
+kerning first=1056 second=1051 amount=-1
+kerning first=1056 second=1044 amount=-1
+kerning first=1056 second=1040 amount=-1
+kerning first=1056 second=187 amount=-1
+kerning first=1056 second=46 amount=-4
+kerning first=1056 second=44 amount=-4
+kerning first=1054 second=1061 amount=-1
+kerning first=1043 second=1103 amount=-1
+kerning first=1043 second=1102 amount=-1
+kerning first=1043 second=1100 amount=-1
+kerning first=1043 second=1099 amount=-1
+kerning first=1043 second=1091 amount=-1
+kerning first=1043 second=1088 amount=-1
+kerning first=1043 second=1086 amount=-1
+kerning first=1043 second=1085 amount=-1
+kerning first=1043 second=1084 amount=-1
+kerning first=1043 second=1083 amount=-1
+kerning first=1043 second=1080 amount=-1
+kerning first=1043 second=1077 amount=-1
+kerning first=1043 second=1076 amount=-1
+kerning first=1043 second=1074 amount=-1
+kerning first=1043 second=1072 amount=-1
+kerning first=1043 second=1057 amount=-1
+kerning first=1043 second=1054 amount=-1
+kerning first=1043 second=1051 amount=-1
+kerning first=1043 second=1044 amount=-1
+kerning first=1043 second=1040 amount=-1
+kerning first=1043 second=187 amount=-1
+kerning first=1043 second=171 amount=-1
+kerning first=1043 second=46 amount=-2
+kerning first=1043 second=44 amount=-2
+kerning first=1042 second=1066 amount=-1
+kerning first=1042 second=1063 amount=-1
+kerning first=1042 second=1061 amount=-1
+kerning first=1042 second=1058 amount=-1
+kerning first=1041 second=1063 amount=-1
+kerning first=1041 second=1058 amount=-1
+kerning first=1040 second=1063 amount=-1
+kerning first=1040 second=1059 amount=-1
+kerning first=1040 second=1058 amount=-1
+kerning first=1027 second=187 amount=-1
+kerning first=1027 second=171 amount=-1
+kerning first=1027 second=46 amount=-2
+kerning first=1027 second=44 amount=-2
diff --git a/tests/cpp-tests/Resources/fonts/arial-26-en-ru_0.png b/tests/cpp-tests/Resources/fonts/arial-26-en-ru_0.png
new file mode 100755
index 0000000000..6bba537945
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/arial-26-en-ru_0.png differ
diff --git a/tests/cpp-tests/Resources/fonts/arial-unicode-26.GlyphProject b/tests/cpp-tests/Resources/fonts/arial-unicode-26.GlyphProject
new file mode 100755
index 0000000000..87994d2173
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/arial-unicode-26.GlyphProject differ
diff --git a/tests/cpp-tests/Resources/fonts/arial-unicode-26.fnt b/tests/cpp-tests/Resources/fonts/arial-unicode-26.fnt
new file mode 100755
index 0000000000..59971fd2cf
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/arial-unicode-26.fnt
@@ -0,0 +1,206 @@
+info face="ArialUnicodeMS" size=26 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=35 base=28 scaleW=512 scaleH=256 pages=1 packed=0
+page id=0 file="arial-unicode-26.png"
+chars count=202
+char id=64 x=2 y=2 width=29 height=29 xoffset=0 yoffset=8 xadvance=26 page=0 chnl=0 letter="@"
+char id=210 x=33 y=2 width=22 height=29 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0 letter="Ã’"
+char id=211 x=57 y=2 width=22 height=29 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0 letter="Ó"
+char id=212 x=81 y=2 width=22 height=29 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0 letter="Ô"
+char id=199 x=105 y=2 width=21 height=29 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="Ç"
+char id=217 x=128 y=2 width=19 height=29 xoffset=1 yoffset=3 xadvance=18 page=0 chnl=0 letter="Ù"
+char id=218 x=149 y=2 width=19 height=29 xoffset=1 yoffset=3 xadvance=18 page=0 chnl=0 letter="Ú"
+char id=219 x=170 y=2 width=19 height=29 xoffset=1 yoffset=3 xadvance=18 page=0 chnl=0 letter="Û"
+char id=182 x=191 y=2 width=18 height=29 xoffset=-1 yoffset=8 xadvance=13 page=0 chnl=0 letter="¶"
+char id=162 x=211 y=2 width=17 height=29 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="¢"
+char id=167 x=230 y=2 width=17 height=29 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="§"
+char id=253 x=249 y=2 width=17 height=29 xoffset=-1 yoffset=8 xadvance=13 page=0 chnl=0 letter="ý"
+char id=254 x=268 y=2 width=17 height=29 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="þ"
+char id=255 x=287 y=2 width=17 height=29 xoffset=-1 yoffset=8 xadvance=13 page=0 chnl=0 letter="ÿ"
+char id=123 x=306 y=2 width=13 height=29 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 letter="{"
+char id=125 x=321 y=2 width=12 height=29 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 letter="}"
+char id=40 x=335 y=2 width=11 height=29 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 letter="("
+char id=41 x=348 y=2 width=11 height=29 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 letter=")"
+char id=106 x=361 y=2 width=10 height=29 xoffset=-3 yoffset=8 xadvance=5 page=0 chnl=0 letter="j"
+char id=91 x=373 y=2 width=10 height=29 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0 letter="["
+char id=93 x=385 y=2 width=10 height=29 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 letter="]"
+char id=124 x=397 y=2 width=7 height=29 xoffset=1 yoffset=8 xadvance=6 page=0 chnl=0 letter="|"
+char id=166 x=406 y=2 width=7 height=29 xoffset=1 yoffset=8 xadvance=6 page=0 chnl=0 letter="¦"
+char id=32654 x=415 y=2 width=28 height=28 xoffset=0 yoffset=5 xadvance=26 page=0 chnl=0 letter="美"
+char id=22909 x=445 y=2 width=28 height=28 xoffset=0 yoffset=5 xadvance=26 page=0 chnl=0 letter="好"
+char id=33391 x=475 y=2 width=27 height=28 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0 letter="良"
+char id=45216 x=2 y=33 width=27 height=28 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0 letter="ë‚ "
+char id=30340 x=31 y=33 width=25 height=28 xoffset=1 yoffset=5 xadvance=26 page=0 chnl=0 letter="çš„"
+char id=192 x=58 y=33 width=22 height=28 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0 letter="À"
+char id=193 x=82 y=33 width=22 height=28 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0 letter="Ã"
+char id=194 x=106 y=33 width=22 height=28 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0 letter="Â"
+char id=197 x=130 y=33 width=22 height=28 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0 letter="Ã…"
+char id=213 x=154 y=33 width=22 height=28 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=0 letter="Õ"
+char id=214 x=178 y=33 width=22 height=28 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=0 letter="Ö"
+char id=221 x=202 y=33 width=21 height=28 xoffset=-1 yoffset=3 xadvance=17 page=0 chnl=0 letter="Ã"
+char id=220 x=225 y=33 width=19 height=28 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 letter="Ü"
+char id=200 x=246 y=33 width=18 height=28 xoffset=1 yoffset=3 xadvance=17 page=0 chnl=0 letter="È"
+char id=201 x=266 y=33 width=18 height=28 xoffset=1 yoffset=3 xadvance=17 page=0 chnl=0 letter="É"
+char id=202 x=286 y=33 width=18 height=28 xoffset=1 yoffset=3 xadvance=17 page=0 chnl=0 letter="Ê"
+char id=36 x=306 y=33 width=17 height=28 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0 letter="$"
+char id=206 x=325 y=33 width=13 height=28 xoffset=-2 yoffset=3 xadvance=7 page=0 chnl=0 letter="ÃŽ"
+char id=204 x=340 y=33 width=9 height=28 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0 letter="Ì"
+char id=205 x=351 y=33 width=9 height=28 xoffset=1 yoffset=3 xadvance=7 page=0 chnl=0 letter="Ã"
+char id=22825 x=362 y=33 width=28 height=27 xoffset=0 yoffset=6 xadvance=26 page=0 chnl=0 letter="天"
+char id=51339 x=392 y=33 width=26 height=27 xoffset=1 yoffset=6 xadvance=26 page=0 chnl=0 letter="좋"
+char id=51008 x=420 y=33 width=26 height=27 xoffset=1 yoffset=6 xadvance=26 page=0 chnl=0 letter="ì€"
+char id=195 x=448 y=33 width=22 height=27 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=0 letter="Ã"
+char id=196 x=472 y=33 width=22 height=27 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=0 letter="Ä"
+char id=209 x=2 y=63 width=19 height=27 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 letter="Ñ"
+char id=203 x=23 y=63 width=18 height=27 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=0 letter="Ë"
+char id=207 x=43 y=63 width=12 height=27 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=0 letter="Ã"
+char id=12434 x=57 y=63 width=24 height=26 xoffset=2 yoffset=6 xadvance=26 page=0 chnl=0 letter="ã‚’"
+char id=12356 x=83 y=63 width=24 height=25 xoffset=2 yoffset=7 xadvance=26 page=0 chnl=0 letter="ã„"
+char id=81 x=109 y=63 width=23 height=25 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0 letter="Q"
+char id=216 x=134 y=63 width=23 height=25 xoffset=0 yoffset=7 xadvance=20 page=0 chnl=0 letter="Ø"
+char id=26085 x=159 y=63 width=19 height=25 xoffset=5 yoffset=7 xadvance=26 page=0 chnl=0 letter="æ—¥"
+char id=229 x=180 y=63 width=17 height=25 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=0 letter="Ã¥"
+char id=37 x=199 y=63 width=25 height=24 xoffset=0 yoffset=8 xadvance=23 page=0 chnl=0 letter="%"
+char id=190 x=226 y=63 width=25 height=24 xoffset=-1 yoffset=8 xadvance=21 page=0 chnl=0 letter="¾"
+char id=169 x=253 y=63 width=24 height=24 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0 letter="©"
+char id=174 x=279 y=63 width=24 height=24 xoffset=-1 yoffset=8 xadvance=19 page=0 chnl=0 letter="®"
+char id=188 x=305 y=63 width=24 height=24 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0 letter="¼"
+char id=189 x=331 y=63 width=24 height=24 xoffset=0 yoffset=8 xadvance=21 page=0 chnl=0 letter="½"
+char id=71 x=357 y=63 width=22 height=24 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0 letter="G"
+char id=79 x=381 y=63 width=22 height=24 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0 letter="O"
+char id=67 x=405 y=63 width=21 height=24 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=0 letter="C"
+char id=38 x=428 y=63 width=20 height=24 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="&"
+char id=83 x=450 y=63 width=19 height=24 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="S"
+char id=85 x=471 y=63 width=19 height=24 xoffset=1 yoffset=8 xadvance=18 page=0 chnl=0 letter="U"
+char id=35 x=2 y=92 width=19 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="#"
+char id=163 x=23 y=92 width=18 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="£"
+char id=223 x=43 y=92 width=18 height=24 xoffset=0 yoffset=8 xadvance=15 page=0 chnl=0 letter="ß"
+char id=242 x=63 y=92 width=18 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="ò"
+char id=243 x=83 y=92 width=18 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="ó"
+char id=244 x=103 y=92 width=18 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="ô"
+char id=245 x=123 y=92 width=18 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="õ"
+char id=246 x=143 y=92 width=18 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="ö"
+char id=98 x=163 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="b"
+char id=100 x=182 y=92 width=17 height=24 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="d"
+char id=103 x=201 y=92 width=17 height=24 xoffset=-1 yoffset=13 xadvance=14 page=0 chnl=0 letter="g"
+char id=112 x=220 y=92 width=17 height=24 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="p"
+char id=121 x=239 y=92 width=17 height=24 xoffset=-1 yoffset=13 xadvance=13 page=0 chnl=0 letter="y"
+char id=51 x=258 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="3"
+char id=53 x=277 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="5"
+char id=54 x=296 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="6"
+char id=56 x=315 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="8"
+char id=57 x=334 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="9"
+char id=48 x=353 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="0"
+char id=191 x=372 y=92 width=17 height=24 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="¿"
+char id=224 x=391 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="Ã "
+char id=225 x=410 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="á"
+char id=226 x=429 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="â"
+char id=227 x=448 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ã"
+char id=228 x=467 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ä"
+char id=232 x=486 y=92 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="è"
+char id=233 x=2 y=118 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="é"
+char id=234 x=21 y=118 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ê"
+char id=235 x=40 y=118 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ë"
+char id=240 x=59 y=118 width=17 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ð"
+char id=113 x=78 y=118 width=16 height=24 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="q"
+char id=181 x=96 y=118 width=16 height=24 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="µ"
+char id=231 x=114 y=118 width=16 height=24 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=0 letter="ç"
+char id=249 x=132 y=118 width=16 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ù"
+char id=250 x=150 y=118 width=16 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ú"
+char id=251 x=168 y=118 width=16 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="û"
+char id=252 x=186 y=118 width=16 height=24 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ü"
+char id=74 x=204 y=118 width=15 height=24 xoffset=-1 yoffset=8 xadvance=13 page=0 chnl=0 letter="J"
+char id=47 x=221 y=118 width=12 height=24 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 letter="/"
+char id=92 x=235 y=118 width=12 height=24 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 letter="\"
+char id=161 x=249 y=118 width=8 height=24 xoffset=1 yoffset=13 xadvance=8 page=0 chnl=0 letter="¡"
+char id=87 x=259 y=118 width=29 height=23 xoffset=-1 yoffset=8 xadvance=24 page=0 chnl=0 letter="W"
+char id=198 x=290 y=118 width=29 height=23 xoffset=-1 yoffset=8 xadvance=26 page=0 chnl=0 letter="Æ"
+char id=65 x=321 y=118 width=22 height=23 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0 letter="A"
+char id=77 x=345 y=118 width=22 height=23 xoffset=1 yoffset=8 xadvance=21 page=0 chnl=0 letter="M"
+char id=86 x=369 y=118 width=22 height=23 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0 letter="V"
+char id=208 x=393 y=118 width=22 height=23 xoffset=-1 yoffset=8 xadvance=18 page=0 chnl=0 letter="Ã"
+char id=75 x=417 y=118 width=21 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="K"
+char id=82 x=440 y=118 width=21 height=23 xoffset=1 yoffset=8 xadvance=18 page=0 chnl=0 letter="R"
+char id=88 x=463 y=118 width=21 height=23 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0 letter="X"
+char id=89 x=486 y=118 width=21 height=23 xoffset=-1 yoffset=8 xadvance=17 page=0 chnl=0 letter="Y"
+char id=68 x=2 y=144 width=20 height=23 xoffset=1 yoffset=8 xadvance=18 page=0 chnl=0 letter="D"
+char id=84 x=24 y=144 width=20 height=23 xoffset=-1 yoffset=8 xadvance=15 page=0 chnl=0 letter="T"
+char id=90 x=46 y=144 width=20 height=23 xoffset=-1 yoffset=8 xadvance=15 page=0 chnl=0 letter="Z"
+char id=66 x=68 y=144 width=19 height=23 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=0 letter="B"
+char id=72 x=89 y=144 width=19 height=23 xoffset=1 yoffset=8 xadvance=18 page=0 chnl=0 letter="H"
+char id=78 x=110 y=144 width=19 height=23 xoffset=1 yoffset=8 xadvance=18 page=0 chnl=0 letter="N"
+char id=80 x=131 y=144 width=19 height=23 xoffset=1 yoffset=8 xadvance=17 page=0 chnl=0 letter="P"
+char id=165 x=152 y=144 width=19 height=23 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="Â¥"
+char id=222 x=173 y=144 width=19 height=23 xoffset=1 yoffset=8 xadvance=17 page=0 chnl=0 letter="Þ"
+char id=69 x=194 y=144 width=18 height=23 xoffset=1 yoffset=8 xadvance=17 page=0 chnl=0 letter="E"
+char id=50 x=214 y=144 width=18 height=23 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="2"
+char id=52 x=234 y=144 width=18 height=23 xoffset=-1 yoffset=8 xadvance=14 page=0 chnl=0 letter="4"
+char id=70 x=254 y=144 width=17 height=23 xoffset=1 yoffset=8 xadvance=15 page=0 chnl=0 letter="F"
+char id=76 x=273 y=144 width=17 height=23 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="L"
+char id=55 x=292 y=144 width=17 height=23 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="7"
+char id=63 x=311 y=144 width=17 height=23 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="?"
+char id=104 x=330 y=144 width=16 height=23 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="h"
+char id=107 x=348 y=144 width=16 height=23 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0 letter="k"
+char id=241 x=366 y=144 width=16 height=23 xoffset=0 yoffset=8 xadvance=14 page=0 chnl=0 letter="ñ"
+char id=238 x=384 y=144 width=13 height=23 xoffset=-2 yoffset=8 xadvance=7 page=0 chnl=0 letter="î"
+char id=102 x=399 y=144 width=12 height=23 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 letter="f"
+char id=49 x=413 y=144 width=12 height=23 xoffset=1 yoffset=8 xadvance=14 page=0 chnl=0 letter="1"
+char id=239 x=427 y=144 width=12 height=23 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 letter="ï"
+char id=116 x=441 y=144 width=11 height=23 xoffset=-1 yoffset=9 xadvance=7 page=0 chnl=0 letter="t"
+char id=236 x=454 y=144 width=9 height=23 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 letter="ì"
+char id=237 x=465 y=144 width=9 height=23 xoffset=1 yoffset=8 xadvance=7 page=0 chnl=0 letter="Ã"
+char id=33 x=476 y=144 width=8 height=23 xoffset=1 yoffset=8 xadvance=7 page=0 chnl=0 letter="!"
+char id=73 x=486 y=144 width=7 height=23 xoffset=1 yoffset=8 xadvance=7 page=0 chnl=0 letter="I"
+char id=105 x=495 y=144 width=7 height=23 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=0 letter="i"
+char id=108 x=2 y=169 width=7 height=23 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=0 letter="l"
+char id=59 x=11 y=169 width=7 height=22 xoffset=1 yoffset=13 xadvance=7 page=0 chnl=0 letter=";"
+char id=248 x=20 y=169 width=18 height=20 xoffset=0 yoffset=12 xadvance=15 page=0 chnl=0 letter="ø"
+char id=177 x=40 y=169 width=17 height=20 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=0 letter="±"
+char id=230 x=59 y=169 width=27 height=19 xoffset=-1 yoffset=13 xadvance=23 page=0 chnl=0 letter="æ"
+char id=111 x=88 y=169 width=18 height=19 xoffset=-1 yoffset=13 xadvance=14 page=0 chnl=0 letter="o"
+char id=97 x=108 y=169 width=17 height=19 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="a"
+char id=101 x=127 y=169 width=17 height=19 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="e"
+char id=99 x=146 y=169 width=16 height=19 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=0 letter="c"
+char id=115 x=164 y=169 width=16 height=19 xoffset=-1 yoffset=13 xadvance=13 page=0 chnl=0 letter="s"
+char id=117 x=182 y=169 width=16 height=19 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="u"
+char id=109 x=200 y=169 width=23 height=18 xoffset=0 yoffset=13 xadvance=21 page=0 chnl=0 letter="m"
+char id=119 x=225 y=169 width=23 height=18 xoffset=-1 yoffset=13 xadvance=18 page=0 chnl=0 letter="w"
+char id=118 x=250 y=169 width=17 height=18 xoffset=-1 yoffset=13 xadvance=13 page=0 chnl=0 letter="v"
+char id=120 x=269 y=169 width=17 height=18 xoffset=-1 yoffset=13 xadvance=13 page=0 chnl=0 letter="x"
+char id=122 x=288 y=169 width=17 height=18 xoffset=-1 yoffset=13 xadvance=13 page=0 chnl=0 letter="z"
+char id=110 x=307 y=169 width=16 height=18 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0 letter="n"
+char id=114 x=325 y=169 width=12 height=18 xoffset=0 yoffset=13 xadvance=8 page=0 chnl=0 letter="r"
+char id=58 x=339 y=169 width=7 height=18 xoffset=1 yoffset=13 xadvance=7 page=0 chnl=0 letter=":"
+char id=60 x=348 y=169 width=17 height=17 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=0 letter="<"
+char id=62 x=367 y=169 width=17 height=17 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=0 letter=">"
+char id=43 x=386 y=169 width=17 height=17 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=0 letter="+"
+char id=164 x=405 y=169 width=17 height=17 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=0 letter="¤"
+char id=171 x=424 y=169 width=16 height=17 xoffset=0 yoffset=14 xadvance=14 page=0 chnl=0 letter="«"
+char id=187 x=442 y=169 width=16 height=17 xoffset=0 yoffset=14 xadvance=14 page=0 chnl=0 letter="»"
+char id=247 x=460 y=169 width=17 height=16 xoffset=0 yoffset=12 xadvance=15 page=0 chnl=0 letter="÷"
+char id=215 x=479 y=169 width=15 height=16 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0 letter="×"
+char id=94 x=2 y=194 width=16 height=15 xoffset=-1 yoffset=8 xadvance=12 page=0 chnl=0 letter="^"
+char id=170 x=20 y=194 width=13 height=14 xoffset=-1 yoffset=8 xadvance=9 page=0 chnl=0 letter="ª"
+char id=178 x=35 y=194 width=13 height=14 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 letter="²"
+char id=179 x=50 y=194 width=13 height=14 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 letter="³"
+char id=186 x=65 y=194 width=13 height=14 xoffset=-1 yoffset=8 xadvance=9 page=0 chnl=0 letter="º"
+char id=185 x=80 y=194 width=10 height=14 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 letter="¹"
+char id=61 x=92 y=194 width=17 height=13 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="="
+char id=172 x=111 y=194 width=17 height=13 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=0 letter="¬"
+char id=42 x=130 y=194 width=14 height=12 xoffset=-1 yoffset=8 xadvance=10 page=0 chnl=0 letter="*"
+char id=176 x=146 y=194 width=12 height=12 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0 letter="°"
+char id=34 x=160 y=194 width=12 height=11 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0 letter="""
+char id=184 x=174 y=194 width=10 height=11 xoffset=0 yoffset=26 xadvance=8 page=0 chnl=0 letter="¸"
+char id=39 x=186 y=194 width=7 height=11 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0 letter="'"
+char id=44 x=195 y=194 width=7 height=11 xoffset=1 yoffset=24 xadvance=7 page=0 chnl=0 letter=","
+char id=126 x=204 y=194 width=18 height=9 xoffset=0 yoffset=15 xadvance=15 page=0 chnl=0 letter="~"
+char id=168 x=224 y=194 width=12 height=8 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 letter="¨"
+char id=96 x=238 y=194 width=9 height=8 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 letter="`"
+char id=180 x=249 y=194 width=9 height=8 xoffset=2 yoffset=8 xadvance=8 page=0 chnl=0 letter="´"
+char id=183 x=260 y=194 width=7 height=8 xoffset=1 yoffset=16 xadvance=7 page=0 chnl=0 letter="·"
+char id=19968 x=269 y=194 width=25 height=7 xoffset=2 yoffset=15 xadvance=26 page=0 chnl=0 letter="一"
+char id=95 x=296 y=194 width=19 height=7 xoffset=-2 yoffset=28 xadvance=13 page=0 chnl=0 letter="_"
+char id=45 x=317 y=194 width=12 height=7 xoffset=-1 yoffset=19 xadvance=8 page=0 chnl=0 letter="-"
+char id=173 x=331 y=194 width=12 height=7 xoffset=-1 yoffset=19 xadvance=8 page=0 chnl=0 letter="Â"
+char id=46 x=345 y=194 width=7 height=7 xoffset=1 yoffset=24 xadvance=7 page=0 chnl=0 letter="."
+char id=175 x=354 y=194 width=19 height=6 xoffset=-2 yoffset=5 xadvance=13 page=0 chnl=0 letter="¯"
+char id=32 x=439 y=194 width=0 height=0 xoffset=-113 yoffset=148 xadvance=7 page=0 chnl=0 letter="space"
diff --git a/tests/cpp-tests/Resources/fonts/arial-unicode-26.png b/tests/cpp-tests/Resources/fonts/arial-unicode-26.png
new file mode 100755
index 0000000000..c2eabd7cd8
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/arial-unicode-26.png differ
diff --git a/tests/cpp-tests/Resources/fonts/arial.ttf b/tests/cpp-tests/Resources/fonts/arial.ttf
new file mode 100755
index 0000000000..abc899cd55
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/arial.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/arial16.fnt b/tests/cpp-tests/Resources/fonts/arial16.fnt
new file mode 100755
index 0000000000..30b551af65
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/arial16.fnt
@@ -0,0 +1,192 @@
+info face="ArialMT" size=16 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=19 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="arial16.png"
+chars count=187
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=15 xadvance=4 page=0 chnl=0
+char id=64 x=0 y=0 width=18 height=17 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=124 x=18 y=0 width=4 height=17 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=0
+char id=125 x=22 y=0 width=7 height=17 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=123 x=29 y=0 width=7 height=17 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=93 x=36 y=0 width=6 height=17 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
+char id=91 x=42 y=0 width=6 height=17 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=0
+char id=41 x=48 y=0 width=6 height=17 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=0
+char id=40 x=54 y=0 width=6 height=17 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=0
+char id=106 x=60 y=0 width=7 height=17 xoffset=-1 yoffset=3 xadvance=3 page=0 chnl=0
+char id=36 x=67 y=0 width=11 height=16 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=38 x=78 y=0 width=13 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=35 x=91 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=37 x=102 y=0 width=15 height=14 xoffset=1 yoffset=3 xadvance=14 page=0 chnl=0
+char id=92 x=117 y=0 width=7 height=14 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
+char id=47 x=124 y=0 width=7 height=14 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
+char id=48 x=131 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=57 x=142 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=56 x=153 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=54 x=164 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=53 x=175 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=51 x=186 y=0 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=121 x=197 y=0 width=10 height=14 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=113 x=207 y=0 width=10 height=14 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=112 x=217 y=0 width=10 height=14 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0
+char id=103 x=227 y=0 width=10 height=14 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=100 x=237 y=0 width=10 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=98 x=247 y=0 width=10 height=14 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=85 x=257 y=0 width=12 height=14 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=83 x=269 y=0 width=12 height=14 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=81 x=281 y=0 width=14 height=14 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=79 x=295 y=0 width=14 height=14 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=74 x=309 y=0 width=9 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=71 x=318 y=0 width=14 height=14 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=67 x=332 y=0 width=13 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
+char id=59 x=345 y=0 width=4 height=13 xoffset=1 yoffset=6 xadvance=4 page=0 chnl=0
+char id=63 x=349 y=0 width=10 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=33 x=359 y=0 width=5 height=13 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=0
+char id=55 x=364 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=52 x=375 y=0 width=11 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=50 x=386 y=0 width=10 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=49 x=396 y=0 width=7 height=13 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=116 x=403 y=0 width=7 height=13 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
+char id=108 x=410 y=0 width=4 height=13 xoffset=1 yoffset=3 xadvance=3 page=0 chnl=0
+char id=107 x=414 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=105 x=423 y=0 width=4 height=13 xoffset=1 yoffset=3 xadvance=3 page=0 chnl=0
+char id=104 x=427 y=0 width=9 height=13 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=102 x=436 y=0 width=7 height=13 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
+char id=90 x=443 y=0 width=12 height=13 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=0
+char id=89 x=455 y=0 width=13 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=88 x=468 y=0 width=13 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=87 x=481 y=0 width=17 height=13 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=0
+char id=86 x=498 y=0 width=13 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=84 x=0 y=17 width=12 height=13 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=0
+char id=82 x=12 y=17 width=13 height=13 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=80 x=25 y=17 width=11 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=78 x=36 y=17 width=12 height=13 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=77 x=48 y=17 width=14 height=13 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
+char id=76 x=62 y=17 width=10 height=13 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=75 x=72 y=17 width=12 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=73 x=84 y=17 width=4 height=13 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=0
+char id=72 x=88 y=17 width=12 height=13 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=70 x=100 y=17 width=10 height=13 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
+char id=69 x=110 y=17 width=11 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=68 x=121 y=17 width=12 height=13 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
+char id=66 x=133 y=17 width=11 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=65 x=144 y=17 width=12 height=13 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=117 x=156 y=17 width=8 height=11 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0
+char id=115 x=164 y=17 width=10 height=11 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=111 x=174 y=17 width=11 height=11 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=101 x=185 y=17 width=11 height=11 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=99 x=196 y=17 width=10 height=11 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=97 x=206 y=17 width=11 height=11 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=43 x=217 y=17 width=10 height=10 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0
+char id=62 x=227 y=17 width=11 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
+char id=60 x=238 y=17 width=11 height=10 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0
+char id=58 x=249 y=17 width=4 height=10 xoffset=1 yoffset=6 xadvance=4 page=0 chnl=0
+char id=122 x=253 y=17 width=10 height=10 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=120 x=263 y=17 width=10 height=10 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=119 x=273 y=17 width=14 height=10 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
+char id=118 x=287 y=17 width=10 height=10 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=114 x=297 y=17 width=7 height=10 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=110 x=304 y=17 width=9 height=10 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0
+char id=109 x=313 y=17 width=14 height=10 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=94 x=327 y=17 width=9 height=8 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=0
+char id=42 x=336 y=17 width=8 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=0
+char id=61 x=344 y=17 width=10 height=6 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0
+char id=44 x=354 y=17 width=4 height=6 xoffset=1 yoffset=13 xadvance=4 page=0 chnl=0
+char id=39 x=358 y=17 width=5 height=6 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=0
+char id=34 x=363 y=17 width=7 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=126 x=370 y=17 width=11 height=4 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
+char id=96 x=381 y=17 width=6 height=4 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=95 x=387 y=17 width=13 height=3 xoffset=-1 yoffset=17 xadvance=8 page=0 chnl=0
+char id=45 x=400 y=17 width=7 height=3 xoffset=0 yoffset=10 xadvance=5 page=0 chnl=0
+char id=46 x=407 y=17 width=4 height=3 xoffset=1 yoffset=13 xadvance=4 page=0 chnl=0
+char id=133 x=411 y=17 width=8 height=3 xoffset=0 yoffset=13 xadvance=6 page=0 chnl=0
+char id=150 x=419 y=17 width=5 height=3 xoffset=0 yoffset=11 xadvance=3 page=0 chnl=0
+char id=151 x=424 y=17 width=8 height=3 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=0
+char id=152 x=432 y=17 width=7 height=3 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=0
+char id=168 x=439 y=17 width=7 height=3 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=175 x=446 y=17 width=13 height=3 xoffset=-1 yoffset=1 xadvance=8 page=0 chnl=0
+char id=183 x=459 y=17 width=5 height=3 xoffset=1 yoffset=8 xadvance=5 page=0 chnl=0
+char id=130 x=464 y=17 width=4 height=4 xoffset=0 yoffset=13 xadvance=2 page=0 chnl=0
+char id=132 x=468 y=17 width=6 height=4 xoffset=0 yoffset=13 xadvance=4 page=0 chnl=0
+char id=136 x=474 y=17 width=7 height=4 xoffset=0 yoffset=1 xadvance=4 page=0 chnl=0
+char id=145 x=481 y=17 width=4 height=4 xoffset=0 yoffset=4 xadvance=2 page=0 chnl=0
+char id=146 x=485 y=17 width=4 height=4 xoffset=0 yoffset=4 xadvance=2 page=0 chnl=0
+char id=147 x=489 y=17 width=6 height=4 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=0
+char id=148 x=495 y=17 width=6 height=4 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=0
+char id=180 x=501 y=17 width=6 height=4 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=0
+char id=139 x=0 y=30 width=5 height=6 xoffset=0 yoffset=9 xadvance=2 page=0 chnl=0
+char id=149 x=5 y=30 width=5 height=6 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=0
+char id=153 x=10 y=30 width=7 height=6 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0
+char id=155 x=17 y=30 width=5 height=6 xoffset=0 yoffset=9 xadvance=2 page=0 chnl=0
+char id=172 x=22 y=30 width=10 height=6 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0
+char id=176 x=32 y=30 width=7 height=6 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=0
+char id=184 x=39 y=30 width=7 height=6 xoffset=0 yoffset=14 xadvance=5 page=0 chnl=0
+char id=156 x=46 y=30 width=12 height=8 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
+char id=170 x=58 y=30 width=8 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=178 x=66 y=30 width=7 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=179 x=73 y=30 width=7 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=185 x=80 y=30 width=6 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=186 x=86 y=30 width=8 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
+char id=215 x=94 y=30 width=9 height=8 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0
+char id=247 x=103 y=30 width=11 height=8 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0
+char id=171 x=114 y=30 width=9 height=9 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=0
+char id=187 x=123 y=30 width=9 height=9 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=0
+char id=164 x=132 y=30 width=11 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
+char id=154 x=143 y=30 width=8 height=11 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=0
+char id=177 x=151 y=30 width=11 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
+char id=230 x=162 y=30 width=16 height=11 xoffset=0 yoffset=6 xadvance=14 page=0 chnl=0
+char id=248 x=178 y=30 width=10 height=11 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0
+char id=128 x=188 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=129 x=199 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=140 x=210 y=30 width=12 height=12 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=0
+char id=141 x=222 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=142 x=233 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=143 x=244 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=144 x=255 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=157 x=266 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=158 x=277 y=30 width=11 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0
+char id=165 x=288 y=30 width=11 height=13 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=198 x=299 y=30 width=18 height=13 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=208 x=317 y=30 width=13 height=13 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
+char id=222 x=330 y=30 width=11 height=13 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=137 x=341 y=30 width=18 height=14 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=0
+char id=161 x=359 y=30 width=5 height=14 xoffset=1 yoffset=6 xadvance=5 page=0 chnl=0
+char id=163 x=364 y=30 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=169 x=375 y=30 width=14 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
+char id=174 x=389 y=30 width=14 height=14 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0
+char id=181 x=403 y=30 width=9 height=14 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0
+char id=188 x=412 y=30 width=15 height=14 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=189 x=427 y=30 width=15 height=14 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=190 x=442 y=30 width=15 height=14 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
+char id=191 x=457 y=30 width=10 height=14 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0
+char id=216 x=467 y=30 width=14 height=14 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
+char id=223 x=481 y=30 width=11 height=14 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
+char id=240 x=492 y=30 width=11 height=14 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=134 x=503 y=30 width=7 height=15 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=0
+char id=135 x=0 y=45 width=7 height=15 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=0
+char id=138 x=7 y=45 width=8 height=15 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=0
+char id=195 x=15 y=45 width=13 height=15 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
+char id=203 x=28 y=45 width=11 height=15 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=0
+char id=207 x=39 y=45 width=7 height=15 xoffset=0 yoffset=1 xadvance=4 page=0 chnl=0
+char id=131 x=46 y=45 width=10 height=16 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0
+char id=192 x=56 y=45 width=13 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=0
+char id=193 x=69 y=45 width=13 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=0
+char id=194 x=82 y=45 width=13 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=0
+char id=200 x=95 y=45 width=11 height=16 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=0
+char id=202 x=106 y=45 width=11 height=16 xoffset=1 yoffset=0 xadvance=10 page=0 chnl=0
+char id=204 x=117 y=45 width=6 height=16 xoffset=-1 yoffset=0 xadvance=4 page=0 chnl=0
+char id=205 x=123 y=45 width=5 height=16 xoffset=1 yoffset=0 xadvance=4 page=0 chnl=0
+char id=206 x=128 y=45 width=9 height=16 xoffset=-1 yoffset=0 xadvance=4 page=0 chnl=0
+char id=213 x=137 y=45 width=14 height=16 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
+char id=221 x=151 y=45 width=13 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=0
+char id=162 x=164 y=45 width=10 height=17 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=166 x=174 y=45 width=4 height=17 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=0
+char id=167 x=178 y=45 width=11 height=17 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=182 x=189 y=45 width=11 height=17 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=210 x=200 y=45 width=14 height=17 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=0
+char id=211 x=214 y=45 width=14 height=17 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=0
+char id=212 x=228 y=45 width=14 height=17 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=0
+char id=217 x=242 y=45 width=12 height=17 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=0
+char id=218 x=254 y=45 width=12 height=17 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=0
+char id=219 x=266 y=45 width=12 height=17 xoffset=1 yoffset=0 xadvance=11 page=0 chnl=0
+char id=253 x=278 y=45 width=10 height=17 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
+char id=254 x=288 y=45 width=10 height=17 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0
+char id=255 x=298 y=45 width=10 height=17 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/fonts/arial16.png b/tests/cpp-tests/Resources/fonts/arial16.png
new file mode 100755
index 0000000000..9bba8ea891
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/arial16.png differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontChinese.fnt b/tests/cpp-tests/Resources/fonts/bitmapFontChinese.fnt
new file mode 100755
index 0000000000..32f0c6cbfd
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/bitmapFontChinese.fnt
@@ -0,0 +1,210 @@
+info face="»ª¿µº£±¨ÌåW12(P)" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=37 base=28 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="bitmapFontChinese.png"
+chars count=204
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=28 xadvance=15 page=0 chnl=0
+char id=35937 x=0 y=0 width=33 height=36 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=26696 x=33 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=26071 x=68 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=24314 x=103 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=21338 x=138 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=23478 x=173 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=22530 x=208 y=0 width=34 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=33521 x=242 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=26159 x=277 y=0 width=34 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=23433 x=311 y=0 width=35 height=36 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=31532 x=346 y=0 width=35 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=33258 x=381 y=0 width=34 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=20146 x=415 y=0 width=34 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=24182 x=449 y=0 width=34 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=23459 x=0 y=36 width=35 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=19996 x=35 y=36 width=34 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=24180 x=69 y=36 width=34 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=30633 x=103 y=36 width=35 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=20026 x=138 y=36 width=33 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=27835 x=171 y=36 width=34 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=33402 x=205 y=36 width=33 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=31569 x=238 y=36 width=35 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=20043 x=273 y=36 width=32 height=35 xoffset=1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=26368 x=305 y=36 width=35 height=35 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=39302 x=340 y=36 width=37 height=35 xoffset=-2 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=24109 x=377 y=36 width=34 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=20027 x=411 y=36 width=33 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=27611 x=444 y=36 width=34 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=38271 x=0 y=71 width=34 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=20020 x=34 y=71 width=35 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=20140 x=69 y=71 width=33 height=35 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=39318 x=102 y=71 width=34 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=21326 x=136 y=71 width=35 height=35 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=24509 x=171 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22270 x=206 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=32418 x=241 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=26143 x=276 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20116 x=311 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=21319 x=346 y=71 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=26469 x=379 y=71 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=36215 x=412 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=31449 x=447 y=71 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20102 x=0 y=106 width=30 height=34 xoffset=1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=31435 x=30 y=106 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=25104 x=63 y=106 width=34 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=21578 x=97 y=106 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20005 x=131 y=106 width=32 height=34 xoffset=1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=24196 x=163 y=106 width=34 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=37324 x=197 y=106 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=36825 x=230 y=106 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22312 x=264 y=106 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=27901 x=299 y=106 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=26085 x=334 y=106 width=31 height=34 xoffset=1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=30446 x=365 y=106 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=25152 x=399 y=106 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=19990 x=434 y=106 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=25919 x=469 y=106 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=27530 x=0 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=29305 x=35 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=26415 x=70 y=140 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=26480 x=103 y=140 width=34 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20195 x=137 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=21476 x=172 y=140 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20250 x=206 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22823 x=241 y=140 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=30865 x=274 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=24565 x=309 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=38596 x=344 y=140 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=23545 x=379 y=140 width=34 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=34903 x=413 y=140 width=36 height=34 xoffset=-2 yoffset=0 xadvance=36 page=0 chnl=0
+char id=38754 x=449 y=140 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=31471 x=0 y=174 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22330 x=35 y=174 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=24191 x=69 y=174 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=30340 x=102 y=174 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=37117 x=137 y=174 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22269 x=172 y=174 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20849 x=205 y=174 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=27665 x=238 y=174 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20013 x=271 y=174 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=20110 x=305 y=174 width=34 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=27004 x=339 y=174 width=34 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22478 x=373 y=174 width=35 height=34 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22825 x=408 y=174 width=33 height=34 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=125 x=441 y=174 width=14 height=34 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=0
+char id=123 x=455 y=174 width=14 height=34 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=0
+char id=93 x=469 y=174 width=14 height=34 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=0
+char id=91 x=483 y=174 width=14 height=34 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=0
+char id=41 x=497 y=174 width=14 height=34 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=0
+char id=40 x=0 y=208 width=14 height=34 xoffset=-1 yoffset=1 xadvance=15 page=0 chnl=0
+char id=29616 x=14 y=208 width=35 height=33 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=26376 x=49 y=208 width=33 height=33 xoffset=0 yoffset=1 xadvance=36 page=0 chnl=0
+char id=22320 x=82 y=208 width=35 height=33 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=20029 x=117 y=208 width=33 height=33 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=22766 x=150 y=208 width=34 height=33 xoffset=0 yoffset=1 xadvance=36 page=0 chnl=0
+char id=29289 x=184 y=208 width=35 height=33 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=32426 x=219 y=208 width=35 height=33 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=21450 x=254 y=208 width=34 height=33 xoffset=0 yoffset=1 xadvance=36 page=0 chnl=0
+char id=24515 x=288 y=208 width=34 height=33 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=21271 x=322 y=208 width=33 height=33 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=0
+char id=21644 x=355 y=208 width=35 height=33 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=20301 x=390 y=208 width=34 height=33 xoffset=-1 yoffset=0 xadvance=36 page=0 chnl=0
+char id=38376 x=424 y=208 width=33 height=33 xoffset=0 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=92 x=457 y=208 width=14 height=33 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=0
+char id=47 x=471 y=208 width=14 height=33 xoffset=-2 yoffset=1 xadvance=13 page=0 chnl=0
+char id=24449 x=0 y=242 width=35 height=32 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=27492 x=35 y=242 width=35 height=32 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=20174 x=70 y=242 width=34 height=32 xoffset=-1 yoffset=1 xadvance=36 page=0 chnl=0
+char id=20986 x=104 y=242 width=33 height=32 xoffset=0 yoffset=1 xadvance=36 page=0 chnl=0
+char id=20197 x=137 y=242 width=34 height=32 xoffset=0 yoffset=2 xadvance=36 page=0 chnl=0
+char id=36 x=171 y=242 width=26 height=32 xoffset=0 yoffset=2 xadvance=29 page=0 chnl=0
+char id=106 x=197 y=242 width=20 height=32 xoffset=-2 yoffset=4 xadvance=20 page=0 chnl=0
+char id=20154 x=217 y=242 width=36 height=31 xoffset=-2 yoffset=1 xadvance=36 page=0 chnl=0
+char id=38 x=253 y=242 width=26 height=28 xoffset=-2 yoffset=4 xadvance=25 page=0 chnl=0
+char id=35 x=279 y=242 width=26 height=28 xoffset=0 yoffset=4 xadvance=29 page=0 chnl=0
+char id=37 x=305 y=242 width=34 height=28 xoffset=-2 yoffset=4 xadvance=33 page=0 chnl=0
+char id=64 x=339 y=242 width=27 height=28 xoffset=-2 yoffset=4 xadvance=27 page=0 chnl=0
+char id=124 x=366 y=242 width=11 height=28 xoffset=-1 yoffset=4 xadvance=12 page=0 chnl=0
+char id=33 x=377 y=242 width=14 height=28 xoffset=-1 yoffset=4 xadvance=15 page=0 chnl=0
+char id=48 x=391 y=242 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=57 x=421 y=242 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=56 x=451 y=242 width=28 height=28 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=55 x=479 y=242 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=54 x=0 y=274 width=28 height=28 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=52 x=28 y=274 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=51 x=58 y=274 width=28 height=28 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=50 x=86 y=274 width=28 height=28 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=49 x=114 y=274 width=14 height=28 xoffset=6 yoffset=4 xadvance=29 page=0 chnl=0
+char id=116 x=128 y=274 width=25 height=28 xoffset=-2 yoffset=4 xadvance=24 page=0 chnl=0
+char id=107 x=153 y=274 width=24 height=28 xoffset=-1 yoffset=4 xadvance=24 page=0 chnl=0
+char id=105 x=177 y=274 width=14 height=28 xoffset=-1 yoffset=4 xadvance=16 page=0 chnl=0
+char id=100 x=191 y=274 width=26 height=28 xoffset=-2 yoffset=4 xadvance=25 page=0 chnl=0
+char id=98 x=217 y=274 width=26 height=28 xoffset=-2 yoffset=4 xadvance=25 page=0 chnl=0
+char id=90 x=243 y=274 width=27 height=28 xoffset=-1 yoffset=4 xadvance=27 page=0 chnl=0
+char id=87 x=270 y=274 width=29 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=86 x=299 y=274 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=85 x=329 y=274 width=27 height=28 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=83 x=356 y=274 width=26 height=28 xoffset=-1 yoffset=4 xadvance=27 page=0 chnl=0
+char id=81 x=382 y=274 width=29 height=28 xoffset=-2 yoffset=4 xadvance=28 page=0 chnl=0
+char id=79 x=411 y=274 width=28 height=28 xoffset=-2 yoffset=4 xadvance=27 page=0 chnl=0
+char id=76 x=439 y=274 width=27 height=28 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=75 x=466 y=274 width=26 height=28 xoffset=-1 yoffset=4 xadvance=26 page=0 chnl=0
+char id=74 x=0 y=302 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=73 x=30 y=302 width=16 height=28 xoffset=-1 yoffset=4 xadvance=17 page=0 chnl=0
+char id=72 x=46 y=302 width=28 height=28 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=71 x=74 y=302 width=28 height=28 xoffset=-2 yoffset=4 xadvance=28 page=0 chnl=0
+char id=69 x=102 y=302 width=29 height=28 xoffset=-1 yoffset=4 xadvance=30 page=0 chnl=0
+char id=67 x=131 y=302 width=29 height=28 xoffset=-2 yoffset=4 xadvance=28 page=0 chnl=0
+char id=65 x=160 y=302 width=30 height=28 xoffset=-2 yoffset=4 xadvance=29 page=0 chnl=0
+char id=63 x=190 y=302 width=23 height=27 xoffset=-1 yoffset=4 xadvance=24 page=0 chnl=0
+char id=53 x=213 y=302 width=28 height=27 xoffset=-1 yoffset=4 xadvance=29 page=0 chnl=0
+char id=121 x=241 y=302 width=27 height=27 xoffset=-2 yoffset=9 xadvance=26 page=0 chnl=0
+char id=113 x=268 y=302 width=25 height=27 xoffset=-2 yoffset=9 xadvance=25 page=0 chnl=0
+char id=108 x=293 y=302 width=12 height=27 xoffset=0 yoffset=4 xadvance=16 page=0 chnl=0
+char id=104 x=305 y=302 width=27 height=27 xoffset=-2 yoffset=4 xadvance=26 page=0 chnl=0
+char id=103 x=332 y=302 width=26 height=27 xoffset=-2 yoffset=9 xadvance=25 page=0 chnl=0
+char id=102 x=358 y=302 width=16 height=27 xoffset=-2 yoffset=4 xadvance=16 page=0 chnl=0
+char id=89 x=374 y=302 width=29 height=27 xoffset=-2 yoffset=4 xadvance=28 page=0 chnl=0
+char id=88 x=403 y=302 width=29 height=27 xoffset=-2 yoffset=4 xadvance=28 page=0 chnl=0
+char id=84 x=432 y=302 width=28 height=27 xoffset=-2 yoffset=4 xadvance=27 page=0 chnl=0
+char id=82 x=460 y=302 width=27 height=27 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=80 x=0 y=330 width=27 height=27 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=78 x=27 y=330 width=27 height=27 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=77 x=54 y=330 width=28 height=27 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=70 x=82 y=330 width=30 height=27 xoffset=-1 yoffset=4 xadvance=30 page=0 chnl=0
+char id=68 x=112 y=330 width=28 height=27 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=66 x=140 y=330 width=27 height=27 xoffset=-1 yoffset=4 xadvance=28 page=0 chnl=0
+char id=112 x=167 y=330 width=26 height=26 xoffset=-2 yoffset=9 xadvance=26 page=0 chnl=0
+char id=59 x=193 y=330 width=12 height=25 xoffset=-1 yoffset=9 xadvance=13 page=0 chnl=0
+char id=65306 x=205 y=330 width=13 height=24 xoffset=2 yoffset=8 xadvance=36 page=0 chnl=0
+char id=62 x=218 y=330 width=20 height=23 xoffset=0 yoffset=9 xadvance=22 page=0 chnl=0
+char id=60 x=238 y=330 width=20 height=23 xoffset=0 yoffset=9 xadvance=22 page=0 chnl=0
+char id=58 x=258 y=330 width=12 height=23 xoffset=-1 yoffset=9 xadvance=13 page=0 chnl=0
+char id=122 x=270 y=330 width=26 height=23 xoffset=-2 yoffset=9 xadvance=25 page=0 chnl=0
+char id=119 x=296 y=330 width=30 height=23 xoffset=-2 yoffset=9 xadvance=29 page=0 chnl=0
+char id=118 x=326 y=330 width=27 height=23 xoffset=-2 yoffset=9 xadvance=26 page=0 chnl=0
+char id=117 x=353 y=330 width=28 height=23 xoffset=-2 yoffset=9 xadvance=27 page=0 chnl=0
+char id=115 x=381 y=330 width=21 height=23 xoffset=-1 yoffset=9 xadvance=21 page=0 chnl=0
+char id=114 x=402 y=330 width=16 height=23 xoffset=-1 yoffset=9 xadvance=16 page=0 chnl=0
+char id=111 x=418 y=330 width=26 height=23 xoffset=-2 yoffset=9 xadvance=25 page=0 chnl=0
+char id=110 x=444 y=330 width=27 height=23 xoffset=-2 yoffset=9 xadvance=26 page=0 chnl=0
+char id=101 x=471 y=330 width=25 height=23 xoffset=-2 yoffset=9 xadvance=24 page=0 chnl=0
+char id=99 x=0 y=357 width=24 height=23 xoffset=-2 yoffset=9 xadvance=23 page=0 chnl=0
+char id=97 x=24 y=357 width=27 height=23 xoffset=-2 yoffset=9 xadvance=27 page=0 chnl=0
+char id=43 x=51 y=357 width=23 height=22 xoffset=-2 yoffset=9 xadvance=22 page=0 chnl=0
+char id=120 x=74 y=357 width=26 height=22 xoffset=-2 yoffset=9 xadvance=25 page=0 chnl=0
+char id=109 x=100 y=357 width=28 height=22 xoffset=-2 yoffset=9 xadvance=28 page=0 chnl=0
+char id=42 x=128 y=357 width=20 height=20 xoffset=-2 yoffset=4 xadvance=20 page=0 chnl=0
+char id=61 x=148 y=357 width=21 height=20 xoffset=-1 yoffset=10 xadvance=22 page=0 chnl=0
+char id=12289 x=169 y=357 width=17 height=16 xoffset=0 yoffset=16 xadvance=36 page=0 chnl=0
+char id=12290 x=186 y=357 width=15 height=16 xoffset=1 yoffset=16 xadvance=36 page=0 chnl=0
+char id=94 x=201 y=357 width=19 height=16 xoffset=-2 yoffset=4 xadvance=18 page=0 chnl=0
+char id=8221 x=220 y=357 width=21 height=15 xoffset=-2 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=8220 x=241 y=357 width=21 height=15 xoffset=14 yoffset=-1 xadvance=36 page=0 chnl=0
+char id=65292 x=262 y=357 width=13 height=15 xoffset=2 yoffset=20 xadvance=36 page=0 chnl=0
+char id=44 x=275 y=357 width=12 height=14 xoffset=-1 yoffset=20 xadvance=13 page=0 chnl=0
+char id=39 x=287 y=357 width=10 height=14 xoffset=-1 yoffset=4 xadvance=12 page=0 chnl=0
+char id=34 x=297 y=357 width=15 height=14 xoffset=-1 yoffset=4 xadvance=16 page=0 chnl=0
+char id=19968 x=312 y=357 width=34 height=13 xoffset=-1 yoffset=10 xadvance=36 page=0 chnl=0
+char id=46 x=346 y=357 width=12 height=13 xoffset=-1 yoffset=19 xadvance=13 page=0 chnl=0
+char id=126 x=358 y=357 width=16 height=12 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=95 x=374 y=357 width=22 height=11 xoffset=-2 yoffset=25 xadvance=20 page=0 chnl=0
+char id=45 x=396 y=357 width=14 height=11 xoffset=-1 yoffset=14 xadvance=15 page=0 chnl=0
+char id=96 x=410 y=357 width=12 height=11 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=0
+kernings count=-1
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontChinese.png b/tests/cpp-tests/Resources/fonts/bitmapFontChinese.png
new file mode 100755
index 0000000000..9d2adf428a
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontChinese.png differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest.fnt b/tests/cpp-tests/Resources/fonts/bitmapFontTest.fnt
new file mode 100755
index 0000000000..7190f52fb0
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/bitmapFontTest.fnt
@@ -0,0 +1,100 @@
+info face="ArtistampMedium" size=48 bold=1 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=52 base=26 scaleW=256 scaleH=512 pages=1 packed=0
+page id=0 file="bitmapFontTest.png"
+chars count=94
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=44 xadvance=14 page=0 chnl=0
+char id=94 x=0 y=0 width=51 height=49 xoffset=1 yoffset=3 xadvance=51 page=0 chnl=0
+char id=95 x=51 y=0 width=82 height=48 xoffset=2 yoffset=4 xadvance=84 page=0 chnl=0
+char id=41 x=133 y=0 width=14 height=46 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
+char id=40 x=147 y=0 width=16 height=46 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=0
+char id=126 x=163 y=0 width=30 height=42 xoffset=2 yoffset=6 xadvance=31 page=0 chnl=0
+char id=47 x=193 y=0 width=24 height=42 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
+char id=37 x=217 y=0 width=32 height=38 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=0
+char id=36 x=0 y=49 width=22 height=38 xoffset=-1 yoffset=10 xadvance=18 page=0 chnl=0
+char id=93 x=22 y=49 width=11 height=38 xoffset=1 yoffset=8 xadvance=11 page=0 chnl=0
+char id=91 x=33 y=49 width=12 height=38 xoffset=1 yoffset=6 xadvance=8 page=0 chnl=0
+char id=84 x=45 y=49 width=29 height=38 xoffset=0 yoffset=8 xadvance=27 page=0 chnl=0
+char id=63 x=74 y=49 width=21 height=37 xoffset=1 yoffset=7 xadvance=20 page=0 chnl=0
+char id=122 x=95 y=49 width=24 height=37 xoffset=1 yoffset=9 xadvance=23 page=0 chnl=0
+char id=116 x=119 y=49 width=29 height=37 xoffset=0 yoffset=7 xadvance=26 page=0 chnl=0
+char id=113 x=148 y=49 width=29 height=37 xoffset=1 yoffset=9 xadvance=28 page=0 chnl=0
+char id=102 x=177 y=49 width=27 height=37 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=101 x=204 y=49 width=27 height=37 xoffset=1 yoffset=9 xadvance=26 page=0 chnl=0
+char id=98 x=0 y=87 width=30 height=37 xoffset=1 yoffset=6 xadvance=28 page=0 chnl=0
+char id=87 x=30 y=87 width=44 height=37 xoffset=0 yoffset=8 xadvance=42 page=0 chnl=0
+char id=81 x=74 y=87 width=29 height=37 xoffset=1 yoffset=8 xadvance=29 page=0 chnl=0
+char id=74 x=103 y=87 width=25 height=37 xoffset=0 yoffset=7 xadvance=23 page=0 chnl=0
+char id=70 x=128 y=87 width=27 height=37 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=69 x=155 y=87 width=28 height=37 xoffset=1 yoffset=10 xadvance=27 page=0 chnl=0
+char id=66 x=183 y=87 width=30 height=37 xoffset=1 yoffset=7 xadvance=29 page=0 chnl=0
+char id=65 x=213 y=87 width=30 height=37 xoffset=0 yoffset=8 xadvance=29 page=0 chnl=0
+char id=38 x=0 y=124 width=32 height=36 xoffset=0 yoffset=7 xadvance=29 page=0 chnl=0
+char id=64 x=32 y=124 width=40 height=36 xoffset=0 yoffset=10 xadvance=33 page=0 chnl=0
+char id=57 x=72 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0
+char id=56 x=93 y=124 width=21 height=36 xoffset=1 yoffset=7 xadvance=20 page=0 chnl=0
+char id=55 x=114 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0
+char id=54 x=135 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0
+char id=53 x=156 y=124 width=21 height=36 xoffset=1 yoffset=10 xadvance=20 page=0 chnl=0
+char id=52 x=177 y=124 width=21 height=36 xoffset=1 yoffset=7 xadvance=21 page=0 chnl=0
+char id=51 x=198 y=124 width=21 height=36 xoffset=1 yoffset=9 xadvance=20 page=0 chnl=0
+char id=50 x=219 y=124 width=22 height=36 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=0
+char id=120 x=0 y=160 width=31 height=36 xoffset=0 yoffset=8 xadvance=28 page=0 chnl=0
+char id=119 x=31 y=160 width=46 height=36 xoffset=0 yoffset=10 xadvance=39 page=0 chnl=0
+char id=117 x=77 y=160 width=29 height=36 xoffset=1 yoffset=10 xadvance=27 page=0 chnl=0
+char id=115 x=106 y=160 width=26 height=36 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=114 x=132 y=160 width=29 height=36 xoffset=1 yoffset=9 xadvance=28 page=0 chnl=0
+char id=110 x=161 y=160 width=29 height=36 xoffset=1 yoffset=9 xadvance=28 page=0 chnl=0
+char id=109 x=190 y=160 width=38 height=36 xoffset=1 yoffset=9 xadvance=37 page=0 chnl=0
+char id=108 x=0 y=196 width=29 height=36 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
+char id=106 x=29 y=196 width=24 height=36 xoffset=1 yoffset=8 xadvance=22 page=0 chnl=0
+char id=104 x=53 y=196 width=31 height=36 xoffset=1 yoffset=9 xadvance=30 page=0 chnl=0
+char id=100 x=84 y=196 width=29 height=36 xoffset=1 yoffset=9 xadvance=27 page=0 chnl=0
+char id=99 x=113 y=196 width=27 height=36 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=97 x=140 y=196 width=31 height=36 xoffset=0 yoffset=8 xadvance=29 page=0 chnl=0
+char id=90 x=171 y=196 width=25 height=36 xoffset=1 yoffset=8 xadvance=24 page=0 chnl=0
+char id=89 x=196 y=196 width=30 height=36 xoffset=0 yoffset=9 xadvance=28 page=0 chnl=0
+char id=88 x=0 y=232 width=31 height=36 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0
+char id=85 x=31 y=232 width=29 height=36 xoffset=1 yoffset=9 xadvance=27 page=0 chnl=0
+char id=83 x=60 y=232 width=26 height=36 xoffset=1 yoffset=8 xadvance=25 page=0 chnl=0
+char id=82 x=86 y=232 width=30 height=36 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0
+char id=79 x=116 y=232 width=29 height=36 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0
+char id=78 x=145 y=232 width=30 height=36 xoffset=1 yoffset=10 xadvance=29 page=0 chnl=0
+char id=77 x=175 y=232 width=39 height=36 xoffset=1 yoffset=10 xadvance=38 page=0 chnl=0
+char id=76 x=214 y=232 width=29 height=36 xoffset=0 yoffset=8 xadvance=24 page=0 chnl=0
+char id=75 x=0 y=268 width=29 height=36 xoffset=1 yoffset=8 xadvance=27 page=0 chnl=0
+char id=72 x=29 y=268 width=30 height=36 xoffset=1 yoffset=9 xadvance=29 page=0 chnl=0
+char id=71 x=59 y=268 width=30 height=36 xoffset=1 yoffset=9 xadvance=29 page=0 chnl=0
+char id=68 x=89 y=268 width=29 height=36 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0
+char id=67 x=118 y=268 width=27 height=36 xoffset=1 yoffset=9 xadvance=25 page=0 chnl=0
+char id=92 x=145 y=268 width=37 height=35 xoffset=1 yoffset=9 xadvance=37 page=0 chnl=0
+char id=33 x=182 y=268 width=9 height=35 xoffset=2 yoffset=10 xadvance=10 page=0 chnl=0
+char id=48 x=191 y=268 width=21 height=35 xoffset=2 yoffset=10 xadvance=21 page=0 chnl=0
+char id=49 x=212 y=268 width=14 height=35 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=0
+char id=121 x=0 y=304 width=30 height=35 xoffset=0 yoffset=11 xadvance=27 page=0 chnl=0
+char id=118 x=30 y=304 width=29 height=35 xoffset=0 yoffset=9 xadvance=26 page=0 chnl=0
+char id=112 x=59 y=304 width=26 height=35 xoffset=1 yoffset=9 xadvance=24 page=0 chnl=0
+char id=111 x=85 y=304 width=29 height=35 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0
+char id=107 x=114 y=304 width=29 height=35 xoffset=1 yoffset=9 xadvance=27 page=0 chnl=0
+char id=105 x=143 y=304 width=15 height=35 xoffset=1 yoffset=10 xadvance=14 page=0 chnl=0
+char id=103 x=158 y=304 width=30 height=35 xoffset=1 yoffset=9 xadvance=29 page=0 chnl=0
+char id=86 x=188 y=304 width=29 height=35 xoffset=0 yoffset=8 xadvance=26 page=0 chnl=0
+char id=80 x=217 y=304 width=26 height=35 xoffset=1 yoffset=11 xadvance=24 page=0 chnl=0
+char id=73 x=0 y=339 width=14 height=35 xoffset=1 yoffset=10 xadvance=13 page=0 chnl=0
+char id=35 x=14 y=339 width=27 height=34 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=0
+char id=59 x=41 y=339 width=10 height=32 xoffset=2 yoffset=19 xadvance=10 page=0 chnl=0
+char id=124 x=51 y=339 width=17 height=28 xoffset=1 yoffset=14 xadvance=16 page=0 chnl=0
+char id=125 x=68 y=339 width=17 height=28 xoffset=1 yoffset=17 xadvance=15 page=0 chnl=0
+char id=123 x=85 y=339 width=17 height=28 xoffset=1 yoffset=17 xadvance=15 page=0 chnl=0
+char id=42 x=102 y=339 width=29 height=27 xoffset=0 yoffset=12 xadvance=26 page=0 chnl=0
+char id=60 x=131 y=339 width=66 height=26 xoffset=1 yoffset=17 xadvance=65 page=0 chnl=0
+char id=58 x=197 y=339 width=9 height=26 xoffset=2 yoffset=19 xadvance=10 page=0 chnl=0
+char id=62 x=0 y=374 width=66 height=25 xoffset=1 yoffset=17 xadvance=66 page=0 chnl=0
+char id=43 x=66 y=374 width=22 height=20 xoffset=0 yoffset=15 xadvance=19 page=0 chnl=0
+char id=44 x=88 y=374 width=8 height=16 xoffset=2 yoffset=34 xadvance=9 page=0 chnl=0
+char id=34 x=96 y=374 width=16 height=15 xoffset=0 yoffset=10 xadvance=14 page=0 chnl=0
+char id=39 x=112 y=374 width=8 height=13 xoffset=1 yoffset=10 xadvance=7 page=0 chnl=0
+char id=61 x=120 y=374 width=15 height=10 xoffset=2 yoffset=22 xadvance=16 page=0 chnl=0
+char id=46 x=135 y=374 width=10 height=9 xoffset=2 yoffset=35 xadvance=10 page=0 chnl=0
+char id=96 x=145 y=374 width=12 height=8 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
+char id=45 x=157 y=374 width=15 height=5 xoffset=2 yoffset=23 xadvance=16 page=0 chnl=0
+kernings count=-1
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest.png b/tests/cpp-tests/Resources/fonts/bitmapFontTest.png
new file mode 100755
index 0000000000..112328fdb0
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontTest.png differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest2.bmp b/tests/cpp-tests/Resources/fonts/bitmapFontTest2.bmp
new file mode 100755
index 0000000000..263832e276
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontTest2.bmp differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest2.fnt b/tests/cpp-tests/Resources/fonts/bitmapFontTest2.fnt
new file mode 100755
index 0000000000..d0814a00ca
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/bitmapFontTest2.fnt
@@ -0,0 +1,188 @@
+info face="Ardour3DGM" size=96 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=104 base=26 scaleW=1024 scaleH=512 pages=1 packed=0
+page id=0 file="bitmapFontTest2.png"
+chars count=94
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=75 xadvance=30 page=0 chnl=0
+char id=125 x=0 y=0 width=34 height=90 xoffset=1 yoffset=10 xadvance=30 page=0 chnl=0
+char id=123 x=34 y=0 width=34 height=90 xoffset=1 yoffset=10 xadvance=30 page=0 chnl=0
+char id=93 x=68 y=0 width=35 height=90 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=0
+char id=91 x=103 y=0 width=35 height=90 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=0
+char id=41 x=138 y=0 width=28 height=90 xoffset=1 yoffset=10 xadvance=24 page=0 chnl=0
+char id=40 x=166 y=0 width=26 height=90 xoffset=1 yoffset=10 xadvance=24 page=0 chnl=0
+char id=124 x=192 y=0 width=21 height=89 xoffset=1 yoffset=13 xadvance=17 page=0 chnl=0
+char id=106 x=213 y=0 width=37 height=79 xoffset=-7 yoffset=21 xadvance=18 page=0 chnl=0
+char id=81 x=250 y=0 width=42 height=77 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=37 x=292 y=0 width=79 height=70 xoffset=1 yoffset=14 xadvance=75 page=0 chnl=0
+char id=92 x=371 y=0 width=57 height=70 xoffset=1 yoffset=14 xadvance=55 page=0 chnl=0
+char id=47 x=428 y=0 width=59 height=70 xoffset=1 yoffset=14 xadvance=55 page=0 chnl=0
+char id=52 x=487 y=0 width=49 height=70 xoffset=1 yoffset=13 xadvance=45 page=0 chnl=0
+char id=77 x=536 y=0 width=63 height=70 xoffset=1 yoffset=13 xadvance=59 page=0 chnl=0
+char id=55 x=599 y=0 width=55 height=69 xoffset=1 yoffset=15 xadvance=51 page=0 chnl=0
+char id=121 x=654 y=0 width=40 height=69 xoffset=1 yoffset=31 xadvance=38 page=0 chnl=0
+char id=113 x=694 y=0 width=41 height=69 xoffset=1 yoffset=32 xadvance=37 page=0 chnl=0
+char id=112 x=735 y=0 width=41 height=69 xoffset=1 yoffset=32 xadvance=37 page=0 chnl=0
+char id=108 x=776 y=0 width=21 height=69 xoffset=1 yoffset=14 xadvance=17 page=0 chnl=0
+char id=107 x=797 y=0 width=41 height=69 xoffset=1 yoffset=14 xadvance=37 page=0 chnl=0
+char id=104 x=838 y=0 width=41 height=69 xoffset=1 yoffset=14 xadvance=37 page=0 chnl=0
+char id=89 x=879 y=0 width=42 height=69 xoffset=1 yoffset=14 xadvance=38 page=0 chnl=0
+char id=88 x=921 y=0 width=42 height=69 xoffset=1 yoffset=14 xadvance=38 page=0 chnl=0
+char id=78 x=963 y=0 width=43 height=69 xoffset=1 yoffset=14 xadvance=39 page=0 chnl=0
+char id=75 x=0 y=90 width=43 height=69 xoffset=1 yoffset=14 xadvance=39 page=0 chnl=0
+char id=72 x=43 y=90 width=42 height=69 xoffset=1 yoffset=14 xadvance=38 page=0 chnl=0
+char id=49 x=85 y=90 width=33 height=68 xoffset=1 yoffset=14 xadvance=29 page=0 chnl=0
+char id=103 x=118 y=90 width=40 height=68 xoffset=1 yoffset=32 xadvance=38 page=0 chnl=0
+char id=102 x=158 y=90 width=33 height=68 xoffset=1 yoffset=15 xadvance=29 page=0 chnl=0
+char id=100 x=191 y=90 width=41 height=68 xoffset=1 yoffset=14 xadvance=37 page=0 chnl=0
+char id=98 x=232 y=90 width=41 height=68 xoffset=1 yoffset=14 xadvance=37 page=0 chnl=0
+char id=87 x=273 y=90 width=62 height=68 xoffset=1 yoffset=14 xadvance=58 page=0 chnl=0
+char id=86 x=335 y=90 width=40 height=68 xoffset=1 yoffset=14 xadvance=38 page=0 chnl=0
+char id=85 x=375 y=90 width=42 height=68 xoffset=1 yoffset=14 xadvance=38 page=0 chnl=0
+char id=84 x=417 y=90 width=56 height=68 xoffset=1 yoffset=15 xadvance=52 page=0 chnl=0
+char id=82 x=473 y=90 width=42 height=68 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=80 x=515 y=90 width=42 height=68 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=76 x=557 y=90 width=43 height=68 xoffset=1 yoffset=14 xadvance=39 page=0 chnl=0
+char id=74 x=600 y=90 width=42 height=68 xoffset=1 yoffset=14 xadvance=38 page=0 chnl=0
+char id=70 x=642 y=90 width=41 height=68 xoffset=1 yoffset=15 xadvance=37 page=0 chnl=0
+char id=65 x=683 y=90 width=41 height=68 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=38 x=724 y=90 width=45 height=67 xoffset=1 yoffset=15 xadvance=41 page=0 chnl=0
+char id=36 x=769 y=90 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=63 x=811 y=90 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=48 x=853 y=90 width=45 height=67 xoffset=1 yoffset=15 xadvance=43 page=0 chnl=0
+char id=57 x=898 y=90 width=40 height=67 xoffset=2 yoffset=15 xadvance=37 page=0 chnl=0
+char id=56 x=938 y=90 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=54 x=980 y=90 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=53 x=0 y=159 width=43 height=67 xoffset=1 yoffset=15 xadvance=39 page=0 chnl=0
+char id=51 x=43 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=50 x=85 y=159 width=43 height=67 xoffset=1 yoffset=15 xadvance=39 page=0 chnl=0
+char id=90 x=128 y=159 width=45 height=67 xoffset=1 yoffset=15 xadvance=43 page=0 chnl=0
+char id=83 x=173 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=79 x=215 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=73 x=257 y=159 width=30 height=67 xoffset=1 yoffset=15 xadvance=26 page=0 chnl=0
+char id=71 x=287 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=69 x=329 y=159 width=41 height=67 xoffset=1 yoffset=15 xadvance=37 page=0 chnl=0
+char id=68 x=370 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=67 x=412 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=66 x=454 y=159 width=42 height=67 xoffset=1 yoffset=15 xadvance=38 page=0 chnl=0
+char id=33 x=496 y=159 width=22 height=66 xoffset=1 yoffset=16 xadvance=18 page=0 chnl=0
+char id=64 x=518 y=159 width=68 height=62 xoffset=1 yoffset=19 xadvance=66 page=0 chnl=0
+char id=116 x=586 y=159 width=31 height=62 xoffset=1 yoffset=21 xadvance=27 page=0 chnl=0
+char id=105 x=617 y=159 width=22 height=62 xoffset=1 yoffset=21 xadvance=18 page=0 chnl=0
+char id=59 x=639 y=159 width=22 height=57 xoffset=1 yoffset=34 xadvance=18 page=0 chnl=0
+char id=117 x=661 y=159 width=40 height=52 xoffset=1 yoffset=31 xadvance=38 page=0 chnl=0
+char id=110 x=701 y=159 width=40 height=52 xoffset=1 yoffset=32 xadvance=38 page=0 chnl=0
+char id=109 x=741 y=159 width=60 height=52 xoffset=1 yoffset=32 xadvance=58 page=0 chnl=0
+char id=120 x=801 y=159 width=40 height=51 xoffset=1 yoffset=32 xadvance=38 page=0 chnl=0
+char id=114 x=841 y=159 width=41 height=51 xoffset=1 yoffset=32 xadvance=37 page=0 chnl=0
+char id=97 x=882 y=159 width=41 height=51 xoffset=1 yoffset=32 xadvance=37 page=0 chnl=0
+char id=35 x=923 y=159 width=56 height=50 xoffset=1 yoffset=24 xadvance=52 page=0 chnl=0
+char id=119 x=0 y=226 width=62 height=50 xoffset=1 yoffset=32 xadvance=58 page=0 chnl=0
+char id=118 x=62 y=226 width=40 height=50 xoffset=1 yoffset=32 xadvance=38 page=0 chnl=0
+char id=122 x=102 y=226 width=43 height=49 xoffset=1 yoffset=33 xadvance=39 page=0 chnl=0
+char id=115 x=145 y=226 width=40 height=49 xoffset=1 yoffset=33 xadvance=36 page=0 chnl=0
+char id=111 x=185 y=226 width=40 height=49 xoffset=1 yoffset=33 xadvance=38 page=0 chnl=0
+char id=101 x=225 y=226 width=40 height=49 xoffset=1 yoffset=33 xadvance=38 page=0 chnl=0
+char id=99 x=265 y=226 width=40 height=49 xoffset=1 yoffset=33 xadvance=38 page=0 chnl=0
+char id=58 x=305 y=226 width=22 height=48 xoffset=1 yoffset=34 xadvance=18 page=0 chnl=0
+char id=42 x=327 y=226 width=32 height=34 xoffset=1 yoffset=16 xadvance=30 page=0 chnl=0
+char id=62 x=359 y=226 width=39 height=34 xoffset=1 yoffset=40 xadvance=35 page=0 chnl=0
+char id=60 x=398 y=226 width=38 height=34 xoffset=1 yoffset=40 xadvance=34 page=0 chnl=0
+char id=43 x=436 y=226 width=43 height=32 xoffset=1 yoffset=41 xadvance=39 page=0 chnl=0
+char id=44 x=479 y=226 width=22 height=25 xoffset=1 yoffset=66 xadvance=18 page=0 chnl=0
+char id=39 x=501 y=226 width=17 height=24 xoffset=1 yoffset=15 xadvance=15 page=0 chnl=0
+char id=96 x=518 y=226 width=24 height=24 xoffset=1 yoffset=15 xadvance=22 page=0 chnl=0
+char id=34 x=542 y=226 width=33 height=24 xoffset=1 yoffset=15 xadvance=29 page=0 chnl=0
+char id=94 x=575 y=226 width=38 height=23 xoffset=1 yoffset=16 xadvance=34 page=0 chnl=0
+char id=126 x=613 y=226 width=47 height=22 xoffset=1 yoffset=25 xadvance=43 page=0 chnl=0
+char id=61 x=660 y=226 width=44 height=22 xoffset=1 yoffset=47 xadvance=40 page=0 chnl=0
+char id=46 x=704 y=226 width=22 height=16 xoffset=1 yoffset=66 xadvance=18 page=0 chnl=0
+char id=45 x=726 y=226 width=37 height=13 xoffset=1 yoffset=51 xadvance=33 page=0 chnl=0
+char id=95 x=763 y=226 width=46 height=12 xoffset=1 yoffset=85 xadvance=42 page=0 chnl=0
+kernings count=87
+kerning first=121 second=44 amount=-7
+kerning first=121 second=46 amount=-7
+kerning first=89 second=44 amount=-12
+kerning first=89 second=45 amount=-9
+kerning first=89 second=46 amount=-12
+kerning first=89 second=58 amount=-5
+kerning first=89 second=59 amount=-6
+kerning first=89 second=65 amount=-7
+kerning first=89 second=97 amount=-7
+kerning first=89 second=101 amount=-9
+kerning first=89 second=105 amount=-3
+kerning first=89 second=111 amount=-9
+kerning first=89 second=112 amount=-7
+kerning first=89 second=113 amount=-9
+kerning first=89 second=117 amount=-5
+kerning first=89 second=118 amount=-5
+kerning first=49 second=49 amount=-7
+kerning first=102 second=102 amount=-2
+kerning first=87 second=44 amount=-5
+kerning first=87 second=45 amount=-2
+kerning first=87 second=46 amount=-5
+kerning first=87 second=58 amount=-2
+kerning first=87 second=59 amount=-2
+kerning first=87 second=65 amount=-3
+kerning first=87 second=97 amount=-3
+kerning first=87 second=101 amount=-2
+kerning first=87 second=111 amount=-2
+kerning first=87 second=114 amount=-2
+kerning first=87 second=117 amount=-2
+kerning first=87 second=121 amount=-1
+kerning first=86 second=44 amount=-9
+kerning first=86 second=45 amount=-5
+kerning first=86 second=46 amount=-9
+kerning first=86 second=58 amount=-3
+kerning first=86 second=59 amount=-3
+kerning first=86 second=65 amount=-7
+kerning first=86 second=97 amount=-7
+kerning first=86 second=101 amount=-5
+kerning first=86 second=105 amount=-2
+kerning first=86 second=111 amount=-5
+kerning first=86 second=114 amount=-3
+kerning first=86 second=117 amount=-3
+kerning first=86 second=121 amount=-3
+kerning first=84 second=44 amount=-10
+kerning first=84 second=45 amount=-5
+kerning first=84 second=46 amount=-10
+kerning first=84 second=58 amount=-10
+kerning first=84 second=59 amount=-10
+kerning first=84 second=65 amount=-7
+kerning first=84 second=79 amount=-2
+kerning first=84 second=97 amount=-10
+kerning first=84 second=99 amount=-10
+kerning first=84 second=101 amount=-10
+kerning first=84 second=105 amount=-3
+kerning first=84 second=111 amount=-10
+kerning first=84 second=114 amount=-3
+kerning first=84 second=115 amount=-10
+kerning first=84 second=117 amount=-3
+kerning first=84 second=119 amount=-5
+kerning first=84 second=121 amount=-5
+kerning first=82 second=84 amount=-2
+kerning first=82 second=86 amount=-2
+kerning first=82 second=87 amount=-2
+kerning first=82 second=89 amount=-2
+kerning first=80 second=44 amount=-12
+kerning first=80 second=46 amount=-12
+kerning first=80 second=65 amount=-7
+kerning first=76 second=84 amount=-7
+kerning first=76 second=86 amount=-7
+kerning first=76 second=87 amount=-7
+kerning first=76 second=89 amount=-7
+kerning first=76 second=121 amount=-3
+kerning first=70 second=44 amount=-10
+kerning first=70 second=46 amount=-10
+kerning first=70 second=65 amount=-5
+kerning first=65 second=84 amount=-7
+kerning first=65 second=86 amount=-7
+kerning first=65 second=87 amount=-3
+kerning first=65 second=89 amount=-7
+kerning first=65 second=118 amount=-2
+kerning first=65 second=119 amount=-2
+kerning first=65 second=121 amount=-2
+kerning first=114 second=44 amount=-5
+kerning first=114 second=46 amount=-5
+kerning first=119 second=44 amount=-5
+kerning first=119 second=46 amount=-5
+kerning first=118 second=44 amount=-7
+kerning first=118 second=46 amount=-7
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest2.png b/tests/cpp-tests/Resources/fonts/bitmapFontTest2.png
new file mode 100755
index 0000000000..9975e49612
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontTest2.png differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest3.fnt b/tests/cpp-tests/Resources/fonts/bitmapFontTest3.fnt
new file mode 100755
index 0000000000..53c9bc1343
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/bitmapFontTest3.fnt
@@ -0,0 +1,102 @@
+info face="ActionJackson" size=28 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=30 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="bitmapFontTest3.png"
+chars count=94
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=24 xadvance=23 page=0 chnl=0
+char id=114 x=0 y=0 width=16 height=25 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=0
+char id=82 x=16 y=0 width=16 height=25 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=0
+char id=62 x=32 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=60 x=41 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=125 x=51 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=123 x=60 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=93 x=70 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=91 x=79 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=41 x=89 y=0 width=9 height=24 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
+char id=40 x=98 y=0 width=10 height=24 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0
+char id=56 x=108 y=0 width=17 height=24 xoffset=0 yoffset=1 xadvance=15 page=0 chnl=0
+char id=105 x=125 y=0 width=19 height=24 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0
+char id=101 x=144 y=0 width=18 height=24 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=0
+char id=73 x=162 y=0 width=19 height=24 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0
+char id=69 x=181 y=0 width=18 height=24 xoffset=0 yoffset=1 xadvance=16 page=0 chnl=0
+char id=59 x=199 y=0 width=11 height=23 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0
+char id=63 x=210 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=33 x=226 y=0 width=8 height=23 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
+char id=48 x=234 y=0 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=57 x=252 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=54 x=268 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=53 x=285 y=0 width=19 height=23 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=52 x=304 y=0 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=51 x=322 y=0 width=16 height=23 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=49 x=338 y=0 width=16 height=23 xoffset=1 yoffset=2 xadvance=15 page=0 chnl=0
+char id=122 x=354 y=0 width=19 height=23 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=121 x=373 y=0 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=118 x=393 y=0 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=116 x=414 y=0 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=113 x=435 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=112 x=452 y=0 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=110 x=469 y=0 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=109 x=0 y=25 width=25 height=23 xoffset=0 yoffset=2 xadvance=22 page=0 chnl=0
+char id=108 x=25 y=25 width=21 height=23 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=0
+char id=107 x=46 y=25 width=19 height=23 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0
+char id=106 x=65 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=100 x=85 y=25 width=19 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=98 x=104 y=25 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=97 x=122 y=25 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=90 x=143 y=25 width=19 height=23 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=89 x=162 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=86 x=182 y=25 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=84 x=203 y=25 width=21 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=81 x=224 y=25 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=80 x=241 y=25 width=17 height=23 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=78 x=258 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=77 x=278 y=25 width=25 height=23 xoffset=0 yoffset=2 xadvance=22 page=0 chnl=0
+char id=76 x=303 y=25 width=21 height=23 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=0
+char id=75 x=324 y=25 width=19 height=23 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0
+char id=74 x=343 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=18 page=0 chnl=0
+char id=68 x=363 y=25 width=19 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=66 x=382 y=25 width=18 height=23 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=65 x=400 y=25 width=20 height=23 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
+char id=55 x=420 y=25 width=18 height=22 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
+char id=50 x=438 y=25 width=18 height=22 xoffset=1 yoffset=2 xadvance=17 page=0 chnl=0
+char id=120 x=456 y=25 width=23 height=22 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=117 x=479 y=25 width=22 height=22 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=115 x=0 y=48 width=16 height=22 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=111 x=16 y=48 width=17 height=22 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=102 x=33 y=48 width=20 height=22 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=88 x=53 y=48 width=23 height=22 xoffset=0 yoffset=3 xadvance=21 page=0 chnl=0
+char id=85 x=76 y=48 width=22 height=22 xoffset=0 yoffset=2 xadvance=20 page=0 chnl=0
+char id=83 x=98 y=48 width=16 height=22 xoffset=0 yoffset=2 xadvance=14 page=0 chnl=0
+char id=79 x=114 y=48 width=17 height=22 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=70 x=131 y=48 width=20 height=22 xoffset=0 yoffset=2 xadvance=17 page=0 chnl=0
+char id=92 x=151 y=48 width=12 height=21 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
+char id=119 x=163 y=48 width=24 height=21 xoffset=0 yoffset=2 xadvance=21 page=0 chnl=0
+char id=104 x=187 y=48 width=20 height=21 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=103 x=207 y=48 width=22 height=21 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=87 x=229 y=48 width=24 height=21 xoffset=0 yoffset=2 xadvance=21 page=0 chnl=0
+char id=72 x=253 y=48 width=20 height=21 xoffset=1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=71 x=273 y=48 width=22 height=21 xoffset=0 yoffset=3 xadvance=20 page=0 chnl=0
+char id=47 x=295 y=48 width=11 height=20 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=124 x=306 y=48 width=11 height=20 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=99 x=317 y=48 width=18 height=20 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=67 x=335 y=48 width=18 height=20 xoffset=0 yoffset=2 xadvance=16 page=0 chnl=0
+char id=126 x=353 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=38 x=370 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=35 x=387 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=37 x=404 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=36 x=421 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=94 x=438 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=64 x=455 y=48 width=17 height=18 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
+char id=43 x=472 y=48 width=17 height=17 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0
+char id=58 x=489 y=48 width=9 height=17 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0
+char id=61 x=0 y=70 width=17 height=14 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=0
+char id=44 x=17 y=70 width=11 height=14 xoffset=0 yoffset=16 xadvance=9 page=0 chnl=0
+char id=39 x=28 y=70 width=11 height=14 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=0
+char id=96 x=39 y=70 width=10 height=13 xoffset=1 yoffset=0 xadvance=9 page=0 chnl=0
+char id=34 x=49 y=70 width=20 height=13 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=0
+char id=95 x=69 y=70 width=16 height=8 xoffset=1 yoffset=17 xadvance=16 page=0 chnl=0
+char id=45 x=85 y=70 width=17 height=8 xoffset=1 yoffset=10 xadvance=16 page=0 chnl=0
+char id=42 x=102 y=70 width=8 height=7 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=0
+char id=46 x=110 y=70 width=9 height=7 xoffset=0 yoffset=18 xadvance=7 page=0 chnl=0
+kernings count=1
+kerning first=79 second=66 amount=-1
+kerning first=79 second=89 amount=-3
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest3.png b/tests/cpp-tests/Resources/fonts/bitmapFontTest3.png
new file mode 100755
index 0000000000..d19379f5e7
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontTest3.png differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest4.fnt b/tests/cpp-tests/Resources/fonts/bitmapFontTest4.fnt
new file mode 100755
index 0000000000..b98b4699ea
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/bitmapFontTest4.fnt
@@ -0,0 +1,99 @@
+info face="Cracked" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=37 base=26 scaleW=256 scaleH=256 pages=1 packed=0
+page id=0 file="bitmapFontTest4.png"
+chars count=94
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=27 xadvance=9 page=0 chnl=0
+char id=40 x=0 y=0 width=14 height=35 xoffset=-2 yoffset=-2 xadvance=11 page=0 chnl=0
+char id=123 x=14 y=0 width=19 height=34 xoffset=-3 yoffset=-1 xadvance=10 page=0 chnl=0
+char id=93 x=33 y=0 width=16 height=34 xoffset=-4 yoffset=-1 xadvance=10 page=0 chnl=0
+char id=41 x=49 y=0 width=13 height=34 xoffset=-2 yoffset=-2 xadvance=11 page=0 chnl=0
+char id=125 x=62 y=0 width=19 height=33 xoffset=-4 yoffset=0 xadvance=10 page=0 chnl=0
+char id=91 x=81 y=0 width=14 height=33 xoffset=-1 yoffset=0 xadvance=10 page=0 chnl=0
+char id=106 x=95 y=0 width=12 height=32 xoffset=-2 yoffset=4 xadvance=10 page=0 chnl=0
+char id=36 x=107 y=0 width=17 height=31 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
+char id=81 x=124 y=0 width=19 height=31 xoffset=-2 yoffset=3 xadvance=17 page=0 chnl=0
+char id=65 x=143 y=0 width=18 height=31 xoffset=-2 yoffset=3 xadvance=17 page=0 chnl=0
+char id=38 x=161 y=0 width=20 height=30 xoffset=-1 yoffset=4 xadvance=19 page=0 chnl=0
+char id=92 x=181 y=0 width=15 height=30 xoffset=-2 yoffset=2 xadvance=14 page=0 chnl=0
+char id=47 x=196 y=0 width=15 height=30 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=0
+char id=55 x=211 y=0 width=16 height=30 xoffset=-2 yoffset=2 xadvance=15 page=0 chnl=0
+char id=107 x=227 y=0 width=17 height=30 xoffset=-2 yoffset=2 xadvance=14 page=0 chnl=0
+char id=90 x=0 y=35 width=17 height=30 xoffset=-2 yoffset=2 xadvance=15 page=0 chnl=0
+char id=74 x=17 y=35 width=14 height=30 xoffset=-2 yoffset=1 xadvance=12 page=0 chnl=0
+char id=71 x=31 y=35 width=18 height=30 xoffset=-2 yoffset=3 xadvance=16 page=0 chnl=0
+char id=33 x=49 y=35 width=11 height=29 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=0
+char id=56 x=60 y=35 width=17 height=29 xoffset=-2 yoffset=3 xadvance=15 page=0 chnl=0
+char id=49 x=77 y=35 width=16 height=29 xoffset=-2 yoffset=2 xadvance=14 page=0 chnl=0
+char id=116 x=93 y=35 width=15 height=29 xoffset=-2 yoffset=4 xadvance=13 page=0 chnl=0
+char id=108 x=108 y=35 width=11 height=29 xoffset=-2 yoffset=2 xadvance=9 page=0 chnl=0
+char id=86 x=119 y=35 width=18 height=29 xoffset=-2 yoffset=3 xadvance=16 page=0 chnl=0
+char id=70 x=137 y=35 width=16 height=29 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=0
+char id=68 x=153 y=35 width=18 height=29 xoffset=-2 yoffset=2 xadvance=16 page=0 chnl=0
+char id=37 x=171 y=35 width=19 height=28 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=0
+char id=63 x=190 y=35 width=15 height=28 xoffset=-2 yoffset=3 xadvance=13 page=0 chnl=0
+char id=48 x=205 y=35 width=17 height=28 xoffset=-2 yoffset=3 xadvance=15 page=0 chnl=0
+char id=57 x=222 y=35 width=17 height=28 xoffset=-2 yoffset=3 xadvance=15 page=0 chnl=0
+char id=54 x=0 y=65 width=17 height=28 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=53 x=17 y=65 width=17 height=28 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=113 x=34 y=65 width=17 height=28 xoffset=-2 yoffset=7 xadvance=14 page=0 chnl=0
+char id=104 x=51 y=65 width=17 height=28 xoffset=-2 yoffset=3 xadvance=15 page=0 chnl=0
+char id=103 x=68 y=65 width=19 height=28 xoffset=-2 yoffset=6 xadvance=16 page=0 chnl=0
+char id=100 x=87 y=65 width=17 height=28 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=88 x=104 y=65 width=19 height=28 xoffset=-2 yoffset=4 xadvance=16 page=0 chnl=0
+char id=87 x=123 y=65 width=25 height=28 xoffset=-2 yoffset=4 xadvance=23 page=0 chnl=0
+char id=82 x=148 y=65 width=17 height=28 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=79 x=165 y=65 width=19 height=28 xoffset=-2 yoffset=4 xadvance=17 page=0 chnl=0
+char id=76 x=184 y=65 width=16 height=28 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=0
+char id=75 x=200 y=65 width=18 height=28 xoffset=-2 yoffset=3 xadvance=16 page=0 chnl=0
+char id=72 x=218 y=65 width=18 height=28 xoffset=-2 yoffset=3 xadvance=16 page=0 chnl=0
+char id=69 x=236 y=65 width=17 height=28 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=124 x=0 y=93 width=10 height=27 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0
+char id=59 x=10 y=93 width=13 height=27 xoffset=-2 yoffset=7 xadvance=8 page=0 chnl=0
+char id=52 x=23 y=93 width=18 height=27 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=51 x=41 y=93 width=18 height=27 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=50 x=59 y=93 width=18 height=27 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
+char id=121 x=77 y=93 width=18 height=27 xoffset=-3 yoffset=8 xadvance=14 page=0 chnl=0
+char id=112 x=95 y=93 width=18 height=27 xoffset=-2 yoffset=7 xadvance=15 page=0 chnl=0
+char id=105 x=113 y=93 width=11 height=27 xoffset=-2 yoffset=4 xadvance=9 page=0 chnl=0
+char id=102 x=124 y=93 width=15 height=27 xoffset=-2 yoffset=4 xadvance=13 page=0 chnl=0
+char id=98 x=139 y=93 width=18 height=27 xoffset=-2 yoffset=5 xadvance=15 page=0 chnl=0
+char id=85 x=157 y=93 width=20 height=27 xoffset=-1 yoffset=4 xadvance=19 page=0 chnl=0
+char id=84 x=177 y=93 width=21 height=27 xoffset=-2 yoffset=5 xadvance=19 page=0 chnl=0
+char id=83 x=198 y=93 width=18 height=27 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=80 x=216 y=93 width=17 height=27 xoffset=-2 yoffset=4 xadvance=15 page=0 chnl=0
+char id=78 x=233 y=93 width=18 height=27 xoffset=-2 yoffset=4 xadvance=16 page=0 chnl=0
+char id=77 x=0 y=120 width=22 height=27 xoffset=-2 yoffset=5 xadvance=19 page=0 chnl=0
+char id=73 x=22 y=120 width=11 height=27 xoffset=-1 yoffset=4 xadvance=10 page=0 chnl=0
+char id=66 x=33 y=120 width=19 height=27 xoffset=-2 yoffset=4 xadvance=17 page=0 chnl=0
+char id=35 x=52 y=120 width=18 height=26 xoffset=-2 yoffset=6 xadvance=16 page=0 chnl=0
+char id=89 x=70 y=120 width=18 height=26 xoffset=-2 yoffset=5 xadvance=16 page=0 chnl=0
+char id=67 x=88 y=120 width=19 height=26 xoffset=-2 yoffset=4 xadvance=17 page=0 chnl=0
+char id=58 x=107 y=120 width=11 height=24 xoffset=-2 yoffset=7 xadvance=9 page=0 chnl=0
+char id=117 x=118 y=120 width=17 height=24 xoffset=-2 yoffset=9 xadvance=15 page=0 chnl=0
+char id=111 x=135 y=120 width=17 height=24 xoffset=-2 yoffset=8 xadvance=15 page=0 chnl=0
+char id=119 x=152 y=120 width=20 height=23 xoffset=-2 yoffset=8 xadvance=18 page=0 chnl=0
+char id=114 x=172 y=120 width=15 height=23 xoffset=-2 yoffset=8 xadvance=12 page=0 chnl=0
+char id=99 x=187 y=120 width=17 height=23 xoffset=-2 yoffset=8 xadvance=15 page=0 chnl=0
+char id=97 x=204 y=120 width=17 height=23 xoffset=-2 yoffset=8 xadvance=15 page=0 chnl=0
+char id=122 x=221 y=120 width=17 height=22 xoffset=-2 yoffset=9 xadvance=15 page=0 chnl=0
+char id=118 x=238 y=120 width=16 height=22 xoffset=-2 yoffset=8 xadvance=14 page=0 chnl=0
+char id=115 x=0 y=147 width=16 height=22 xoffset=-2 yoffset=9 xadvance=14 page=0 chnl=0
+char id=109 x=16 y=147 width=21 height=22 xoffset=-2 yoffset=8 xadvance=19 page=0 chnl=0
+char id=101 x=37 y=147 width=17 height=22 xoffset=-2 yoffset=8 xadvance=15 page=0 chnl=0
+char id=120 x=54 y=147 width=17 height=21 xoffset=-2 yoffset=9 xadvance=15 page=0 chnl=0
+char id=110 x=71 y=147 width=16 height=21 xoffset=-2 yoffset=9 xadvance=14 page=0 chnl=0
+char id=64 x=87 y=147 width=20 height=19 xoffset=-1 yoffset=7 xadvance=20 page=0 chnl=0
+char id=44 x=107 y=147 width=12 height=17 xoffset=-2 yoffset=18 xadvance=9 page=0 chnl=0
+char id=43 x=119 y=147 width=17 height=16 xoffset=-2 yoffset=9 xadvance=16 page=0 chnl=0
+char id=60 x=136 y=147 width=17 height=16 xoffset=-2 yoffset=9 xadvance=15 page=0 chnl=0
+char id=61 x=153 y=147 width=23 height=15 xoffset=-1 yoffset=9 xadvance=22 page=0 chnl=0
+char id=62 x=176 y=147 width=17 height=15 xoffset=-2 yoffset=10 xadvance=15 page=0 chnl=0
+char id=39 x=193 y=147 width=9 height=15 xoffset=-1 yoffset=0 xadvance=9 page=0 chnl=0
+char id=34 x=202 y=147 width=14 height=15 xoffset=-1 yoffset=4 xadvance=14 page=0 chnl=0
+char id=42 x=216 y=147 width=11 height=10 xoffset=-1 yoffset=3 xadvance=10 page=0 chnl=0
+char id=126 x=227 y=147 width=21 height=10 xoffset=-2 yoffset=-1 xadvance=19 page=0 chnl=0
+char id=94 x=0 y=169 width=13 height=10 xoffset=-1 yoffset=0 xadvance=13 page=0 chnl=0
+char id=46 x=13 y=169 width=10 height=10 xoffset=-2 yoffset=21 xadvance=7 page=0 chnl=0
+char id=96 x=23 y=169 width=13 height=10 xoffset=-4 yoffset=-1 xadvance=7 page=0 chnl=0
+char id=95 x=36 y=169 width=28 height=9 xoffset=-2 yoffset=25 xadvance=26 page=0 chnl=0
+char id=45 x=64 y=169 width=17 height=8 xoffset=-2 yoffset=12 xadvance=15 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest4.png b/tests/cpp-tests/Resources/fonts/bitmapFontTest4.png
new file mode 100755
index 0000000000..93dacc0806
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontTest4.png differ
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest5.fnt b/tests/cpp-tests/Resources/fonts/bitmapFontTest5.fnt
new file mode 100755
index 0000000000..0dacd6b174
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/bitmapFontTest5.fnt
@@ -0,0 +1,99 @@
+info face="CygnetRound" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=43 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="bitmapFontTest5.png"
+chars count=94
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=32 xadvance=9 page=0 chnl=0
+char id=125 x=0 y=0 width=38 height=37 xoffset=2 yoffset=5 xadvance=15 page=0 chnl=0
+char id=123 x=38 y=0 width=43 height=37 xoffset=7 yoffset=5 xadvance=15 page=0 chnl=0
+char id=89 x=81 y=0 width=52 height=37 xoffset=5 yoffset=7 xadvance=28 page=0 chnl=0
+char id=41 x=133 y=0 width=35 height=36 xoffset=-1 yoffset=7 xadvance=12 page=0 chnl=0
+char id=40 x=168 y=0 width=41 height=36 xoffset=6 yoffset=7 xadvance=12 page=0 chnl=0
+char id=102 x=209 y=0 width=66 height=36 xoffset=-9 yoffset=8 xadvance=7 page=0 chnl=0
+char id=74 x=275 y=0 width=61 height=36 xoffset=1 yoffset=8 xadvance=23 page=0 chnl=0
+char id=76 x=336 y=0 width=55 height=32 xoffset=6 yoffset=7 xadvance=22 page=0 chnl=0
+char id=124 x=391 y=0 width=6 height=31 xoffset=4 yoffset=7 xadvance=11 page=0 chnl=0
+char id=93 x=397 y=0 width=43 height=31 xoffset=6 yoffset=6 xadvance=12 page=0 chnl=0
+char id=91 x=440 y=0 width=41 height=31 xoffset=4 yoffset=6 xadvance=12 page=0 chnl=0
+char id=112 x=0 y=37 width=45 height=31 xoffset=-3 yoffset=13 xadvance=14 page=0 chnl=0
+char id=92 x=45 y=37 width=13 height=30 xoffset=3 yoffset=8 xadvance=16 page=0 chnl=0
+char id=47 x=58 y=37 width=13 height=30 xoffset=3 yoffset=8 xadvance=16 page=0 chnl=0
+char id=106 x=71 y=37 width=51 height=30 xoffset=-9 yoffset=14 xadvance=10 page=0 chnl=0
+char id=64 x=122 y=37 width=33 height=29 xoffset=9 yoffset=9 xadvance=35 page=0 chnl=0
+char id=71 x=155 y=37 width=43 height=29 xoffset=6 yoffset=5 xadvance=20 page=0 chnl=0
+char id=57 x=198 y=37 width=41 height=28 xoffset=-6 yoffset=13 xadvance=16 page=0 chnl=0
+char id=81 x=239 y=37 width=43 height=28 xoffset=5 yoffset=7 xadvance=25 page=0 chnl=0
+char id=80 x=282 y=37 width=52 height=28 xoffset=5 yoffset=6 xadvance=26 page=0 chnl=0
+char id=68 x=334 y=37 width=43 height=28 xoffset=5 yoffset=6 xadvance=25 page=0 chnl=0
+char id=90 x=377 y=37 width=45 height=27 xoffset=6 yoffset=7 xadvance=22 page=0 chnl=0
+char id=88 x=422 y=37 width=56 height=27 xoffset=6 yoffset=7 xadvance=27 page=0 chnl=0
+char id=87 x=0 y=68 width=49 height=27 xoffset=7 yoffset=7 xadvance=29 page=0 chnl=0
+char id=86 x=49 y=68 width=45 height=27 xoffset=5 yoffset=7 xadvance=17 page=0 chnl=0
+char id=85 x=94 y=68 width=41 height=27 xoffset=6 yoffset=7 xadvance=22 page=0 chnl=0
+char id=83 x=135 y=68 width=46 height=27 xoffset=5 yoffset=7 xadvance=20 page=0 chnl=0
+char id=82 x=181 y=68 width=44 height=27 xoffset=6 yoffset=7 xadvance=27 page=0 chnl=0
+char id=79 x=225 y=68 width=36 height=27 xoffset=7 yoffset=7 xadvance=20 page=0 chnl=0
+char id=78 x=261 y=68 width=60 height=27 xoffset=6 yoffset=7 xadvance=27 page=0 chnl=0
+char id=77 x=321 y=68 width=60 height=27 xoffset=6 yoffset=7 xadvance=33 page=0 chnl=0
+char id=75 x=381 y=68 width=62 height=27 xoffset=4 yoffset=7 xadvance=27 page=0 chnl=0
+char id=73 x=443 y=68 width=54 height=27 xoffset=5 yoffset=7 xadvance=20 page=0 chnl=0
+char id=72 x=0 y=95 width=60 height=27 xoffset=6 yoffset=7 xadvance=27 page=0 chnl=0
+char id=69 x=60 y=95 width=34 height=27 xoffset=6 yoffset=7 xadvance=19 page=0 chnl=0
+char id=67 x=94 y=95 width=40 height=27 xoffset=7 yoffset=7 xadvance=18 page=0 chnl=0
+char id=66 x=134 y=95 width=41 height=27 xoffset=6 yoffset=7 xadvance=26 page=0 chnl=0
+char id=65 x=175 y=95 width=47 height=27 xoffset=6 yoffset=7 xadvance=29 page=0 chnl=0
+char id=54 x=222 y=95 width=41 height=26 xoffset=7 yoffset=8 xadvance=17 page=0 chnl=0
+char id=108 x=263 y=95 width=33 height=26 xoffset=5 yoffset=8 xadvance=7 page=0 chnl=0
+char id=107 x=296 y=95 width=35 height=26 xoffset=3 yoffset=8 xadvance=15 page=0 chnl=0
+char id=104 x=331 y=95 width=34 height=26 xoffset=4 yoffset=8 xadvance=15 page=0 chnl=0
+char id=100 x=365 y=95 width=40 height=26 xoffset=6 yoffset=8 xadvance=15 page=0 chnl=0
+char id=98 x=405 y=95 width=33 height=26 xoffset=7 yoffset=8 xadvance=15 page=0 chnl=0
+char id=84 x=438 y=95 width=57 height=26 xoffset=5 yoffset=8 xadvance=25 page=0 chnl=0
+char id=70 x=0 y=122 width=55 height=26 xoffset=5 yoffset=8 xadvance=25 page=0 chnl=0
+char id=36 x=55 y=122 width=30 height=25 xoffset=5 yoffset=11 xadvance=16 page=0 chnl=0
+char id=55 x=85 y=122 width=33 height=25 xoffset=2 yoffset=13 xadvance=14 page=0 chnl=0
+char id=56 x=118 y=122 width=30 height=24 xoffset=6 yoffset=10 xadvance=17 page=0 chnl=0
+char id=121 x=148 y=122 width=50 height=24 xoffset=-6 yoffset=20 xadvance=15 page=0 chnl=0
+char id=113 x=198 y=122 width=33 height=24 xoffset=5 yoffset=20 xadvance=15 page=0 chnl=0
+char id=103 x=231 y=122 width=48 height=24 xoffset=-5 yoffset=20 xadvance=15 page=0 chnl=0
+char id=52 x=279 y=122 width=28 height=23 xoffset=6 yoffset=10 xadvance=17 page=0 chnl=0
+char id=37 x=307 y=122 width=29 height=22 xoffset=8 yoffset=13 xadvance=26 page=0 chnl=0
+char id=38 x=336 y=122 width=32 height=21 xoffset=12 yoffset=13 xadvance=29 page=0 chnl=0
+char id=63 x=368 y=122 width=23 height=21 xoffset=11 yoffset=13 xadvance=19 page=0 chnl=0
+char id=33 x=391 y=122 width=23 height=21 xoffset=10 yoffset=13 xadvance=16 page=0 chnl=0
+char id=48 x=414 y=122 width=27 height=21 xoffset=6 yoffset=13 xadvance=16 page=0 chnl=0
+char id=53 x=441 y=122 width=31 height=21 xoffset=5 yoffset=13 xadvance=17 page=0 chnl=0
+char id=51 x=472 y=122 width=29 height=21 xoffset=5 yoffset=13 xadvance=17 page=0 chnl=0
+char id=50 x=0 y=148 width=27 height=21 xoffset=3 yoffset=13 xadvance=17 page=0 chnl=0
+char id=43 x=27 y=148 width=21 height=20 xoffset=3 yoffset=13 xadvance=25 page=0 chnl=0
+char id=49 x=48 y=148 width=25 height=20 xoffset=6 yoffset=13 xadvance=12 page=0 chnl=0
+char id=105 x=73 y=148 width=26 height=20 xoffset=6 yoffset=14 xadvance=7 page=0 chnl=0
+char id=94 x=99 y=148 width=20 height=19 xoffset=1 yoffset=8 xadvance=20 page=0 chnl=0
+char id=59 x=119 y=148 width=22 height=18 xoffset=6 yoffset=20 xadvance=11 page=0 chnl=0
+char id=116 x=141 y=148 width=28 height=18 xoffset=6 yoffset=16 xadvance=9 page=0 chnl=0
+char id=35 x=169 y=148 width=32 height=16 xoffset=8 yoffset=8 xadvance=17 page=0 chnl=0
+char id=122 x=201 y=148 width=32 height=15 xoffset=6 yoffset=19 xadvance=13 page=0 chnl=0
+char id=42 x=233 y=148 width=15 height=14 xoffset=1 yoffset=8 xadvance=15 page=0 chnl=0
+char id=58 x=248 y=148 width=18 height=14 xoffset=8 yoffset=20 xadvance=11 page=0 chnl=0
+char id=120 x=266 y=148 width=37 height=14 xoffset=4 yoffset=20 xadvance=16 page=0 chnl=0
+char id=119 x=303 y=148 width=40 height=14 xoffset=6 yoffset=20 xadvance=23 page=0 chnl=0
+char id=118 x=343 y=148 width=32 height=14 xoffset=6 yoffset=20 xadvance=15 page=0 chnl=0
+char id=117 x=375 y=148 width=33 height=14 xoffset=5 yoffset=20 xadvance=15 page=0 chnl=0
+char id=115 x=408 y=148 width=30 height=14 xoffset=4 yoffset=20 xadvance=11 page=0 chnl=0
+char id=111 x=438 y=148 width=32 height=14 xoffset=6 yoffset=20 xadvance=15 page=0 chnl=0
+char id=110 x=470 y=148 width=34 height=14 xoffset=4 yoffset=20 xadvance=15 page=0 chnl=0
+char id=109 x=0 y=169 width=41 height=14 xoffset=4 yoffset=20 xadvance=22 page=0 chnl=0
+char id=101 x=41 y=169 width=30 height=14 xoffset=6 yoffset=20 xadvance=11 page=0 chnl=0
+char id=99 x=71 y=169 width=28 height=14 xoffset=6 yoffset=20 xadvance=11 page=0 chnl=0
+char id=97 x=99 y=169 width=32 height=14 xoffset=6 yoffset=20 xadvance=15 page=0 chnl=0
+char id=114 x=131 y=169 width=31 height=13 xoffset=4 yoffset=20 xadvance=12 page=0 chnl=0
+char id=62 x=162 y=169 width=9 height=11 xoffset=7 yoffset=21 xadvance=9 page=0 chnl=0
+char id=60 x=171 y=169 width=10 height=11 xoffset=8 yoffset=21 xadvance=9 page=0 chnl=0
+char id=39 x=181 y=169 width=19 height=11 xoffset=17 yoffset=7 xadvance=13 page=0 chnl=0
+char id=34 x=200 y=169 width=25 height=11 xoffset=17 yoffset=7 xadvance=17 page=0 chnl=0
+char id=61 x=225 y=169 width=21 height=10 xoffset=3 yoffset=18 xadvance=25 page=0 chnl=0
+char id=44 x=246 y=169 width=11 height=9 xoffset=5 yoffset=29 xadvance=9 page=0 chnl=0
+char id=126 x=257 y=169 width=20 height=7 xoffset=1 yoffset=20 xadvance=20 page=0 chnl=0
+char id=96 x=277 y=169 width=10 height=6 xoffset=6 yoffset=7 xadvance=19 page=0 chnl=0
+char id=46 x=287 y=169 width=8 height=5 xoffset=8 yoffset=29 xadvance=9 page=0 chnl=0
+char id=95 x=295 y=169 width=18 height=4 xoffset=0 yoffset=35 xadvance=16 page=0 chnl=0
+char id=45 x=313 y=169 width=18 height=4 xoffset=12 yoffset=23 xadvance=15 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/fonts/bitmapFontTest5.png b/tests/cpp-tests/Resources/fonts/bitmapFontTest5.png
new file mode 100755
index 0000000000..4777c76162
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/bitmapFontTest5.png differ
diff --git a/tests/cpp-tests/Resources/fonts/boundsTestFont.fnt b/tests/cpp-tests/Resources/fonts/boundsTestFont.fnt
new file mode 100755
index 0000000000..9c7837ff94
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/boundsTestFont.fnt
@@ -0,0 +1,343 @@
+info face="Arial-Black" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=54 base=35 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="boundsTestFont.png"
+chars count=95
+char id=123 x=2 y=2 width=38 height=54 xoffset=0 yoffset=-3 xadvance=12 page=0 chnl=0 letter="{"
+char id=125 x=42 y=2 width=38 height=54 xoffset=0 yoffset=-3 xadvance=12 page=0 chnl=0 letter="}"
+char id=41 x=82 y=2 width=37 height=54 xoffset=1 yoffset=-3 xadvance=12 page=0 chnl=0 letter=")"
+char id=40 x=121 y=2 width=36 height=54 xoffset=2 yoffset=-3 xadvance=12 page=0 chnl=0 letter="("
+char id=106 x=159 y=2 width=38 height=53 xoffset=-2 yoffset=-2 xadvance=11 page=0 chnl=0 letter="j"
+char id=91 x=199 y=2 width=35 height=53 xoffset=2 yoffset=-3 xadvance=12 page=0 chnl=0 letter="["
+char id=93 x=236 y=2 width=35 height=53 xoffset=1 yoffset=-3 xadvance=12 page=0 chnl=0 letter="]"
+char id=124 x=273 y=2 width=29 height=53 xoffset=2 yoffset=-3 xadvance=9 page=0 chnl=0 letter="|"
+char id=36 x=304 y=2 width=46 height=51 xoffset=1 yoffset=-4 xadvance=21 page=0 chnl=0 letter="$"
+char id=64 x=352 y=2 width=49 height=50 xoffset=-0 yoffset=-2 xadvance=24 page=0 chnl=0 letter="@"
+char id=81 x=403 y=2 width=51 height=49 xoffset=1 yoffset=-2 xadvance=27 page=0 chnl=0 letter="Q"
+char id=37 x=2 y=58 width=56 height=48 xoffset=2 yoffset=-3 xadvance=32 page=0 chnl=0 letter="%"
+char id=38 x=60 y=58 width=52 height=47 xoffset=2 yoffset=-3 xadvance=28 page=0 chnl=0 letter="&"
+char id=71 x=114 y=58 width=51 height=47 xoffset=1 yoffset=-3 xadvance=27 page=0 chnl=0 letter="G"
+char id=79 x=167 y=58 width=51 height=47 xoffset=1 yoffset=-3 xadvance=27 page=0 chnl=0 letter="O"
+char id=85 x=220 y=58 width=50 height=47 xoffset=2 yoffset=-2 xadvance=27 page=0 chnl=0 letter="U"
+char id=67 x=272 y=58 width=49 height=47 xoffset=2 yoffset=-2 xadvance=25 page=0 chnl=0 letter="C"
+char id=83 x=323 y=58 width=47 height=47 xoffset=1 yoffset=-3 xadvance=23 page=0 chnl=0 letter="S"
+char id=103 x=372 y=58 width=46 height=47 xoffset=1 yoffset=4 xadvance=21 page=0 chnl=0 letter="g"
+char id=100 x=420 y=58 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="d"
+char id=113 x=2 y=108 width=46 height=47 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0 letter="q"
+char id=51 x=50 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="3"
+char id=56 x=98 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="8"
+char id=57 x=146 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="9"
+char id=48 x=194 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="0"
+char id=74 x=242 y=108 width=46 height=47 xoffset=1 yoffset=-2 xadvance=21 page=0 chnl=0 letter="J"
+char id=50 x=290 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="2"
+char id=53 x=338 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="5"
+char id=52 x=386 y=108 width=46 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="4"
+char id=35 x=434 y=108 width=45 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="#"
+char id=54 x=2 y=157 width=45 height=47 xoffset=1 yoffset=-3 xadvance=21 page=0 chnl=0 letter="6"
+char id=98 x=49 y=157 width=45 height=47 xoffset=2 yoffset=-3 xadvance=21 page=0 chnl=0 letter="b"
+char id=112 x=96 y=157 width=45 height=47 xoffset=2 yoffset=3 xadvance=21 page=0 chnl=0 letter="p"
+char id=121 x=143 y=157 width=45 height=47 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=0 letter="y"
+char id=63 x=190 y=157 width=44 height=47 xoffset=1 yoffset=-3 xadvance=20 page=0 chnl=0 letter="?"
+char id=49 x=236 y=157 width=44 height=47 xoffset=3 yoffset=-3 xadvance=21 page=0 chnl=0 letter="1"
+char id=42 x=282 y=157 width=41 height=47 xoffset=3 yoffset=-3 xadvance=18 page=0 chnl=0 letter="*"
+char id=102 x=325 y=157 width=39 height=47 xoffset=0 yoffset=-3 xadvance=12 page=0 chnl=0 letter="f"
+char id=116 x=366 y=157 width=39 height=47 xoffset=1 yoffset=-3 xadvance=14 page=0 chnl=0 letter="t"
+char id=47 x=407 y=157 width=34 height=47 xoffset=0 yoffset=-3 xadvance=9 page=0 chnl=0 letter="/"
+char id=92 x=443 y=157 width=34 height=47 xoffset=-0 yoffset=-3 xadvance=9 page=0 chnl=0 letter="\"
+char id=59 x=2 y=206 width=34 height=47 xoffset=2 yoffset=4 xadvance=11 page=0 chnl=0 letter=";"
+char id=87 x=38 y=206 width=58 height=46 xoffset=-0 yoffset=-2 xadvance=32 page=0 chnl=0 letter="W"
+char id=77 x=98 y=206 width=51 height=46 xoffset=2 yoffset=-2 xadvance=30 page=0 chnl=0 letter="M"
+char id=65 x=151 y=206 width=50 height=46 xoffset=0 yoffset=-2 xadvance=25 page=0 chnl=0 letter="A"
+char id=86 x=203 y=206 width=50 height=46 xoffset=0 yoffset=-2 xadvance=25 page=0 chnl=0 letter="V"
+char id=88 x=255 y=206 width=50 height=46 xoffset=0 yoffset=-2 xadvance=25 page=0 chnl=0 letter="X"
+char id=89 x=307 y=206 width=50 height=46 xoffset=0 yoffset=-2 xadvance=25 page=0 chnl=0 letter="Y"
+char id=75 x=359 y=206 width=50 height=46 xoffset=2 yoffset=-2 xadvance=27 page=0 chnl=0 letter="K"
+char id=68 x=411 y=206 width=48 height=46 xoffset=2 yoffset=-2 xadvance=25 page=0 chnl=0 letter="D"
+char id=82 x=461 y=206 width=48 height=46 xoffset=2 yoffset=-2 xadvance=25 page=0 chnl=0 letter="R"
+char id=66 x=2 y=255 width=48 height=46 xoffset=2 yoffset=-2 xadvance=25 page=0 chnl=0 letter="B"
+char id=90 x=52 y=255 width=47 height=46 xoffset=1 yoffset=-2 xadvance=23 page=0 chnl=0 letter="Z"
+char id=78 x=101 y=255 width=47 height=46 xoffset=2 yoffset=-2 xadvance=27 page=0 chnl=0 letter="N"
+char id=84 x=150 y=255 width=47 height=46 xoffset=1 yoffset=-2 xadvance=23 page=0 chnl=0 letter="T"
+char id=72 x=199 y=255 width=47 height=46 xoffset=2 yoffset=-2 xadvance=27 page=0 chnl=0 letter="H"
+char id=80 x=248 y=255 width=46 height=46 xoffset=2 yoffset=-2 xadvance=23 page=0 chnl=0 letter="P"
+char id=69 x=296 y=255 width=45 height=46 xoffset=2 yoffset=-2 xadvance=23 page=0 chnl=0 letter="E"
+char id=55 x=343 y=255 width=45 height=46 xoffset=1 yoffset=-2 xadvance=21 page=0 chnl=0 letter="7"
+char id=104 x=390 y=255 width=45 height=46 xoffset=2 yoffset=-2 xadvance=21 page=0 chnl=0 letter="h"
+char id=107 x=437 y=255 width=45 height=46 xoffset=2 yoffset=-2 xadvance=21 page=0 chnl=0 letter="k"
+char id=76 x=2 y=303 width=44 height=46 xoffset=2 yoffset=-2 xadvance=21 page=0 chnl=0 letter="L"
+char id=70 x=48 y=303 width=43 height=46 xoffset=2 yoffset=-2 xadvance=21 page=0 chnl=0 letter="F"
+char id=73 x=93 y=303 width=33 height=46 xoffset=3 yoffset=-2 xadvance=12 page=0 chnl=0 letter="I"
+char id=33 x=128 y=303 width=32 height=46 xoffset=2 yoffset=-2 xadvance=11 page=0 chnl=0 letter="!"
+char id=105 x=162 y=303 width=32 height=46 xoffset=2 yoffset=-2 xadvance=11 page=0 chnl=0 letter="i"
+char id=108 x=196 y=303 width=32 height=46 xoffset=2 yoffset=-2 xadvance=11 page=0 chnl=0 letter="l"
+char id=60 x=230 y=303 width=43 height=43 xoffset=2 yoffset=-1 xadvance=21 page=0 chnl=0 letter="<"
+char id=62 x=275 y=303 width=43 height=43 xoffset=2 yoffset=-1 xadvance=21 page=0 chnl=0 letter=">"
+char id=97 x=320 y=303 width=46 height=41 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0 letter="a"
+char id=101 x=368 y=303 width=46 height=41 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0 letter="e"
+char id=111 x=416 y=303 width=46 height=41 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0 letter="o"
+char id=99 x=464 y=303 width=46 height=41 xoffset=1 yoffset=3 xadvance=21 page=0 chnl=0 letter="c"
+char id=115 x=2 y=351 width=44 height=41 xoffset=1 yoffset=3 xadvance=20 page=0 chnl=0 letter="s"
+char id=43 x=48 y=351 width=43 height=41 xoffset=2 yoffset=0 xadvance=21 page=0 chnl=0 letter="+"
+char id=109 x=93 y=351 width=56 height=40 xoffset=2 yoffset=4 xadvance=32 page=0 chnl=0 letter="m"
+char id=119 x=151 y=351 width=56 height=40 xoffset=0 yoffset=4 xadvance=30 page=0 chnl=0 letter="w"
+char id=120 x=209 y=351 width=46 height=40 xoffset=0 yoffset=4 xadvance=21 page=0 chnl=0 letter="x"
+char id=110 x=257 y=351 width=45 height=40 xoffset=2 yoffset=4 xadvance=21 page=0 chnl=0 letter="n"
+char id=117 x=304 y=351 width=45 height=40 xoffset=2 yoffset=4 xadvance=21 page=0 chnl=0 letter="u"
+char id=118 x=351 y=351 width=45 height=40 xoffset=0 yoffset=4 xadvance=20 page=0 chnl=0 letter="v"
+char id=122 x=398 y=351 width=42 height=40 xoffset=1 yoffset=4 xadvance=18 page=0 chnl=0 letter="z"
+char id=114 x=442 y=351 width=39 height=40 xoffset=2 yoffset=4 xadvance=14 page=0 chnl=0 letter="r"
+char id=58 x=2 y=394 width=32 height=40 xoffset=2 yoffset=4 xadvance=11 page=0 chnl=0 letter=":"
+char id=126 x=36 y=394 width=45 height=39 xoffset=2 yoffset=5 xadvance=21 page=0 chnl=0 letter="~"
+char id=94 x=83 y=394 width=43 height=36 xoffset=2 yoffset=-2 xadvance=21 page=0 chnl=0 letter="^"
+char id=61 x=128 y=394 width=43 height=36 xoffset=2 yoffset=3 xadvance=21 page=0 chnl=0 letter="="
+char id=44 x=173 y=394 width=34 height=36 xoffset=2 yoffset=15 xadvance=11 page=0 chnl=0 letter=","
+char id=34 x=209 y=394 width=40 height=32 xoffset=1 yoffset=-2 xadvance=16 page=0 chnl=0 letter="""
+char id=39 x=251 y=394 width=32 height=32 xoffset=1 yoffset=-2 xadvance=9 page=0 chnl=0 letter="'"
+char id=46 x=285 y=394 width=32 height=30 xoffset=2 yoffset=14 xadvance=11 page=0 chnl=0 letter="."
+char id=45 x=319 y=394 width=35 height=28 xoffset=1 yoffset=10 xadvance=11 page=0 chnl=0 letter="-"
+char id=96 x=356 y=394 width=33 height=28 xoffset=0 yoffset=-3 xadvance=11 page=0 chnl=0 letter="`"
+char id=95 x=391 y=394 width=42 height=25 xoffset=-0 yoffset=23 xadvance=16 page=0 chnl=0 letter="_"
+char id=32 x=435 y=394 width=0 height=0 xoffset=11 yoffset=44 xadvance=11 page=0 chnl=0 letter="space"
+kernings count=243
+kerning first=36 second=63 amount=3
+kerning first=36 second=62 amount=2
+kerning first=81 second=65 amount=1
+kerning first=81 second=86 amount=-1
+kerning first=81 second=89 amount=-2
+kerning first=81 second=84 amount=-1
+kerning first=81 second=44 amount=1
+kerning first=81 second=46 amount=1
+kerning first=71 second=44 amount=1
+kerning first=79 second=87 amount=-1
+kerning first=79 second=65 amount=-1
+kerning first=79 second=86 amount=-1
+kerning first=79 second=88 amount=-2
+kerning first=79 second=89 amount=-2
+kerning first=79 second=84 amount=-1
+kerning first=79 second=44 amount=-1
+kerning first=79 second=46 amount=-1
+kerning first=85 second=65 amount=-1
+kerning first=85 second=44 amount=-1
+kerning first=85 second=46 amount=-1
+kerning first=67 second=44 amount=1
+kerning first=67 second=46 amount=1
+kerning first=103 second=121 amount=1
+kerning first=103 second=114 amount=1
+kerning first=74 second=121 amount=-1
+kerning first=74 second=65 amount=-1
+kerning first=74 second=97 amount=-1
+kerning first=74 second=101 amount=-1
+kerning first=74 second=111 amount=-1
+kerning first=74 second=117 amount=-1
+kerning first=74 second=44 amount=-1
+kerning first=74 second=46 amount=-1
+kerning first=98 second=118 amount=-1
+kerning first=112 second=121 amount=-1
+kerning first=112 second=119 amount=-1
+kerning first=112 second=46 amount=-1
+kerning first=121 second=100 amount=-1
+kerning first=121 second=97 amount=-1
+kerning first=121 second=101 amount=-1
+kerning first=121 second=111 amount=-1
+kerning first=121 second=99 amount=-1
+kerning first=121 second=44 amount=-3
+kerning first=121 second=46 amount=-3
+kerning first=102 second=63 amount=3
+kerning first=102 second=102 amount=1
+kerning first=102 second=33 amount=3
+kerning first=102 second=101 amount=-1
+kerning first=102 second=111 amount=-1
+kerning first=102 second=44 amount=-2
+kerning first=102 second=46 amount=-2
+kerning first=102 second=32 amount=2
+kerning first=87 second=71 amount=-1
+kerning first=87 second=79 amount=-1
+kerning first=87 second=67 amount=-1
+kerning first=87 second=100 amount=-1
+kerning first=87 second=104 amount=1
+kerning first=87 second=105 amount=1
+kerning first=87 second=97 amount=-1
+kerning first=87 second=101 amount=-1
+kerning first=87 second=111 amount=-1
+kerning first=87 second=117 amount=-1
+kerning first=87 second=44 amount=-1
+kerning first=87 second=46 amount=-2
+kerning first=65 second=81 amount=-1
+kerning first=65 second=71 amount=-1
+kerning first=65 second=79 amount=-1
+kerning first=65 second=85 amount=-1
+kerning first=65 second=67 amount=-1
+kerning first=65 second=112 amount=1
+kerning first=65 second=86 amount=-2
+kerning first=65 second=89 amount=-3
+kerning first=65 second=84 amount=-2
+kerning first=65 second=118 amount=-1
+kerning first=86 second=81 amount=-1
+kerning first=86 second=71 amount=-1
+kerning first=86 second=79 amount=-1
+kerning first=86 second=67 amount=-1
+kerning first=86 second=59 amount=-1
+kerning first=86 second=65 amount=-2
+kerning first=86 second=105 amount=1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=101 amount=-2
+kerning first=86 second=111 amount=-2
+kerning first=86 second=117 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=58 amount=-1
+kerning first=86 second=44 amount=-4
+kerning first=86 second=46 amount=-4
+kerning first=86 second=45 amount=-1
+kerning first=88 second=71 amount=-1
+kerning first=88 second=79 amount=-1
+kerning first=88 second=67 amount=-1
+kerning first=89 second=71 amount=-2
+kerning first=89 second=79 amount=-2
+kerning first=89 second=67 amount=-2
+kerning first=89 second=83 amount=-1
+kerning first=89 second=100 amount=-3
+kerning first=89 second=113 amount=-3
+kerning first=89 second=112 amount=-2
+kerning first=89 second=59 amount=-2
+kerning first=89 second=65 amount=-3
+kerning first=89 second=97 amount=-3
+kerning first=89 second=101 amount=-3
+kerning first=89 second=111 amount=-3
+kerning first=89 second=117 amount=-2
+kerning first=89 second=118 amount=-1
+kerning first=89 second=58 amount=-2
+kerning first=89 second=44 amount=-5
+kerning first=89 second=46 amount=-5
+kerning first=89 second=45 amount=-3
+kerning first=75 second=71 amount=-1
+kerning first=75 second=79 amount=-1
+kerning first=75 second=67 amount=-1
+kerning first=75 second=121 amount=-1
+kerning first=75 second=101 amount=-1
+kerning first=75 second=111 amount=-1
+kerning first=75 second=117 amount=-1
+kerning first=75 second=118 amount=-1
+kerning first=68 second=87 amount=1
+kerning first=68 second=65 amount=-1
+kerning first=68 second=86 amount=-1
+kerning first=68 second=89 amount=-1
+kerning first=68 second=46 amount=-1
+kerning first=82 second=81 amount=-1
+kerning first=82 second=71 amount=-1
+kerning first=82 second=79 amount=-1
+kerning first=82 second=85 amount=-1
+kerning first=82 second=67 amount=-1
+kerning first=82 second=86 amount=-1
+kerning first=82 second=89 amount=-1
+kerning first=82 second=101 amount=-1
+kerning first=82 second=111 amount=-1
+kerning first=82 second=119 amount=1
+kerning first=82 second=117 amount=-1
+kerning first=66 second=85 amount=-1
+kerning first=66 second=65 amount=-1
+kerning first=66 second=44 amount=1
+kerning first=66 second=46 amount=1
+kerning first=84 second=81 amount=-1
+kerning first=84 second=71 amount=-1
+kerning first=84 second=79 amount=-1
+kerning first=84 second=67 amount=-1
+kerning first=84 second=121 amount=-1
+kerning first=84 second=59 amount=-1
+kerning first=84 second=65 amount=-2
+kerning first=84 second=104 amount=1
+kerning first=84 second=108 amount=1
+kerning first=84 second=97 amount=-2
+kerning first=84 second=101 amount=-2
+kerning first=84 second=111 amount=-2
+kerning first=84 second=99 amount=-2
+kerning first=84 second=115 amount=-2
+kerning first=84 second=109 amount=-1
+kerning first=84 second=117 amount=-1
+kerning first=84 second=122 amount=-1
+kerning first=84 second=114 amount=-1
+kerning first=84 second=58 amount=-1
+kerning first=84 second=44 amount=-5
+kerning first=84 second=46 amount=-5
+kerning first=84 second=45 amount=-2
+kerning first=80 second=65 amount=-3
+kerning first=80 second=97 amount=-1
+kerning first=80 second=101 amount=-1
+kerning first=80 second=111 amount=-1
+kerning first=80 second=44 amount=-6
+kerning first=80 second=46 amount=-6
+kerning first=107 second=121 amount=1
+kerning first=107 second=101 amount=-1
+kerning first=107 second=111 amount=-1
+kerning first=76 second=71 amount=-1
+kerning first=76 second=79 amount=-1
+kerning first=76 second=85 amount=-1
+kerning first=76 second=67 amount=-1
+kerning first=76 second=87 amount=-1
+kerning first=76 second=86 amount=-2
+kerning first=76 second=89 amount=-2
+kerning first=76 second=84 amount=-2
+kerning first=76 second=119 amount=-1
+kerning first=70 second=65 amount=-3
+kerning first=70 second=97 amount=-1
+kerning first=70 second=101 amount=-1
+kerning first=70 second=111 amount=-1
+kerning first=70 second=114 amount=-1
+kerning first=70 second=44 amount=-5
+kerning first=70 second=46 amount=-5
+kerning first=108 second=121 amount=1
+kerning first=97 second=103 amount=1
+kerning first=97 second=116 amount=-1
+kerning first=97 second=118 amount=-1
+kerning first=101 second=103 amount=1
+kerning first=101 second=120 amount=-1
+kerning first=101 second=118 amount=-1
+kerning first=111 second=121 amount=-1
+kerning first=111 second=119 amount=-1
+kerning first=111 second=120 amount=-1
+kerning first=111 second=118 amount=-1
+kerning first=111 second=122 amount=1
+kerning first=111 second=46 amount=-1
+kerning first=99 second=121 amount=-1
+kerning first=99 second=104 amount=-1
+kerning first=99 second=107 amount=-1
+kerning first=99 second=108 amount=-1
+kerning first=115 second=119 amount=-1
+kerning first=119 second=113 amount=-1
+kerning first=119 second=104 amount=1
+kerning first=119 second=111 amount=-1
+kerning first=119 second=44 amount=-2
+kerning first=119 second=46 amount=-3
+kerning first=120 second=100 amount=-1
+kerning first=120 second=101 amount=-1
+kerning first=120 second=111 amount=-1
+kerning first=120 second=99 amount=-1
+kerning first=110 second=118 amount=-1
+kerning first=118 second=100 amount=-1
+kerning first=118 second=113 amount=-1
+kerning first=118 second=101 amount=-1
+kerning first=118 second=111 amount=-1
+kerning first=118 second=99 amount=-1
+kerning first=118 second=44 amount=-3
+kerning first=118 second=46 amount=-3
+kerning first=114 second=106 amount=1
+kerning first=114 second=103 amount=1
+kerning first=114 second=100 amount=1
+kerning first=114 second=113 amount=1
+kerning first=114 second=112 amount=1
+kerning first=114 second=121 amount=2
+kerning first=114 second=116 amount=2
+kerning first=114 second=59 amount=1
+kerning first=114 second=107 amount=1
+kerning first=114 second=108 amount=1
+kerning first=114 second=97 amount=1
+kerning first=114 second=101 amount=1
+kerning first=114 second=111 amount=1
+kerning first=114 second=99 amount=1
+kerning first=114 second=115 amount=1
+kerning first=114 second=109 amount=2
+kerning first=114 second=110 amount=2
+kerning first=114 second=117 amount=1
+kerning first=114 second=118 amount=2
+kerning first=114 second=114 amount=1
+kerning first=114 second=58 amount=1
+kerning first=114 second=44 amount=-2
+kerning first=114 second=46 amount=-2
diff --git a/tests/cpp-tests/Resources/fonts/boundsTestFont.png b/tests/cpp-tests/Resources/fonts/boundsTestFont.png
new file mode 100755
index 0000000000..da5da270fe
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/boundsTestFont.png differ
diff --git a/tests/cpp-tests/Resources/fonts/cyril.ttf b/tests/cpp-tests/Resources/fonts/cyril.ttf
new file mode 100755
index 0000000000..7d316c892e
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/cyril.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/cyrillic.ttf b/tests/cpp-tests/Resources/fonts/cyrillic.ttf
new file mode 100755
index 0000000000..babecc4737
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/cyrillic.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/font-issue1343-hd.fnt b/tests/cpp-tests/Resources/fonts/font-issue1343-hd.fnt
new file mode 100755
index 0000000000..27ba2e5087
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/font-issue1343-hd.fnt
@@ -0,0 +1,75 @@
+info face="TestFont-Bold" size=32 bold=1 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=60 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="font-issue1343-hd.png"
+chars count=70
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=64 xadvance=36 page=0 chnl=0
+char id=36 x=0 y=0 width=48 height=74 xoffset=-2 yoffset=6 xadvance=48 page=0 chnl=0
+char id=106 x=48 y=0 width=34 height=74 xoffset=-4 yoffset=10 xadvance=36 page=0 chnl=0
+char id=37 x=82 y=0 width=64 height=68 xoffset=-2 yoffset=8 xadvance=64 page=0 chnl=0
+char id=81 x=146 y=0 width=60 height=66 xoffset=-2 yoffset=12 xadvance=60 page=0 chnl=0
+char id=64 x=206 y=0 width=62 height=64 xoffset=-2 yoffset=12 xadvance=64 page=0 chnl=0
+char id=113 x=268 y=0 width=42 height=64 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=112 x=310 y=0 width=44 height=64 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=103 x=354 y=0 width=46 height=64 xoffset=-4 yoffset=26 xadvance=44 page=0 chnl=0
+char id=102 x=400 y=0 width=44 height=64 xoffset=-2 yoffset=10 xadvance=38 page=0 chnl=0
+char id=63 x=444 y=0 width=42 height=62 xoffset=-4 yoffset=14 xadvance=40 page=0 chnl=0
+char id=121 x=0 y=74 width=48 height=62 xoffset=-4 yoffset=26 xadvance=44 page=0 chnl=0
+char id=116 x=48 y=74 width=38 height=62 xoffset=0 yoffset=12 xadvance=40 page=0 chnl=0
+char id=108 x=86 y=74 width=24 height=62 xoffset=0 yoffset=12 xadvance=30 page=0 chnl=0
+char id=107 x=110 y=74 width=44 height=62 xoffset=-2 yoffset=12 xadvance=44 page=0 chnl=0
+char id=105 x=154 y=74 width=24 height=62 xoffset=-2 yoffset=12 xadvance=26 page=0 chnl=0
+char id=100 x=178 y=74 width=46 height=62 xoffset=-2 yoffset=12 xadvance=48 page=0 chnl=0
+char id=82 x=224 y=74 width=52 height=62 xoffset=-4 yoffset=12 xadvance=50 page=0 chnl=0
+char id=80 x=276 y=74 width=50 height=62 xoffset=-4 yoffset=12 xadvance=48 page=0 chnl=0
+char id=33 x=326 y=74 width=24 height=60 xoffset=0 yoffset=14 xadvance=28 page=0 chnl=0
+char id=48 x=350 y=74 width=50 height=60 xoffset=-4 yoffset=14 xadvance=48 page=0 chnl=0
+char id=57 x=400 y=74 width=46 height=60 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
+char id=56 x=446 y=74 width=46 height=60 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=54 x=0 y=136 width=46 height=60 xoffset=0 yoffset=12 xadvance=48 page=0 chnl=0
+char id=53 x=46 y=136 width=46 height=60 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=51 x=92 y=136 width=44 height=60 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=104 x=136 y=136 width=44 height=60 xoffset=-2 yoffset=14 xadvance=46 page=0 chnl=0
+char id=98 x=180 y=136 width=46 height=60 xoffset=-2 yoffset=12 xadvance=46 page=0 chnl=0
+char id=89 x=226 y=136 width=54 height=60 xoffset=-6 yoffset=14 xadvance=48 page=0 chnl=0
+char id=88 x=280 y=136 width=54 height=60 xoffset=-2 yoffset=14 xadvance=52 page=0 chnl=0
+char id=87 x=334 y=136 width=76 height=60 xoffset=-4 yoffset=14 xadvance=74 page=0 chnl=0
+char id=86 x=410 y=136 width=54 height=60 xoffset=-4 yoffset=14 xadvance=52 page=0 chnl=0
+char id=85 x=0 y=196 width=50 height=60 xoffset=0 yoffset=14 xadvance=52 page=0 chnl=0
+char id=79 x=50 y=196 width=56 height=60 xoffset=-2 yoffset=14 xadvance=56 page=0 chnl=0
+char id=78 x=106 y=196 width=52 height=60 xoffset=-2 yoffset=14 xadvance=52 page=0 chnl=0
+char id=77 x=158 y=196 width=66 height=60 xoffset=-4 yoffset=14 xadvance=64 page=0 chnl=0
+char id=75 x=224 y=196 width=48 height=60 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
+char id=72 x=272 y=196 width=52 height=60 xoffset=-2 yoffset=14 xadvance=50 page=0 chnl=0
+char id=71 x=324 y=196 width=56 height=60 xoffset=-4 yoffset=14 xadvance=52 page=0 chnl=0
+char id=67 x=380 y=196 width=48 height=60 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
+char id=65 x=428 y=196 width=54 height=60 xoffset=-4 yoffset=14 xadvance=52 page=0 chnl=0
+char id=55 x=0 y=256 width=50 height=58 xoffset=-4 yoffset=16 xadvance=48 page=0 chnl=0
+char id=52 x=50 y=256 width=48 height=58 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
+char id=50 x=98 y=256 width=44 height=58 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=49 x=142 y=256 width=34 height=58 xoffset=-2 yoffset=14 xadvance=36 page=0 chnl=0
+char id=84 x=176 y=256 width=50 height=58 xoffset=-4 yoffset=16 xadvance=46 page=0 chnl=0
+char id=83 x=226 y=256 width=48 height=58 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
+char id=74 x=274 y=256 width=54 height=58 xoffset=-6 yoffset=16 xadvance=46 page=0 chnl=0
+char id=73 x=328 y=256 width=38 height=58 xoffset=-2 yoffset=14 xadvance=38 page=0 chnl=0
+char id=70 x=366 y=256 width=44 height=58 xoffset=-4 yoffset=16 xadvance=42 page=0 chnl=0
+char id=69 x=410 y=256 width=46 height=58 xoffset=-2 yoffset=14 xadvance=46 page=0 chnl=0
+char id=68 x=0 y=314 width=58 height=58 xoffset=-6 yoffset=16 xadvance=52 page=0 chnl=0
+char id=66 x=58 y=314 width=48 height=58 xoffset=-4 yoffset=14 xadvance=46 page=0 chnl=0
+char id=76 x=106 y=314 width=44 height=56 xoffset=-2 yoffset=16 xadvance=44 page=0 chnl=0
+char id=90 x=150 y=314 width=54 height=54 xoffset=-2 yoffset=18 xadvance=52 page=0 chnl=0
+char id=115 x=204 y=314 width=40 height=50 xoffset=-4 yoffset=24 xadvance=38 page=0 chnl=0
+char id=111 x=244 y=314 width=46 height=50 xoffset=-4 yoffset=26 xadvance=42 page=0 chnl=0
+char id=122 x=290 y=314 width=48 height=48 xoffset=-4 yoffset=26 xadvance=44 page=0 chnl=0
+char id=120 x=338 y=314 width=46 height=48 xoffset=-2 yoffset=26 xadvance=46 page=0 chnl=0
+char id=119 x=384 y=314 width=60 height=48 xoffset=-4 yoffset=26 xadvance=56 page=0 chnl=0
+char id=118 x=444 y=314 width=42 height=48 xoffset=-4 yoffset=26 xadvance=40 page=0 chnl=0
+char id=114 x=0 y=372 width=44 height=48 xoffset=-2 yoffset=26 xadvance=38 page=0 chnl=0
+char id=110 x=44 y=372 width=42 height=48 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=109 x=86 y=372 width=58 height=48 xoffset=-2 yoffset=26 xadvance=58 page=0 chnl=0
+char id=101 x=144 y=372 width=46 height=48 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=99 x=190 y=372 width=42 height=48 xoffset=-2 yoffset=26 xadvance=42 page=0 chnl=0
+char id=97 x=232 y=372 width=46 height=48 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=117 x=278 y=372 width=46 height=46 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=44 x=324 y=372 width=28 height=32 xoffset=-2 yoffset=50 xadvance=28 page=0 chnl=0
+char id=39 x=352 y=372 width=22 height=30 xoffset=-2 yoffset=10 xadvance=24 page=0 chnl=0
+char id=46 x=374 y=372 width=26 height=22 xoffset=0 yoffset=100 xadvance=30 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/fonts/font-issue1343-hd.png b/tests/cpp-tests/Resources/fonts/font-issue1343-hd.png
new file mode 100755
index 0000000000..a6ca8414e4
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/font-issue1343-hd.png differ
diff --git a/tests/cpp-tests/Resources/fonts/font-issue1343.fnt b/tests/cpp-tests/Resources/fonts/font-issue1343.fnt
new file mode 100755
index 0000000000..2c6459a22d
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/font-issue1343.fnt
@@ -0,0 +1,75 @@
+info face="TestFont-Bold" size=32 bold=1 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=30 base=26 scaleW=256 scaleH=256 pages=1 packed=0
+page id=0 file="font-issue1343.png"
+chars count=70
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=32 xadvance=18 page=0 chnl=0
+char id=36 x=0 y=0 width=24 height=37 xoffset=-1 yoffset=3 xadvance=24 page=0 chnl=0
+char id=106 x=24 y=0 width=17 height=37 xoffset=-2 yoffset=5 xadvance=18 page=0 chnl=0
+char id=37 x=41 y=0 width=32 height=34 xoffset=-1 yoffset=4 xadvance=32 page=0 chnl=0
+char id=81 x=73 y=0 width=30 height=33 xoffset=-1 yoffset=6 xadvance=30 page=0 chnl=0
+char id=64 x=103 y=0 width=31 height=32 xoffset=-1 yoffset=6 xadvance=32 page=0 chnl=0
+char id=113 x=134 y=0 width=21 height=32 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0
+char id=112 x=155 y=0 width=22 height=32 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0
+char id=103 x=177 y=0 width=23 height=32 xoffset=-2 yoffset=13 xadvance=22 page=0 chnl=0
+char id=102 x=200 y=0 width=22 height=32 xoffset=-1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=63 x=222 y=0 width=21 height=31 xoffset=-2 yoffset=7 xadvance=20 page=0 chnl=0
+char id=121 x=0 y=37 width=24 height=31 xoffset=-2 yoffset=13 xadvance=22 page=0 chnl=0
+char id=116 x=24 y=37 width=19 height=31 xoffset=0 yoffset=6 xadvance=20 page=0 chnl=0
+char id=108 x=43 y=37 width=12 height=31 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=0
+char id=107 x=55 y=37 width=22 height=31 xoffset=-1 yoffset=6 xadvance=22 page=0 chnl=0
+char id=105 x=77 y=37 width=12 height=31 xoffset=-1 yoffset=6 xadvance=13 page=0 chnl=0
+char id=100 x=89 y=37 width=23 height=31 xoffset=-1 yoffset=6 xadvance=24 page=0 chnl=0
+char id=82 x=112 y=37 width=26 height=31 xoffset=-2 yoffset=6 xadvance=25 page=0 chnl=0
+char id=80 x=138 y=37 width=25 height=31 xoffset=-2 yoffset=6 xadvance=24 page=0 chnl=0
+char id=33 x=163 y=37 width=12 height=30 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=0
+char id=48 x=175 y=37 width=25 height=30 xoffset=-2 yoffset=7 xadvance=24 page=0 chnl=0
+char id=57 x=200 y=37 width=23 height=30 xoffset=-1 yoffset=7 xadvance=24 page=0 chnl=0
+char id=56 x=223 y=37 width=23 height=30 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
+char id=54 x=0 y=68 width=23 height=30 xoffset=0 yoffset=6 xadvance=24 page=0 chnl=0
+char id=53 x=23 y=68 width=23 height=30 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
+char id=51 x=46 y=68 width=22 height=30 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
+char id=104 x=68 y=68 width=22 height=30 xoffset=-1 yoffset=7 xadvance=23 page=0 chnl=0
+char id=98 x=90 y=68 width=23 height=30 xoffset=-1 yoffset=6 xadvance=23 page=0 chnl=0
+char id=89 x=113 y=68 width=27 height=30 xoffset=-3 yoffset=7 xadvance=24 page=0 chnl=0
+char id=88 x=140 y=68 width=27 height=30 xoffset=-1 yoffset=7 xadvance=26 page=0 chnl=0
+char id=87 x=167 y=68 width=38 height=30 xoffset=-2 yoffset=7 xadvance=37 page=0 chnl=0
+char id=86 x=205 y=68 width=27 height=30 xoffset=-2 yoffset=7 xadvance=26 page=0 chnl=0
+char id=85 x=0 y=98 width=25 height=30 xoffset=0 yoffset=7 xadvance=26 page=0 chnl=0
+char id=79 x=25 y=98 width=28 height=30 xoffset=-1 yoffset=7 xadvance=28 page=0 chnl=0
+char id=78 x=53 y=98 width=26 height=30 xoffset=-1 yoffset=7 xadvance=26 page=0 chnl=0
+char id=77 x=79 y=98 width=33 height=30 xoffset=-2 yoffset=7 xadvance=32 page=0 chnl=0
+char id=75 x=112 y=98 width=24 height=30 xoffset=-1 yoffset=7 xadvance=24 page=0 chnl=0
+char id=72 x=136 y=98 width=26 height=30 xoffset=-1 yoffset=7 xadvance=25 page=0 chnl=0
+char id=71 x=162 y=98 width=28 height=30 xoffset=-2 yoffset=7 xadvance=26 page=0 chnl=0
+char id=67 x=190 y=98 width=24 height=30 xoffset=-1 yoffset=7 xadvance=24 page=0 chnl=0
+char id=65 x=214 y=98 width=27 height=30 xoffset=-2 yoffset=7 xadvance=26 page=0 chnl=0
+char id=55 x=0 y=128 width=25 height=29 xoffset=-2 yoffset=8 xadvance=24 page=0 chnl=0
+char id=52 x=25 y=128 width=24 height=29 xoffset=-1 yoffset=8 xadvance=24 page=0 chnl=0
+char id=50 x=49 y=128 width=22 height=29 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
+char id=49 x=71 y=128 width=17 height=29 xoffset=-1 yoffset=7 xadvance=18 page=0 chnl=0
+char id=84 x=88 y=128 width=25 height=29 xoffset=-2 yoffset=8 xadvance=23 page=0 chnl=0
+char id=83 x=113 y=128 width=24 height=29 xoffset=-1 yoffset=8 xadvance=24 page=0 chnl=0
+char id=74 x=137 y=128 width=27 height=29 xoffset=-3 yoffset=8 xadvance=23 page=0 chnl=0
+char id=73 x=164 y=128 width=19 height=29 xoffset=-1 yoffset=7 xadvance=19 page=0 chnl=0
+char id=70 x=183 y=128 width=22 height=29 xoffset=-2 yoffset=8 xadvance=21 page=0 chnl=0
+char id=69 x=205 y=128 width=23 height=29 xoffset=-1 yoffset=7 xadvance=23 page=0 chnl=0
+char id=68 x=0 y=157 width=29 height=29 xoffset=-3 yoffset=8 xadvance=26 page=0 chnl=0
+char id=66 x=29 y=157 width=24 height=29 xoffset=-2 yoffset=7 xadvance=23 page=0 chnl=0
+char id=76 x=53 y=157 width=22 height=28 xoffset=-1 yoffset=8 xadvance=22 page=0 chnl=0
+char id=90 x=75 y=157 width=27 height=27 xoffset=-1 yoffset=9 xadvance=26 page=0 chnl=0
+char id=115 x=102 y=157 width=20 height=25 xoffset=-2 yoffset=12 xadvance=19 page=0 chnl=0
+char id=111 x=122 y=157 width=23 height=25 xoffset=-2 yoffset=13 xadvance=21 page=0 chnl=0
+char id=122 x=145 y=157 width=24 height=24 xoffset=-2 yoffset=13 xadvance=22 page=0 chnl=0
+char id=120 x=169 y=157 width=23 height=24 xoffset=-1 yoffset=13 xadvance=23 page=0 chnl=0
+char id=119 x=192 y=157 width=30 height=24 xoffset=-2 yoffset=13 xadvance=28 page=0 chnl=0
+char id=118 x=222 y=157 width=21 height=24 xoffset=-2 yoffset=13 xadvance=20 page=0 chnl=0
+char id=114 x=0 y=186 width=22 height=24 xoffset=-1 yoffset=13 xadvance=19 page=0 chnl=0
+char id=110 x=22 y=186 width=21 height=24 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0
+char id=109 x=43 y=186 width=29 height=24 xoffset=-1 yoffset=13 xadvance=29 page=0 chnl=0
+char id=101 x=72 y=186 width=23 height=24 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0
+char id=99 x=95 y=186 width=21 height=24 xoffset=-1 yoffset=13 xadvance=21 page=0 chnl=0
+char id=97 x=116 y=186 width=23 height=24 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0
+char id=117 x=139 y=186 width=23 height=23 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0
+char id=44 x=162 y=186 width=14 height=16 xoffset=-1 yoffset=25 xadvance=14 page=0 chnl=0
+char id=39 x=176 y=186 width=11 height=15 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0
+char id=46 x=187 y=186 width=13 height=11 xoffset=0 yoffset=50 xadvance=15 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/fonts/font-issue1343.png b/tests/cpp-tests/Resources/fonts/font-issue1343.png
new file mode 100755
index 0000000000..68a96b06c7
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/font-issue1343.png differ
diff --git a/tests/cpp-tests/Resources/fonts/futura-48.fnt b/tests/cpp-tests/Resources/fonts/futura-48.fnt
new file mode 100755
index 0000000000..50d6e48b65
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/futura-48.fnt
@@ -0,0 +1,182 @@
+info face="Futura-CondensedExtraBold" size=48 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=62 base=48 scaleW=512 scaleH=256 pages=1 packed=0
+page id=0 file="futura-48.png"
+chars count=95
+char id=92 x=2 y=2 width=35 height=56 xoffset=0 yoffset=7 xadvance=32 page=0 chnl=0 letter="\"
+char id=47 x=39 y=2 width=35 height=56 xoffset=-1 yoffset=7 xadvance=32 page=0 chnl=0 letter="/"
+char id=125 x=76 y=2 width=22 height=56 xoffset=-1 yoffset=7 xadvance=19 page=0 chnl=0 letter="}"
+char id=123 x=100 y=2 width=21 height=56 xoffset=1 yoffset=7 xadvance=19 page=0 chnl=0 letter="{"
+char id=40 x=123 y=2 width=19 height=56 xoffset=1 yoffset=7 xadvance=18 page=0 chnl=0 letter="("
+char id=41 x=144 y=2 width=19 height=56 xoffset=0 yoffset=7 xadvance=18 page=0 chnl=0 letter=")"
+char id=91 x=165 y=2 width=19 height=56 xoffset=2 yoffset=7 xadvance=18 page=0 chnl=0 letter="["
+char id=93 x=186 y=2 width=19 height=56 xoffset=0 yoffset=7 xadvance=18 page=0 chnl=0 letter="]"
+char id=106 x=207 y=2 width=16 height=55 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0 letter="j"
+char id=36 x=225 y=2 width=24 height=52 xoffset=3 yoffset=5 xadvance=28 page=0 chnl=0 letter="$"
+char id=124 x=251 y=2 width=15 height=50 xoffset=7 yoffset=10 xadvance=27 page=0 chnl=0 letter="|"
+char id=81 x=268 y=2 width=33 height=46 xoffset=0 yoffset=10 xadvance=31 page=0 chnl=0 letter="Q"
+char id=100 x=303 y=2 width=28 height=45 xoffset=0 yoffset=7 xadvance=26 page=0 chnl=0 letter="d"
+char id=98 x=333 y=2 width=28 height=45 xoffset=1 yoffset=7 xadvance=26 page=0 chnl=0 letter="b"
+char id=107 x=363 y=2 width=29 height=44 xoffset=1 yoffset=7 xadvance=26 page=0 chnl=0 letter="k"
+char id=63 x=394 y=2 width=28 height=44 xoffset=1 yoffset=8 xadvance=27 page=0 chnl=0 letter="?"
+char id=104 x=424 y=2 width=27 height=44 xoffset=1 yoffset=7 xadvance=26 page=0 chnl=0 letter="h"
+char id=102 x=453 y=2 width=21 height=44 xoffset=-1 yoffset=7 xadvance=16 page=0 chnl=0 letter="f"
+char id=33 x=476 y=2 width=16 height=44 xoffset=2 yoffset=8 xadvance=17 page=0 chnl=0 letter="!"
+char id=108 x=494 y=2 width=14 height=44 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=0 letter="l"
+char id=37 x=2 y=60 width=39 height=43 xoffset=0 yoffset=9 xadvance=37 page=0 chnl=0 letter="%"
+char id=105 x=43 y=60 width=16 height=43 xoffset=0 yoffset=8 xadvance=13 page=0 chnl=0 letter="i"
+char id=64 x=61 y=60 width=38 height=42 xoffset=1 yoffset=10 xadvance=37 page=0 chnl=0 letter="@"
+char id=38 x=101 y=60 width=36 height=42 xoffset=1 yoffset=10 xadvance=34 page=0 chnl=0 letter="&"
+char id=79 x=139 y=60 width=33 height=42 xoffset=0 yoffset=10 xadvance=30 page=0 chnl=0 letter="O"
+char id=71 x=174 y=60 width=32 height=42 xoffset=0 yoffset=10 xadvance=30 page=0 chnl=0 letter="G"
+char id=48 x=208 y=60 width=31 height=42 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0 letter="0"
+char id=85 x=241 y=60 width=30 height=42 xoffset=1 yoffset=10 xadvance=29 page=0 chnl=0 letter="U"
+char id=51 x=273 y=60 width=29 height=42 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="3"
+char id=54 x=304 y=60 width=29 height=42 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="6"
+char id=53 x=335 y=60 width=29 height=42 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="5"
+char id=56 x=366 y=60 width=29 height=42 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="8"
+char id=103 x=397 y=60 width=28 height=42 xoffset=0 yoffset=21 xadvance=26 page=0 chnl=0 letter="g"
+char id=112 x=427 y=60 width=28 height=42 xoffset=1 yoffset=21 xadvance=26 page=0 chnl=0 letter="p"
+char id=113 x=457 y=60 width=28 height=42 xoffset=0 yoffset=21 xadvance=26 page=0 chnl=0 letter="q"
+char id=67 x=2 y=105 width=26 height=42 xoffset=0 yoffset=10 xadvance=24 page=0 chnl=0 letter="C"
+char id=83 x=30 y=105 width=24 height=42 xoffset=0 yoffset=10 xadvance=21 page=0 chnl=0 letter="S"
+char id=74 x=56 y=105 width=21 height=42 xoffset=-1 yoffset=10 xadvance=19 page=0 chnl=0 letter="J"
+char id=87 x=79 y=105 width=45 height=41 xoffset=-1 yoffset=10 xadvance=40 page=0 chnl=0 letter="W"
+char id=77 x=126 y=105 width=43 height=41 xoffset=0 yoffset=10 xadvance=41 page=0 chnl=0 letter="M"
+char id=65 x=171 y=105 width=33 height=41 xoffset=-1 yoffset=10 xadvance=28 page=0 chnl=0 letter="A"
+char id=86 x=206 y=105 width=32 height=41 xoffset=-1 yoffset=10 xadvance=28 page=0 chnl=0 letter="V"
+char id=88 x=240 y=105 width=32 height=41 xoffset=-1 yoffset=10 xadvance=28 page=0 chnl=0 letter="X"
+char id=90 x=274 y=105 width=32 height=41 xoffset=-1 yoffset=10 xadvance=27 page=0 chnl=0 letter="Z"
+char id=89 x=308 y=105 width=31 height=41 xoffset=-1 yoffset=10 xadvance=27 page=0 chnl=0 letter="Y"
+char id=52 x=341 y=105 width=31 height=41 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0 letter="4"
+char id=75 x=374 y=105 width=31 height=41 xoffset=1 yoffset=10 xadvance=29 page=0 chnl=0 letter="K"
+char id=82 x=407 y=105 width=31 height=41 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="R"
+char id=55 x=440 y=105 width=31 height=41 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="7"
+char id=68 x=473 y=105 width=30 height=41 xoffset=1 yoffset=10 xadvance=29 page=0 chnl=0 letter="D"
+char id=78 x=2 y=149 width=30 height=41 xoffset=1 yoffset=10 xadvance=30 page=0 chnl=0 letter="N"
+char id=50 x=34 y=149 width=30 height=41 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=0 letter="2"
+char id=66 x=66 y=149 width=30 height=41 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="B"
+char id=72 x=98 y=149 width=29 height=41 xoffset=1 yoffset=10 xadvance=29 page=0 chnl=0 letter="H"
+char id=80 x=129 y=149 width=29 height=41 xoffset=1 yoffset=10 xadvance=27 page=0 chnl=0 letter="P"
+char id=57 x=160 y=149 width=29 height=41 xoffset=1 yoffset=10 xadvance=28 page=0 chnl=0 letter="9"
+char id=121 x=191 y=149 width=29 height=41 xoffset=-1 yoffset=21 xadvance=24 page=0 chnl=0 letter="y"
+char id=35 x=222 y=149 width=27 height=41 xoffset=2 yoffset=10 xadvance=28 page=0 chnl=0 letter="#"
+char id=84 x=251 y=149 width=25 height=41 xoffset=-1 yoffset=10 xadvance=20 page=0 chnl=0 letter="T"
+char id=69 x=278 y=149 width=23 height=41 xoffset=1 yoffset=10 xadvance=22 page=0 chnl=0 letter="E"
+char id=70 x=303 y=149 width=22 height=41 xoffset=1 yoffset=10 xadvance=21 page=0 chnl=0 letter="F"
+char id=76 x=327 y=149 width=22 height=41 xoffset=1 yoffset=10 xadvance=20 page=0 chnl=0 letter="L"
+char id=49 x=351 y=149 width=18 height=41 xoffset=6 yoffset=10 xadvance=28 page=0 chnl=0 letter="1"
+char id=73 x=371 y=149 width=15 height=41 xoffset=1 yoffset=10 xadvance=14 page=0 chnl=0 letter="I"
+char id=60 x=388 y=149 width=29 height=39 xoffset=1 yoffset=11 xadvance=28 page=0 chnl=0 letter="<"
+char id=62 x=419 y=149 width=29 height=39 xoffset=1 yoffset=11 xadvance=28 page=0 chnl=0 letter=">"
+char id=59 x=450 y=149 width=20 height=39 xoffset=-2 yoffset=21 xadvance=14 page=0 chnl=0 letter=";"
+char id=116 x=472 y=149 width=20 height=37 xoffset=-1 yoffset=14 xadvance=16 page=0 chnl=0 letter="t"
+char id=111 x=2 y=192 width=28 height=31 xoffset=0 yoffset=21 xadvance=26 page=0 chnl=0 letter="o"
+char id=97 x=32 y=192 width=28 height=31 xoffset=0 yoffset=21 xadvance=26 page=0 chnl=0 letter="a"
+char id=101 x=62 y=192 width=28 height=31 xoffset=0 yoffset=21 xadvance=26 page=0 chnl=0 letter="e"
+char id=117 x=92 y=192 width=27 height=31 xoffset=1 yoffset=21 xadvance=27 page=0 chnl=0 letter="u"
+char id=115 x=121 y=192 width=24 height=31 xoffset=0 yoffset=21 xadvance=21 page=0 chnl=0 letter="s"
+char id=99 x=147 y=192 width=19 height=31 xoffset=0 yoffset=21 xadvance=16 page=0 chnl=0 letter="c"
+char id=58 x=168 y=192 width=16 height=31 xoffset=0 yoffset=21 xadvance=14 page=0 chnl=0 letter=":"
+char id=119 x=186 y=192 width=41 height=30 xoffset=-1 yoffset=21 xadvance=37 page=0 chnl=0 letter="w"
+char id=109 x=229 y=192 width=40 height=30 xoffset=1 yoffset=21 xadvance=39 page=0 chnl=0 letter="m"
+char id=120 x=271 y=192 width=30 height=30 xoffset=-1 yoffset=21 xadvance=26 page=0 chnl=0 letter="x"
+char id=118 x=303 y=192 width=29 height=30 xoffset=-1 yoffset=21 xadvance=24 page=0 chnl=0 letter="v"
+char id=110 x=334 y=192 width=27 height=30 xoffset=1 yoffset=21 xadvance=26 page=0 chnl=0 letter="n"
+char id=122 x=363 y=192 width=26 height=30 xoffset=0 yoffset=21 xadvance=23 page=0 chnl=0 letter="z"
+char id=114 x=391 y=192 width=21 height=30 xoffset=1 yoffset=21 xadvance=18 page=0 chnl=0 letter="r"
+char id=43 x=414 y=192 width=29 height=29 xoffset=1 yoffset=16 xadvance=28 page=0 chnl=0 letter="+"
+char id=42 x=445 y=192 width=25 height=24 xoffset=3 yoffset=7 xadvance=28 page=0 chnl=0 letter="*"
+char id=94 x=472 y=192 width=31 height=23 xoffset=-1 yoffset=10 xadvance=27 page=0 chnl=0 letter="^"
+char id=44 x=2 y=225 width=19 height=22 xoffset=-2 yoffset=38 xadvance=14 page=0 chnl=0 letter=","
+char id=34 x=23 y=225 width=24 height=20 xoffset=0 yoffset=10 xadvance=22 page=0 chnl=0 letter="""
+char id=39 x=49 y=225 width=14 height=20 xoffset=0 yoffset=10 xadvance=12 page=0 chnl=0 letter="'"
+char id=61 x=65 y=225 width=29 height=19 xoffset=1 yoffset=21 xadvance=28 page=0 chnl=0 letter="="
+char id=46 x=96 y=225 width=16 height=16 xoffset=0 yoffset=36 xadvance=14 page=0 chnl=0 letter="."
+char id=126 x=114 y=225 width=31 height=15 xoffset=4 yoffset=6 xadvance=36 page=0 chnl=0 letter="~"
+char id=96 x=147 y=225 width=15 height=13 xoffset=5 yoffset=10 xadvance=27 page=0 chnl=0 letter="`"
+char id=45 x=164 y=225 width=16 height=12 xoffset=-1 yoffset=30 xadvance=11 page=0 chnl=0 letter="-"
+char id=95 x=182 y=225 width=32 height=11 xoffset=-1 yoffset=49 xadvance=27 page=0 chnl=0 letter="_"
+char id=32 x=216 y=225 width=0 height=0 xoffset=-106 yoffset=168 xadvance=14 page=0 chnl=0 letter="space"
+kernings count=82
+kerning first=81 second=81 amount=-1
+kerning first=63 second=93 amount=-2
+kerning first=63 second=100 amount=-3
+kerning first=63 second=98 amount=-3
+kerning first=63 second=37 amount=-5
+kerning first=63 second=38 amount=-5
+kerning first=63 second=90 amount=-5
+kerning first=63 second=78 amount=-5
+kerning first=63 second=80 amount=-5
+kerning first=63 second=84 amount=-2
+kerning first=63 second=76 amount=-5
+kerning first=63 second=58 amount=-1
+kerning first=63 second=94 amount=-5
+kerning first=63 second=44 amount=-4
+kerning first=63 second=96 amount=-2
+kerning first=63 second=32 amount=-1
+kerning first=65 second=93 amount=-2
+kerning first=65 second=100 amount=-2
+kerning first=65 second=37 amount=-2
+kerning first=65 second=38 amount=-2
+kerning first=65 second=90 amount=-3
+kerning first=65 second=80 amount=-3
+kerning first=65 second=84 amount=-1
+kerning first=65 second=76 amount=-4
+kerning first=65 second=44 amount=-4
+kerning first=65 second=96 amount=-2
+kerning first=55 second=100 amount=-2
+kerning first=55 second=63 amount=-4
+kerning first=55 second=65 amount=-4
+kerning first=55 second=68 amount=-4
+kerning first=55 second=66 amount=-4
+kerning first=55 second=32 amount=-2
+kerning first=68 second=92 amount=-4
+kerning first=68 second=91 amount=-4
+kerning first=68 second=37 amount=-3
+kerning first=68 second=38 amount=-3
+kerning first=68 second=90 amount=-4
+kerning first=68 second=80 amount=-4
+kerning first=68 second=84 amount=-2
+kerning first=68 second=76 amount=-4
+kerning first=68 second=97 amount=-3
+kerning first=68 second=44 amount=-4
+kerning first=68 second=96 amount=-3
+kerning first=68 second=32 amount=-1
+kerning first=66 second=93 amount=-1
+kerning first=66 second=37 amount=-1
+kerning first=66 second=38 amount=-1
+kerning first=66 second=90 amount=-1
+kerning first=66 second=80 amount=-1
+kerning first=66 second=76 amount=-2
+kerning first=66 second=44 amount=-2
+kerning first=66 second=96 amount=-1
+kerning first=70 second=125 amount=-5
+kerning first=70 second=123 amount=-5
+kerning first=49 second=44 amount=-3
+kerning first=60 second=125 amount=-5
+kerning first=60 second=123 amount=-5
+kerning first=60 second=81 amount=-1
+kerning first=59 second=41 amount=-3
+kerning first=59 second=101 amount=-1
+kerning first=59 second=44 amount=-4
+kerning first=59 second=32 amount=-1
+kerning first=58 second=81 amount=-3
+kerning first=58 second=61 amount=-3
+kerning first=43 second=35 amount=-1
+kerning first=42 second=105 amount=-3
+kerning first=44 second=100 amount=-1
+kerning first=44 second=98 amount=-1
+kerning first=44 second=63 amount=-4
+kerning first=44 second=65 amount=-4
+kerning first=44 second=68 amount=-4
+kerning first=44 second=66 amount=-2
+kerning first=44 second=97 amount=-1
+kerning first=44 second=32 amount=-3
+kerning first=61 second=63 amount=-1
+kerning first=61 second=65 amount=-1
+kerning first=61 second=68 amount=-1
+kerning first=61 second=66 amount=-1
+kerning first=32 second=63 amount=-1
+kerning first=32 second=71 amount=-3
+kerning first=32 second=68 amount=-1
+kerning first=32 second=44 amount=-3
diff --git a/tests/cpp-tests/Resources/fonts/futura-48.png b/tests/cpp-tests/Resources/fonts/futura-48.png
new file mode 100755
index 0000000000..796a33e41f
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/futura-48.png differ
diff --git a/tests/cpp-tests/Resources/fonts/geneva-32.fnt b/tests/cpp-tests/Resources/fonts/geneva-32.fnt
new file mode 100755
index 0000000000..c4967c0e8c
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/geneva-32.fnt
@@ -0,0 +1,99 @@
+info face="Geneva" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=42 base=32 scaleW=512 scaleH=128 pages=1 packed=0
+page id=0 file="helvetica-geneva-32.png"
+chars count=95
+char id=40 x=1 y=1 width=15 height=36 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=0 letter="("
+char id=41 x=17 y=1 width=14 height=36 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=0 letter=")"
+char id=106 x=32 y=1 width=13 height=36 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0 letter="j"
+char id=125 x=46 y=1 width=13 height=36 xoffset=2 yoffset=5 xadvance=14 page=0 chnl=0 letter="}"
+char id=91 x=60 y=1 width=13 height=36 xoffset=2 yoffset=5 xadvance=14 page=0 chnl=0 letter="["
+char id=93 x=74 y=1 width=13 height=36 xoffset=1 yoffset=5 xadvance=14 page=0 chnl=0 letter="]"
+char id=123 x=88 y=1 width=12 height=36 xoffset=2 yoffset=5 xadvance=14 page=0 chnl=0 letter="{"
+char id=81 x=101 y=1 width=28 height=35 xoffset=0 yoffset=6 xadvance=23 page=0 chnl=0 letter="Q"
+char id=36 x=130 y=1 width=21 height=34 xoffset=1 yoffset=4 xadvance=21 page=0 chnl=0 letter="$"
+char id=100 x=152 y=1 width=21 height=31 xoffset=0 yoffset=5 xadvance=19 page=0 chnl=0 letter="d"
+char id=98 x=174 y=1 width=21 height=31 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0 letter="b"
+char id=64 x=196 y=1 width=29 height=30 xoffset=0 yoffset=6 xadvance=27 page=0 chnl=0 letter="@"
+char id=79 x=226 y=1 width=26 height=30 xoffset=0 yoffset=6 xadvance=23 page=0 chnl=0 letter="O"
+char id=38 x=253 y=1 width=25 height=30 xoffset=0 yoffset=6 xadvance=23 page=0 chnl=0 letter="&"
+char id=71 x=279 y=1 width=23 height=30 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=0 letter="G"
+char id=67 x=303 y=1 width=23 height=30 xoffset=0 yoffset=6 xadvance=20 page=0 chnl=0 letter="C"
+char id=85 x=327 y=1 width=23 height=30 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=0 letter="U"
+char id=48 x=351 y=1 width=23 height=30 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=0 letter="0"
+char id=83 x=375 y=1 width=22 height=30 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0 letter="S"
+char id=92 x=398 y=1 width=21 height=30 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="\"
+char id=47 x=420 y=1 width=21 height=30 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="/"
+char id=56 x=442 y=1 width=21 height=30 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="8"
+char id=57 x=464 y=1 width=21 height=30 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="9"
+char id=54 x=486 y=1 width=21 height=30 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="6"
+char id=103 x=1 y=38 width=21 height=30 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=0 letter="g"
+char id=51 x=23 y=38 width=20 height=30 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="3"
+char id=53 x=44 y=38 width=20 height=30 xoffset=2 yoffset=6 xadvance=21 page=0 chnl=0 letter="5"
+char id=107 x=65 y=38 width=19 height=30 xoffset=1 yoffset=5 xadvance=17 page=0 chnl=0 letter="k"
+char id=104 x=85 y=38 width=19 height=30 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0 letter="h"
+char id=74 x=105 y=38 width=18 height=30 xoffset=-1 yoffset=6 xadvance=15 page=0 chnl=0 letter="J"
+char id=102 x=124 y=38 width=16 height=30 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=0 letter="f"
+char id=124 x=141 y=38 width=8 height=30 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=0 letter="|"
+char id=108 x=150 y=38 width=8 height=30 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=0 letter="l"
+char id=87 x=159 y=38 width=32 height=29 xoffset=0 yoffset=6 xadvance=30 page=0 chnl=0 letter="W"
+char id=37 x=192 y=38 width=31 height=29 xoffset=0 yoffset=6 xadvance=28 page=0 chnl=0 letter="%"
+char id=86 x=224 y=38 width=27 height=29 xoffset=-1 yoffset=6 xadvance=23 page=0 chnl=0 letter="V"
+char id=65 x=252 y=38 width=27 height=29 xoffset=-1 yoffset=6 xadvance=23 page=0 chnl=0 letter="A"
+char id=77 x=280 y=38 width=25 height=29 xoffset=1 yoffset=6 xadvance=25 page=0 chnl=0 letter="M"
+char id=35 x=306 y=38 width=25 height=29 xoffset=-1 yoffset=6 xadvance=21 page=0 chnl=0 letter="#"
+char id=84 x=332 y=38 width=24 height=29 xoffset=-1 yoffset=6 xadvance=20 page=0 chnl=0 letter="T"
+char id=78 x=357 y=38 width=23 height=29 xoffset=1 yoffset=6 xadvance=22 page=0 chnl=0 letter="N"
+char id=89 x=381 y=38 width=23 height=29 xoffset=-1 yoffset=6 xadvance=19 page=0 chnl=0 letter="Y"
+char id=88 x=405 y=38 width=23 height=29 xoffset=-1 yoffset=6 xadvance=19 page=0 chnl=0 letter="X"
+char id=68 x=429 y=38 width=23 height=29 xoffset=1 yoffset=6 xadvance=22 page=0 chnl=0 letter="D"
+char id=75 x=453 y=38 width=23 height=29 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="K"
+char id=52 x=477 y=38 width=23 height=29 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=0 letter="4"
+char id=72 x=1 y=69 width=22 height=29 xoffset=1 yoffset=6 xadvance=22 page=0 chnl=0 letter="H"
+char id=121 x=24 y=69 width=22 height=29 xoffset=-1 yoffset=13 xadvance=18 page=0 chnl=0 letter="y"
+char id=50 x=47 y=69 width=21 height=29 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="2"
+char id=82 x=69 y=69 width=21 height=29 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 letter="R"
+char id=66 x=91 y=69 width=21 height=29 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=0 letter="B"
+char id=76 x=113 y=69 width=21 height=29 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 letter="L"
+char id=55 x=135 y=69 width=21 height=29 xoffset=1 yoffset=6 xadvance=21 page=0 chnl=0 letter="7"
+char id=113 x=157 y=69 width=21 height=29 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=0 letter="q"
+char id=90 x=179 y=69 width=20 height=29 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 letter="Z"
+char id=80 x=200 y=69 width=20 height=29 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 letter="P"
+char id=112 x=221 y=69 width=20 height=29 xoffset=1 yoffset=13 xadvance=19 page=0 chnl=0 letter="p"
+char id=63 x=242 y=69 width=19 height=29 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0 letter="?"
+char id=69 x=262 y=69 width=19 height=29 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 letter="E"
+char id=70 x=282 y=69 width=18 height=29 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0 letter="F"
+char id=49 x=301 y=69 width=13 height=29 xoffset=3 yoffset=6 xadvance=21 page=0 chnl=0 letter="1"
+char id=33 x=315 y=69 width=9 height=29 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="!"
+char id=105 x=325 y=69 width=8 height=29 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=0 letter="i"
+char id=73 x=334 y=69 width=8 height=29 xoffset=1 yoffset=6 xadvance=7 page=0 chnl=0 letter="I"
+char id=59 x=343 y=69 width=9 height=28 xoffset=1 yoffset=13 xadvance=9 page=0 chnl=0 letter=";"
+char id=116 x=353 y=69 width=16 height=27 xoffset=0 yoffset=9 xadvance=14 page=0 chnl=0 letter="t"
+char id=111 x=370 y=69 width=21 height=23 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=0 letter="o"
+char id=101 x=392 y=69 width=20 height=23 xoffset=0 yoffset=13 xadvance=18 page=0 chnl=0 letter="e"
+char id=99 x=413 y=69 width=20 height=23 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=0 letter="c"
+char id=97 x=434 y=69 width=20 height=23 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=0 letter="a"
+char id=117 x=455 y=69 width=19 height=23 xoffset=1 yoffset=13 xadvance=18 page=0 chnl=0 letter="u"
+char id=115 x=475 y=69 width=18 height=23 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=0 letter="s"
+char id=109 x=1 y=99 width=29 height=22 xoffset=1 yoffset=13 xadvance=28 page=0 chnl=0 letter="m"
+char id=119 x=31 y=99 width=29 height=22 xoffset=-1 yoffset=13 xadvance=24 page=0 chnl=0 letter="w"
+char id=62 x=61 y=99 width=23 height=22 xoffset=0 yoffset=13 xadvance=21 page=0 chnl=0 letter=">"
+char id=43 x=85 y=99 width=23 height=22 xoffset=0 yoffset=13 xadvance=21 page=0 chnl=0 letter="+"
+char id=118 x=109 y=99 width=22 height=22 xoffset=-1 yoffset=13 xadvance=18 page=0 chnl=0 letter="v"
+char id=60 x=132 y=99 width=22 height=22 xoffset=1 yoffset=13 xadvance=21 page=0 chnl=0 letter="<"
+char id=94 x=155 y=99 width=22 height=22 xoffset=1 yoffset=7 xadvance=21 page=0 chnl=0 letter="^"
+char id=110 x=178 y=99 width=19 height=22 xoffset=1 yoffset=13 xadvance=18 page=0 chnl=0 letter="n"
+char id=120 x=198 y=99 width=19 height=22 xoffset=0 yoffset=13 xadvance=16 page=0 chnl=0 letter="x"
+char id=122 x=218 y=99 width=19 height=22 xoffset=0 yoffset=13 xadvance=17 page=0 chnl=0 letter="z"
+char id=114 x=238 y=99 width=15 height=22 xoffset=1 yoffset=13 xadvance=12 page=0 chnl=0 letter="r"
+char id=58 x=254 y=99 width=9 height=22 xoffset=1 yoffset=13 xadvance=9 page=0 chnl=0 letter=":"
+char id=42 x=264 y=99 width=18 height=18 xoffset=0 yoffset=6 xadvance=16 page=0 chnl=0 letter="*"
+char id=34 x=283 y=99 width=16 height=15 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0 letter="""
+char id=39 x=300 y=99 width=9 height=15 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 letter="'"
+char id=44 x=310 y=99 width=9 height=15 xoffset=1 yoffset=26 xadvance=9 page=0 chnl=0 letter=","
+char id=61 x=320 y=99 width=23 height=13 xoffset=0 yoffset=18 xadvance=21 page=0 chnl=0 letter="="
+char id=126 x=344 y=99 width=23 height=11 xoffset=0 yoffset=19 xadvance=21 page=0 chnl=0 letter="~"
+char id=96 x=368 y=99 width=12 height=10 xoffset=4 yoffset=5 xadvance=18 page=0 chnl=0 letter="`"
+char id=46 x=381 y=99 width=9 height=9 xoffset=1 yoffset=26 xadvance=9 page=0 chnl=0 letter="."
+char id=45 x=391 y=99 width=14 height=8 xoffset=0 yoffset=19 xadvance=12 page=0 chnl=0 letter="-"
+char id=95 x=406 y=99 width=25 height=7 xoffset=-1 yoffset=31 xadvance=21 page=0 chnl=0 letter="_"
+char id=32 x=432 y=99 width=0 height=0 xoffset=-110 yoffset=152 xadvance=10 page=0 chnl=0 letter="space"
diff --git a/tests/cpp-tests/Resources/fonts/helvetica-32.fnt b/tests/cpp-tests/Resources/fonts/helvetica-32.fnt
new file mode 100755
index 0000000000..c2c5b9d7cf
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/helvetica-32.fnt
@@ -0,0 +1,99 @@
+info face="Helvetica-Bold" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=32 base=25 scaleW=512 scaleH=128 pages=1 packed=0
+page id=0 file="helvetica-geneva-32.png"
+chars count=95
+char id=125 x=1 y=1 width=15 height=35 xoffset=-1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="}"
+char id=41 x=17 y=1 width=14 height=35 xoffset=-1 yoffset=-0 xadvance=10 page=0 chnl=0 letter=")"
+char id=123 x=32 y=1 width=14 height=35 xoffset=-1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="{"
+char id=93 x=47 y=1 width=13 height=35 xoffset=-1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="]"
+char id=40 x=61 y=1 width=13 height=35 xoffset=0 yoffset=-0 xadvance=10 page=0 chnl=0 letter="("
+char id=91 x=75 y=1 width=12 height=35 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="["
+char id=106 x=88 y=1 width=11 height=35 xoffset=-1 yoffset=-0 xadvance=8 page=0 chnl=0 letter="j"
+char id=36 x=100 y=1 width=21 height=33 xoffset=-1 yoffset=-1 xadvance=17 page=0 chnl=0 letter="$"
+char id=81 x=122 y=1 width=27 height=30 xoffset=0 yoffset=-0 xadvance=24 page=0 chnl=0 letter="Q"
+char id=64 x=150 y=1 width=30 height=29 xoffset=2 yoffset=-0 xadvance=31 page=0 chnl=0 letter="@"
+char id=79 x=181 y=1 width=27 height=29 xoffset=0 yoffset=-0 xadvance=24 page=0 chnl=0 letter="O"
+char id=71 x=209 y=1 width=26 height=29 xoffset=0 yoffset=-0 xadvance=24 page=0 chnl=0 letter="G"
+char id=67 x=236 y=1 width=25 height=29 xoffset=0 yoffset=-0 xadvance=23 page=0 chnl=0 letter="C"
+char id=83 x=262 y=1 width=24 height=29 xoffset=0 yoffset=-0 xadvance=21 page=0 chnl=0 letter="S"
+char id=85 x=287 y=1 width=23 height=29 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="U"
+char id=113 x=311 y=1 width=22 height=29 xoffset=-1 yoffset=6 xadvance=19 page=0 chnl=0 letter="q"
+char id=112 x=334 y=1 width=22 height=29 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0 letter="p"
+char id=121 x=357 y=1 width=22 height=29 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="y"
+char id=103 x=380 y=1 width=21 height=29 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0 letter="g"
+char id=74 x=402 y=1 width=20 height=29 xoffset=-1 yoffset=-0 xadvance=17 page=0 chnl=0 letter="J"
+char id=87 x=423 y=1 width=34 height=28 xoffset=-1 yoffset=-0 xadvance=30 page=0 chnl=0 letter="W"
+char id=37 x=458 y=1 width=32 height=28 xoffset=-1 yoffset=1 xadvance=28 page=0 chnl=0 letter="%"
+char id=77 x=1 y=37 width=27 height=28 xoffset=1 yoffset=-0 xadvance=26 page=0 chnl=0 letter="M"
+char id=65 x=29 y=37 width=27 height=28 xoffset=-1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="A"
+char id=38 x=57 y=37 width=26 height=28 xoffset=0 yoffset=1 xadvance=23 page=0 chnl=0 letter="&"
+char id=88 x=84 y=37 width=25 height=28 xoffset=-1 yoffset=-0 xadvance=21 page=0 chnl=0 letter="X"
+char id=75 x=110 y=37 width=25 height=28 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="K"
+char id=86 x=136 y=37 width=25 height=28 xoffset=-1 yoffset=-0 xadvance=21 page=0 chnl=0 letter="V"
+char id=89 x=162 y=37 width=25 height=28 xoffset=-1 yoffset=-0 xadvance=21 page=0 chnl=0 letter="Y"
+char id=68 x=188 y=37 width=24 height=28 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="D"
+char id=78 x=213 y=37 width=24 height=28 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="N"
+char id=66 x=238 y=37 width=24 height=28 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="B"
+char id=82 x=263 y=37 width=24 height=28 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="R"
+char id=84 x=288 y=37 width=24 height=28 xoffset=-1 yoffset=-0 xadvance=19 page=0 chnl=0 letter="T"
+char id=72 x=313 y=37 width=23 height=28 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="H"
+char id=80 x=337 y=37 width=23 height=28 xoffset=1 yoffset=-0 xadvance=21 page=0 chnl=0 letter="P"
+char id=90 x=361 y=37 width=23 height=28 xoffset=-1 yoffset=-0 xadvance=19 page=0 chnl=0 letter="Z"
+char id=69 x=385 y=37 width=23 height=28 xoffset=1 yoffset=-0 xadvance=21 page=0 chnl=0 letter="E"
+char id=98 x=409 y=37 width=22 height=28 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0 letter="b"
+char id=51 x=432 y=37 width=21 height=28 xoffset=-1 yoffset=1 xadvance=17 page=0 chnl=0 letter="3"
+char id=56 x=454 y=37 width=21 height=28 xoffset=-1 yoffset=1 xadvance=17 page=0 chnl=0 letter="8"
+char id=53 x=476 y=37 width=21 height=28 xoffset=-1 yoffset=1 xadvance=17 page=0 chnl=0 letter="5"
+char id=100 x=1 y=66 width=21 height=28 xoffset=0 yoffset=1 xadvance=19 page=0 chnl=0 letter="d"
+char id=76 x=23 y=66 width=21 height=28 xoffset=1 yoffset=-0 xadvance=19 page=0 chnl=0 letter="L"
+char id=48 x=45 y=66 width=20 height=28 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0 letter="0"
+char id=57 x=66 y=66 width=20 height=28 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0 letter="9"
+char id=54 x=87 y=66 width=20 height=28 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0 letter="6"
+char id=63 x=108 y=66 width=20 height=28 xoffset=1 yoffset=-0 xadvance=19 page=0 chnl=0 letter="?"
+char id=92 x=129 y=66 width=17 height=28 xoffset=-3 yoffset=-0 xadvance=8 page=0 chnl=0 letter="\"
+char id=47 x=147 y=66 width=17 height=28 xoffset=-3 yoffset=-0 xadvance=8 page=0 chnl=0 letter="/"
+char id=102 x=165 y=66 width=15 height=28 xoffset=-1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="f"
+char id=124 x=181 y=66 width=9 height=28 xoffset=0 yoffset=-0 xadvance=8 page=0 chnl=0 letter="|"
+char id=105 x=191 y=66 width=9 height=28 xoffset=1 yoffset=-0 xadvance=8 page=0 chnl=0 letter="i"
+char id=73 x=201 y=66 width=9 height=28 xoffset=1 yoffset=-0 xadvance=8 page=0 chnl=0 letter="I"
+char id=108 x=211 y=66 width=9 height=28 xoffset=1 yoffset=-0 xadvance=8 page=0 chnl=0 letter="l"
+char id=35 x=221 y=66 width=22 height=27 xoffset=-1 yoffset=1 xadvance=17 page=0 chnl=0 letter="#"
+char id=52 x=244 y=66 width=21 height=27 xoffset=-1 yoffset=1 xadvance=17 page=0 chnl=0 letter="4"
+char id=55 x=266 y=66 width=21 height=27 xoffset=-1 yoffset=1 xadvance=17 page=0 chnl=0 letter="7"
+char id=70 x=288 y=66 width=21 height=27 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0 letter="F"
+char id=104 x=310 y=66 width=20 height=27 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=0 letter="h"
+char id=50 x=331 y=66 width=20 height=27 xoffset=0 yoffset=1 xadvance=17 page=0 chnl=0 letter="2"
+char id=107 x=352 y=66 width=20 height=27 xoffset=1 yoffset=1 xadvance=17 page=0 chnl=0 letter="k"
+char id=49 x=373 y=66 width=15 height=27 xoffset=1 yoffset=1 xadvance=17 page=0 chnl=0 letter="1"
+char id=116 x=389 y=66 width=14 height=27 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=0 letter="t"
+char id=33 x=404 y=66 width=10 height=27 xoffset=2 yoffset=1 xadvance=10 page=0 chnl=0 letter="!"
+char id=59 x=415 y=66 width=10 height=27 xoffset=2 yoffset=7 xadvance=10 page=0 chnl=0 letter=";"
+char id=60 x=426 y=66 width=23 height=23 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 letter="<"
+char id=62 x=450 y=66 width=23 height=23 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 letter=">"
+char id=111 x=474 y=66 width=22 height=23 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0 letter="o"
+char id=97 x=1 y=95 width=21 height=23 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="a"
+char id=101 x=23 y=95 width=21 height=23 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="e"
+char id=117 x=45 y=95 width=21 height=23 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0 letter="u"
+char id=115 x=67 y=95 width=20 height=23 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=0 letter="s"
+char id=99 x=88 y=95 width=20 height=23 xoffset=0 yoffset=6 xadvance=17 page=0 chnl=0 letter="c"
+char id=119 x=109 y=95 width=29 height=22 xoffset=-1 yoffset=6 xadvance=24 page=0 chnl=0 letter="w"
+char id=109 x=139 y=95 width=29 height=22 xoffset=1 yoffset=6 xadvance=28 page=0 chnl=0 letter="m"
+char id=118 x=169 y=95 width=22 height=22 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="v"
+char id=110 x=192 y=95 width=20 height=22 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0 letter="n"
+char id=122 x=213 y=95 width=20 height=22 xoffset=-1 yoffset=6 xadvance=16 page=0 chnl=0 letter="z"
+char id=114 x=234 y=95 width=14 height=22 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0 letter="r"
+char id=120 x=249 y=95 width=22 height=21 xoffset=-1 yoffset=7 xadvance=17 page=0 chnl=0 letter="x"
+char id=43 x=272 y=95 width=22 height=21 xoffset=0 yoffset=7 xadvance=18 page=0 chnl=0 letter="+"
+char id=58 x=295 y=95 width=10 height=21 xoffset=2 yoffset=7 xadvance=10 page=0 chnl=0 letter=":"
+char id=94 x=306 y=95 width=20 height=19 xoffset=1 yoffset=-0 xadvance=18 page=0 chnl=0 letter="^"
+char id=61 x=327 y=95 width=22 height=17 xoffset=0 yoffset=9 xadvance=18 page=0 chnl=0 letter="="
+char id=42 x=350 y=95 width=16 height=16 xoffset=-1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="*"
+char id=34 x=367 y=95 width=15 height=15 xoffset=-1 yoffset=-0 xadvance=15 page=0 chnl=0 letter="""
+char id=44 x=383 y=95 width=10 height=15 xoffset=0 yoffset=19 xadvance=8 page=0 chnl=0 letter=","
+char id=39 x=394 y=95 width=9 height=15 xoffset=0 yoffset=-0 xadvance=7 page=0 chnl=0 letter="'"
+char id=126 x=404 y=95 width=23 height=13 xoffset=-1 yoffset=11 xadvance=18 page=0 chnl=0 letter="~"
+char id=45 x=428 y=95 width=14 height=10 xoffset=-1 yoffset=12 xadvance=10 page=0 chnl=0 letter="-"
+char id=96 x=443 y=95 width=12 height=9 xoffset=-2 yoffset=-0 xadvance=10 page=0 chnl=0 letter="`"
+char id=46 x=456 y=95 width=9 height=9 xoffset=1 yoffset=19 xadvance=8 page=0 chnl=0 letter="."
+char id=95 x=466 y=95 width=22 height=6 xoffset=-1 yoffset=26 xadvance=17 page=0 chnl=0 letter="_"
+char id=32 x=489 y=95 width=0 height=0 xoffset=-112 yoffset=145 xadvance=8 page=0 chnl=0 letter="space"
diff --git a/tests/cpp-tests/Resources/fonts/helvetica-geneva-32.png b/tests/cpp-tests/Resources/fonts/helvetica-geneva-32.png
new file mode 100755
index 0000000000..8d997c0f9f
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/helvetica-geneva-32.png differ
diff --git a/tests/cpp-tests/Resources/fonts/konqa32.fnt b/tests/cpp-tests/Resources/fonts/konqa32.fnt
new file mode 100755
index 0000000000..4a055fdda0
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/konqa32.fnt
@@ -0,0 +1,96 @@
+info face="KonQaBlack" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=40 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="konqa32.png"
+chars count=91
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=32 xadvance=16 page=0 chnl=0
+char id=36 x=0 y=0 width=18 height=37 xoffset=1 yoffset=0 xadvance=18 page=0 chnl=0
+char id=81 x=18 y=0 width=20 height=30 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=64 x=38 y=0 width=20 height=29 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=124 x=58 y=0 width=8 height=28 xoffset=2 yoffset=6 xadvance=10 page=0 chnl=0
+char id=63 x=66 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0
+char id=56 x=85 y=0 width=20 height=28 xoffset=0 yoffset=5 xadvance=18 page=0 chnl=0
+char id=90 x=105 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=89 x=125 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0
+char id=87 x=144 y=0 width=28 height=28 xoffset=1 yoffset=5 xadvance=27 page=0 chnl=0
+char id=86 x=172 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0
+char id=85 x=191 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=84 x=211 y=0 width=19 height=28 xoffset=1 yoffset=5 xadvance=18 page=0 chnl=0
+char id=82 x=230 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=79 x=250 y=0 width=20 height=28 xoffset=1 yoffset=5 xadvance=19 page=0 chnl=0
+char id=92 x=270 y=0 width=18 height=27 xoffset=2 yoffset=6 xadvance=19 page=0 chnl=0
+char id=47 x=288 y=0 width=18 height=27 xoffset=2 yoffset=6 xadvance=19 page=0 chnl=0
+char id=33 x=306 y=0 width=10 height=27 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0
+char id=48 x=316 y=0 width=21 height=27 xoffset=1 yoffset=6 xadvance=20 page=0 chnl=0
+char id=57 x=337 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0
+char id=55 x=356 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0
+char id=54 x=375 y=0 width=20 height=27 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0
+char id=53 x=395 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0
+char id=52 x=414 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0
+char id=51 x=433 y=0 width=18 height=27 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0
+char id=50 x=451 y=0 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0
+char id=49 x=470 y=0 width=13 height=27 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
+char id=88 x=483 y=0 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=83 x=0 y=37 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=80 x=20 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=78 x=39 y=37 width=21 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=77 x=60 y=37 width=28 height=27 xoffset=1 yoffset=6 xadvance=26 page=0 chnl=0
+char id=76 x=88 y=37 width=19 height=27 xoffset=0 yoffset=6 xadvance=18 page=0 chnl=0
+char id=75 x=107 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0
+char id=74 x=126 y=37 width=16 height=27 xoffset=1 yoffset=6 xadvance=15 page=0 chnl=0
+char id=73 x=142 y=37 width=12 height=27 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
+char id=72 x=154 y=37 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=71 x=174 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=70 x=193 y=37 width=20 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=69 x=213 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=68 x=232 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0
+char id=67 x=251 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=66 x=270 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=65 x=289 y=37 width=19 height=27 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
+char id=38 x=308 y=37 width=24 height=26 xoffset=1 yoffset=8 xadvance=23 page=0 chnl=0
+char id=37 x=332 y=37 width=27 height=26 xoffset=0 yoffset=8 xadvance=25 page=0 chnl=0
+char id=106 x=359 y=37 width=11 height=22 xoffset=1 yoffset=11 xadvance=9 page=0 chnl=0
+char id=125 x=370 y=37 width=11 height=21 xoffset=2 yoffset=12 xadvance=10 page=0 chnl=0
+char id=123 x=381 y=37 width=11 height=21 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0
+char id=93 x=392 y=37 width=11 height=21 xoffset=2 yoffset=12 xadvance=10 page=0 chnl=0
+char id=91 x=403 y=37 width=11 height=21 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0
+char id=41 x=414 y=37 width=12 height=21 xoffset=1 yoffset=12 xadvance=10 page=0 chnl=0
+char id=40 x=426 y=37 width=13 height=21 xoffset=-1 yoffset=12 xadvance=10 page=0 chnl=0
+char id=122 x=439 y=37 width=16 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0
+char id=121 x=455 y=37 width=15 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0
+char id=120 x=470 y=37 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=119 x=484 y=37 width=21 height=21 xoffset=1 yoffset=12 xadvance=20 page=0 chnl=0
+char id=118 x=0 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=0
+char id=117 x=14 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=116 x=29 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=0
+char id=115 x=43 y=64 width=16 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0
+char id=114 x=59 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=113 x=73 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=112 x=88 y=64 width=16 height=21 xoffset=0 yoffset=12 xadvance=14 page=0 chnl=0
+char id=111 x=104 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=110 x=119 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=109 x=134 y=64 width=22 height=21 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0
+char id=108 x=156 y=64 width=11 height=21 xoffset=1 yoffset=12 xadvance=10 page=0 chnl=0
+char id=107 x=167 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=15 page=0 chnl=0
+char id=105 x=182 y=64 width=8 height=21 xoffset=1 yoffset=12 xadvance=7 page=0 chnl=0
+char id=104 x=190 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=103 x=204 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=102 x=219 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=101 x=234 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=100 x=248 y=64 width=14 height=21 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=0
+char id=99 x=262 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=98 x=277 y=64 width=15 height=21 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0
+char id=97 x=292 y=64 width=16 height=21 xoffset=0 yoffset=12 xadvance=15 page=0 chnl=0
+char id=94 x=308 y=64 width=21 height=20 xoffset=1 yoffset=7 xadvance=21 page=0 chnl=0
+char id=43 x=329 y=64 width=16 height=17 xoffset=1 yoffset=16 xadvance=16 page=0 chnl=0
+char id=61 x=345 y=64 width=17 height=14 xoffset=1 yoffset=16 xadvance=17 page=0 chnl=0
+char id=59 x=362 y=64 width=10 height=14 xoffset=0 yoffset=27 xadvance=8 page=0 chnl=0
+char id=58 x=372 y=64 width=8 height=13 xoffset=1 yoffset=20 xadvance=8 page=0 chnl=0
+char id=42 x=380 y=64 width=12 height=12 xoffset=5 yoffset=6 xadvance=19 page=0 chnl=0
+char id=34 x=392 y=64 width=15 height=11 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=0
+char id=126 x=407 y=64 width=21 height=8 xoffset=3 yoffset=19 xadvance=25 page=0 chnl=0
+char id=44 x=428 y=64 width=9 height=8 xoffset=1 yoffset=29 xadvance=8 page=0 chnl=0
+char id=39 x=437 y=64 width=9 height=8 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=0
+char id=96 x=446 y=64 width=9 height=8 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0
+char id=45 x=455 y=64 width=17 height=7 xoffset=1 yoffset=17 xadvance=17 page=0 chnl=0
+char id=95 x=472 y=64 width=16 height=6 xoffset=1 yoffset=28 xadvance=17 page=0 chnl=0
+char id=46 x=488 y=64 width=8 height=6 xoffset=0 yoffset=27 xadvance=7 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/fonts/konqa32.png b/tests/cpp-tests/Resources/fonts/konqa32.png
new file mode 100755
index 0000000000..7ed3ceefcd
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/konqa32.png differ
diff --git a/tests/cpp-tests/Resources/fonts/labelatlas.png b/tests/cpp-tests/Resources/fonts/labelatlas.png
new file mode 100755
index 0000000000..e91d0af540
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/labelatlas.png differ
diff --git a/tests/cpp-tests/Resources/fonts/larabie-16.plist b/tests/cpp-tests/Resources/fonts/larabie-16.plist
new file mode 100755
index 0000000000..ad0defd872
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/larabie-16.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ version
+ 1
+ textureFilename
+ larabie-16.png
+ itemWidth
+ 10
+ itemHeight
+ 20
+ firstChar
+ 65
+
+
diff --git a/tests/cpp-tests/Resources/fonts/larabie-16.png b/tests/cpp-tests/Resources/fonts/larabie-16.png
new file mode 100755
index 0000000000..304240c7c1
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/larabie-16.png differ
diff --git a/tests/cpp-tests/Resources/fonts/markerFelt.fnt b/tests/cpp-tests/Resources/fonts/markerFelt.fnt
new file mode 100755
index 0000000000..b62acc9fb4
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/markerFelt.fnt
@@ -0,0 +1,3769 @@
+info face="MarkerFelt-Thin" size=25 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=27 base=22 scaleW=256 scaleH=256 pages=1 packed=0
+page id=0 file="markerFelt.png"
+chars count=95
+char id=106 x=2 y=2 width=6 height=26 xoffset=-2 yoffset=1 xadvance=5 page=0 chnl=0 letter="j"
+char id=87 x=10 y=2 width=25 height=25 xoffset=0 yoffset=-1 xadvance=24 page=0 chnl=0 letter="W"
+char id=81 x=37 y=2 width=16 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="Q"
+char id=77 x=55 y=2 width=23 height=24 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="M"
+char id=90 x=80 y=2 width=17 height=24 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=0 letter="Z"
+char id=88 x=99 y=2 width=16 height=24 xoffset=0 yoffset=-0 xadvance=15 page=0 chnl=0 letter="X"
+char id=89 x=117 y=2 width=16 height=24 xoffset=1 yoffset=-0 xadvance=15 page=0 chnl=0 letter="Y"
+char id=65 x=135 y=2 width=15 height=24 xoffset=1 yoffset=-0 xadvance=16 page=0 chnl=0 letter="A"
+char id=75 x=152 y=2 width=15 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="K"
+char id=86 x=169 y=2 width=15 height=24 xoffset=0 yoffset=-0 xadvance=14 page=0 chnl=0 letter="V"
+char id=52 x=186 y=2 width=15 height=24 xoffset=0 yoffset=-0 xadvance=14 page=0 chnl=0 letter="4"
+char id=78 x=203 y=2 width=14 height=24 xoffset=1 yoffset=-0 xadvance=15 page=0 chnl=0 letter="N"
+char id=53 x=219 y=2 width=14 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="5"
+char id=85 x=235 y=2 width=14 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="U"
+char id=55 x=2 y=30 width=14 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="7"
+char id=84 x=18 y=30 width=13 height=24 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="T"
+char id=83 x=33 y=30 width=13 height=24 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="S"
+char id=48 x=48 y=30 width=12 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="0"
+char id=68 x=62 y=30 width=12 height=24 xoffset=1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="D"
+char id=76 x=76 y=30 width=12 height=24 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="L"
+char id=74 x=90 y=30 width=12 height=24 xoffset=0 yoffset=-0 xadvance=11 page=0 chnl=0 letter="J"
+char id=56 x=104 y=30 width=12 height=24 xoffset=2 yoffset=-0 xadvance=14 page=0 chnl=0 letter="8"
+char id=80 x=118 y=30 width=12 height=24 xoffset=1 yoffset=-0 xadvance=11 page=0 chnl=0 letter="P"
+char id=63 x=132 y=30 width=11 height=24 xoffset=0 yoffset=-0 xadvance=10 page=0 chnl=0 letter="?"
+char id=69 x=145 y=30 width=11 height=24 xoffset=1 yoffset=-0 xadvance=11 page=0 chnl=0 letter="E"
+char id=108 x=158 y=30 width=5 height=24 xoffset=1 yoffset=-0 xadvance=5 page=0 chnl=0 letter="l"
+char id=124 x=165 y=30 width=5 height=24 xoffset=1 yoffset=-0 xadvance=5 page=0 chnl=0 letter="|"
+char id=64 x=172 y=30 width=23 height=23 xoffset=1 yoffset=-0 xadvance=23 page=0 chnl=0 letter="@"
+char id=82 x=197 y=30 width=16 height=23 xoffset=1 yoffset=1 xadvance=14 page=0 chnl=0 letter="R"
+char id=38 x=215 y=30 width=16 height=23 xoffset=1 yoffset=1 xadvance=14 page=0 chnl=0 letter="&"
+char id=50 x=233 y=30 width=15 height=23 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="2"
+char id=92 x=2 y=56 width=14 height=23 xoffset=0 yoffset=-0 xadvance=13 page=0 chnl=0 letter="\"
+char id=47 x=18 y=56 width=13 height=23 xoffset=0 yoffset=-0 xadvance=13 page=0 chnl=0 letter="/"
+char id=71 x=33 y=56 width=13 height=23 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0 letter="G"
+char id=107 x=48 y=56 width=13 height=23 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="k"
+char id=66 x=63 y=56 width=13 height=23 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="B"
+char id=36 x=78 y=56 width=13 height=23 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0 letter="$"
+char id=104 x=93 y=56 width=12 height=23 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="h"
+char id=72 x=107 y=56 width=12 height=23 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="H"
+char id=102 x=121 y=56 width=11 height=23 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=0 letter="f"
+char id=91 x=134 y=56 width=11 height=23 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0 letter="["
+char id=93 x=147 y=56 width=10 height=23 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0 letter="]"
+char id=49 x=159 y=56 width=8 height=23 xoffset=3 yoffset=1 xadvance=14 page=0 chnl=0 letter="1"
+char id=73 x=169 y=56 width=6 height=23 xoffset=1 yoffset=-0 xadvance=6 page=0 chnl=0 letter="I"
+char id=33 x=177 y=56 width=5 height=23 xoffset=1 yoffset=1 xadvance=5 page=0 chnl=0 letter="!"
+char id=37 x=184 y=56 width=18 height=22 xoffset=1 yoffset=2 xadvance=18 page=0 chnl=0 letter="%"
+char id=79 x=204 y=56 width=13 height=22 xoffset=1 yoffset=2 xadvance=14 page=0 chnl=0 letter="O"
+char id=51 x=219 y=56 width=12 height=22 xoffset=1 yoffset=1 xadvance=14 page=0 chnl=0 letter="3"
+char id=54 x=233 y=56 width=12 height=22 xoffset=2 yoffset=2 xadvance=14 page=0 chnl=0 letter="6"
+char id=57 x=2 y=81 width=12 height=22 xoffset=1 yoffset=2 xadvance=14 page=0 chnl=0 letter="9"
+char id=67 x=16 y=81 width=12 height=22 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 letter="C"
+char id=123 x=30 y=81 width=11 height=22 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0 letter="{"
+char id=125 x=43 y=81 width=11 height=22 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0 letter="}"
+char id=70 x=56 y=81 width=11 height=22 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 letter="F"
+char id=100 x=69 y=81 width=11 height=22 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 letter="d"
+char id=113 x=82 y=81 width=11 height=22 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 letter="q"
+char id=112 x=95 y=81 width=10 height=22 xoffset=1 yoffset=6 xadvance=11 page=0 chnl=0 letter="p"
+char id=98 x=107 y=81 width=10 height=22 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0 letter="b"
+char id=40 x=119 y=81 width=6 height=22 xoffset=1 yoffset=1 xadvance=6 page=0 chnl=0 letter="("
+char id=41 x=127 y=81 width=6 height=22 xoffset=1 yoffset=1 xadvance=6 page=0 chnl=0 letter=")"
+char id=105 x=135 y=81 width=5 height=22 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=0 letter="i"
+char id=116 x=142 y=81 width=12 height=21 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0 letter="t"
+char id=121 x=156 y=81 width=12 height=20 xoffset=-0 yoffset=8 xadvance=12 page=0 chnl=0 letter="y"
+char id=103 x=170 y=81 width=10 height=20 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=0 letter="g"
+char id=59 x=182 y=81 width=7 height=19 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0 letter=";"
+char id=119 x=191 y=81 width=20 height=18 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 letter="w"
+char id=109 x=213 y=81 width=18 height=18 xoffset=1 yoffset=6 xadvance=18 page=0 chnl=0 letter="m"
+char id=122 x=233 y=81 width=13 height=18 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0 letter="z"
+char id=110 x=2 y=105 width=13 height=18 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0 letter="n"
+char id=120 x=17 y=105 width=12 height=18 xoffset=-0 yoffset=6 xadvance=10 page=0 chnl=0 letter="x"
+char id=114 x=31 y=105 width=11 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="r"
+char id=117 x=44 y=105 width=11 height=18 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="u"
+char id=118 x=57 y=105 width=14 height=17 xoffset=-1 yoffset=7 xadvance=11 page=0 chnl=0 letter="v"
+char id=111 x=73 y=105 width=10 height=17 xoffset=0 yoffset=7 xadvance=10 page=0 chnl=0 letter="o"
+char id=101 x=85 y=105 width=10 height=17 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0 letter="e"
+char id=62 x=97 y=105 width=10 height=17 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter=">"
+char id=99 x=109 y=105 width=9 height=17 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=0 letter="c"
+char id=60 x=120 y=105 width=8 height=17 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="<"
+char id=35 x=130 y=105 width=14 height=16 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=0 letter="#"
+char id=97 x=146 y=105 width=12 height=16 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0 letter="a"
+char id=115 x=160 y=105 width=10 height=16 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0 letter="s"
+char id=58 x=172 y=105 width=6 height=15 xoffset=1 yoffset=8 xadvance=6 page=0 chnl=0 letter=":"
+char id=43 x=180 y=105 width=12 height=13 xoffset=0 yoffset=5 xadvance=11 page=0 chnl=0 letter="+"
+char id=42 x=194 y=105 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0 letter="*"
+char id=61 x=208 y=105 width=9 height=11 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="="
+char id=34 x=219 y=105 width=8 height=9 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=0 letter="""
+char id=39 x=229 y=105 width=4 height=9 xoffset=0 yoffset=1 xadvance=4 page=0 chnl=0 letter="'"
+char id=94 x=235 y=105 width=9 height=8 xoffset=0 yoffset=-0 xadvance=8 page=0 chnl=0 letter="^"
+char id=96 x=246 y=105 width=6 height=8 xoffset=0 yoffset=-0 xadvance=5 page=0 chnl=0 letter="`"
+char id=44 x=2 y=125 width=6 height=8 xoffset=-1 yoffset=18 xadvance=5 page=0 chnl=0 letter=","
+char id=45 x=10 y=125 width=9 height=7 xoffset=1 yoffset=10 xadvance=9 page=0 chnl=0 letter="-"
+char id=46 x=21 y=125 width=5 height=7 xoffset=1 yoffset=16 xadvance=5 page=0 chnl=0 letter="."
+char id=95 x=28 y=125 width=12 height=6 xoffset=0 yoffset=22 xadvance=12 page=0 chnl=0 letter="_"
+char id=126 x=42 y=125 width=9 height=6 xoffset=0 yoffset=-0 xadvance=8 page=0 chnl=0 letter="~"
+char id=32 x=53 y=125 width=0 height=0 xoffset=6 yoffset=42 xadvance=6 page=0 chnl=0 letter="space"
+kernings count=3669
+kerning first=106 second=106 amount=2
+kerning first=106 second=56 amount=-1
+kerning first=106 second=63 amount=1
+kerning first=106 second=108 amount=1
+kerning first=106 second=107 amount=1
+kerning first=106 second=102 amount=1
+kerning first=106 second=49 amount=-2
+kerning first=106 second=33 amount=1
+kerning first=106 second=100 amount=1
+kerning first=106 second=112 amount=1
+kerning first=106 second=98 amount=1
+kerning first=106 second=40 amount=1
+kerning first=106 second=105 amount=1
+kerning first=106 second=116 amount=1
+kerning first=106 second=121 amount=1
+kerning first=106 second=103 amount=1
+kerning first=106 second=59 amount=2
+kerning first=106 second=119 amount=2
+kerning first=106 second=122 amount=1
+kerning first=106 second=110 amount=1
+kerning first=106 second=120 amount=1
+kerning first=106 second=114 amount=1
+kerning first=106 second=117 amount=1
+kerning first=106 second=118 amount=2
+kerning first=106 second=111 amount=1
+kerning first=106 second=101 amount=1
+kerning first=106 second=99 amount=1
+kerning first=106 second=97 amount=1
+kerning first=106 second=115 amount=1
+kerning first=106 second=34 amount=1
+kerning first=106 second=39 amount=1
+kerning first=106 second=44 amount=1
+kerning first=106 second=46 amount=1
+kerning first=87 second=87 amount=1
+kerning first=87 second=81 amount=-1
+kerning first=87 second=90 amount=-1
+kerning first=87 second=88 amount=1
+kerning first=87 second=89 amount=1
+kerning first=87 second=65 amount=-3
+kerning first=87 second=75 amount=1
+kerning first=87 second=86 amount=1
+kerning first=87 second=52 amount=-2
+kerning first=87 second=53 amount=-1
+kerning first=87 second=85 amount=1
+kerning first=87 second=55 amount=-1
+kerning first=87 second=83 amount=-1
+kerning first=87 second=48 amount=-2
+kerning first=87 second=76 amount=1
+kerning first=87 second=74 amount=-3
+kerning first=87 second=56 amount=-2
+kerning first=87 second=80 amount=1
+kerning first=87 second=108 amount=1
+kerning first=87 second=64 amount=-3
+kerning first=87 second=82 amount=1
+kerning first=87 second=50 amount=-2
+kerning first=87 second=92 amount=1
+kerning first=87 second=47 amount=-3
+kerning first=87 second=71 amount=-1
+kerning first=87 second=107 amount=1
+kerning first=87 second=66 amount=1
+kerning first=87 second=102 amount=-1
+kerning first=87 second=93 amount=1
+kerning first=87 second=49 amount=-2
+kerning first=87 second=73 amount=1
+kerning first=87 second=33 amount=1
+kerning first=87 second=79 amount=-1
+kerning first=87 second=51 amount=-2
+kerning first=87 second=54 amount=-2
+kerning first=87 second=57 amount=-2
+kerning first=87 second=67 amount=-1
+kerning first=87 second=100 amount=-2
+kerning first=87 second=113 amount=-2
+kerning first=87 second=112 amount=-1
+kerning first=87 second=41 amount=1
+kerning first=87 second=116 amount=-1
+kerning first=87 second=103 amount=-2
+kerning first=87 second=59 amount=-2
+kerning first=87 second=109 amount=-1
+kerning first=87 second=122 amount=-2
+kerning first=87 second=110 amount=-1
+kerning first=87 second=120 amount=-1
+kerning first=87 second=114 amount=-1
+kerning first=87 second=117 amount=-1
+kerning first=87 second=111 amount=-2
+kerning first=87 second=101 amount=-2
+kerning first=87 second=99 amount=-2
+kerning first=87 second=35 amount=-1
+kerning first=87 second=97 amount=-2
+kerning first=87 second=115 amount=-2
+kerning first=87 second=58 amount=-2
+kerning first=87 second=34 amount=1
+kerning first=87 second=39 amount=2
+kerning first=87 second=44 amount=-4
+kerning first=87 second=45 amount=-2
+kerning first=87 second=46 amount=-3
+kerning first=81 second=106 amount=3
+kerning first=81 second=77 amount=1
+kerning first=81 second=90 amount=1
+kerning first=81 second=88 amount=2
+kerning first=81 second=89 amount=-1
+kerning first=81 second=65 amount=1
+kerning first=81 second=75 amount=1
+kerning first=81 second=86 amount=-1
+kerning first=81 second=78 amount=1
+kerning first=81 second=55 amount=1
+kerning first=81 second=68 amount=1
+kerning first=81 second=76 amount=1
+kerning first=81 second=56 amount=-1
+kerning first=81 second=80 amount=2
+kerning first=81 second=69 amount=1
+kerning first=81 second=108 amount=2
+kerning first=81 second=82 amount=1
+kerning first=81 second=50 amount=1
+kerning first=81 second=92 amount=-1
+kerning first=81 second=47 amount=1
+kerning first=81 second=107 amount=2
+kerning first=81 second=66 amount=1
+kerning first=81 second=104 amount=1
+kerning first=81 second=72 amount=1
+kerning first=81 second=102 amount=1
+kerning first=81 second=93 amount=1
+kerning first=81 second=49 amount=-2
+kerning first=81 second=73 amount=1
+kerning first=81 second=33 amount=2
+kerning first=81 second=51 amount=-1
+kerning first=81 second=54 amount=-1
+kerning first=81 second=57 amount=-1
+kerning first=81 second=67 amount=1
+kerning first=81 second=70 amount=1
+kerning first=81 second=112 amount=2
+kerning first=81 second=98 amount=2
+kerning first=81 second=40 amount=1
+kerning first=81 second=41 amount=1
+kerning first=81 second=105 amount=2
+kerning first=81 second=116 amount=1
+kerning first=81 second=121 amount=1
+kerning first=81 second=103 amount=1
+kerning first=81 second=59 amount=3
+kerning first=81 second=119 amount=2
+kerning first=81 second=122 amount=2
+kerning first=81 second=110 amount=2
+kerning first=81 second=120 amount=2
+kerning first=81 second=114 amount=2
+kerning first=81 second=117 amount=1
+kerning first=81 second=118 amount=1
+kerning first=81 second=111 amount=1
+kerning first=81 second=99 amount=1
+kerning first=81 second=97 amount=2
+kerning first=81 second=115 amount=1
+kerning first=81 second=58 amount=2
+kerning first=81 second=44 amount=3
+kerning first=81 second=46 amount=2
+kerning first=77 second=106 amount=1
+kerning first=77 second=90 amount=1
+kerning first=77 second=88 amount=1
+kerning first=77 second=65 amount=1
+kerning first=77 second=75 amount=1
+kerning first=77 second=48 amount=-1
+kerning first=77 second=56 amount=-1
+kerning first=77 second=80 amount=1
+kerning first=77 second=69 amount=1
+kerning first=77 second=108 amount=1
+kerning first=77 second=50 amount=1
+kerning first=77 second=47 amount=1
+kerning first=77 second=107 amount=1
+kerning first=77 second=66 amount=1
+kerning first=77 second=104 amount=1
+kerning first=77 second=49 amount=-3
+kerning first=77 second=73 amount=1
+kerning first=77 second=33 amount=1
+kerning first=77 second=51 amount=-1
+kerning first=77 second=54 amount=-1
+kerning first=77 second=57 amount=-1
+kerning first=77 second=70 amount=1
+kerning first=77 second=112 amount=1
+kerning first=77 second=98 amount=1
+kerning first=77 second=41 amount=1
+kerning first=77 second=105 amount=1
+kerning first=77 second=116 amount=1
+kerning first=77 second=59 amount=1
+kerning first=77 second=119 amount=1
+kerning first=77 second=122 amount=1
+kerning first=77 second=110 amount=1
+kerning first=77 second=120 amount=2
+kerning first=77 second=114 amount=1
+kerning first=77 second=118 amount=1
+kerning first=77 second=97 amount=1
+kerning first=77 second=115 amount=1
+kerning first=77 second=58 amount=1
+kerning first=77 second=44 amount=1
+kerning first=77 second=46 amount=1
+kerning first=90 second=87 amount=1
+kerning first=90 second=81 amount=-1
+kerning first=90 second=88 amount=1
+kerning first=90 second=89 amount=1
+kerning first=90 second=65 amount=-1
+kerning first=90 second=75 amount=1
+kerning first=90 second=86 amount=1
+kerning first=90 second=52 amount=-4
+kerning first=90 second=78 amount=1
+kerning first=90 second=53 amount=-1
+kerning first=90 second=85 amount=1
+kerning first=90 second=83 amount=-1
+kerning first=90 second=48 amount=-1
+kerning first=90 second=68 amount=1
+kerning first=90 second=76 amount=1
+kerning first=90 second=74 amount=-3
+kerning first=90 second=56 amount=-1
+kerning first=90 second=80 amount=1
+kerning first=90 second=63 amount=-1
+kerning first=90 second=69 amount=1
+kerning first=90 second=108 amount=1
+kerning first=90 second=64 amount=-2
+kerning first=90 second=82 amount=1
+kerning first=90 second=50 amount=-1
+kerning first=90 second=92 amount=1
+kerning first=90 second=107 amount=1
+kerning first=90 second=66 amount=1
+kerning first=90 second=104 amount=1
+kerning first=90 second=102 amount=-1
+kerning first=90 second=93 amount=1
+kerning first=90 second=49 amount=-2
+kerning first=90 second=73 amount=1
+kerning first=90 second=33 amount=1
+kerning first=90 second=51 amount=-2
+kerning first=90 second=54 amount=-2
+kerning first=90 second=57 amount=-1
+kerning first=90 second=100 amount=-1
+kerning first=90 second=113 amount=-1
+kerning first=90 second=112 amount=-1
+kerning first=90 second=98 amount=1
+kerning first=90 second=41 amount=1
+kerning first=90 second=105 amount=1
+kerning first=90 second=116 amount=-2
+kerning first=90 second=121 amount=-2
+kerning first=90 second=103 amount=-1
+kerning first=90 second=59 amount=-1
+kerning first=90 second=119 amount=-1
+kerning first=90 second=109 amount=-1
+kerning first=90 second=122 amount=-1
+kerning first=90 second=110 amount=-1
+kerning first=90 second=114 amount=-1
+kerning first=90 second=117 amount=-1
+kerning first=90 second=118 amount=-2
+kerning first=90 second=111 amount=-1
+kerning first=90 second=101 amount=-1
+kerning first=90 second=99 amount=-1
+kerning first=90 second=35 amount=-3
+kerning first=90 second=115 amount=-1
+kerning first=90 second=58 amount=-1
+kerning first=90 second=34 amount=2
+kerning first=90 second=39 amount=2
+kerning first=90 second=45 amount=-5
+kerning first=88 second=106 amount=1
+kerning first=88 second=81 amount=-1
+kerning first=88 second=90 amount=1
+kerning first=88 second=88 amount=1
+kerning first=88 second=65 amount=1
+kerning first=88 second=52 amount=-2
+kerning first=88 second=84 amount=-1
+kerning first=88 second=83 amount=-1
+kerning first=88 second=48 amount=-1
+kerning first=88 second=74 amount=-2
+kerning first=88 second=56 amount=-1
+kerning first=88 second=80 amount=1
+kerning first=88 second=63 amount=-2
+kerning first=88 second=69 amount=1
+kerning first=88 second=108 amount=1
+kerning first=88 second=64 amount=-1
+kerning first=88 second=47 amount=1
+kerning first=88 second=71 amount=-1
+kerning first=88 second=107 amount=1
+kerning first=88 second=102 amount=-1
+kerning first=88 second=49 amount=-3
+kerning first=88 second=73 amount=1
+kerning first=88 second=33 amount=1
+kerning first=88 second=79 amount=-1
+kerning first=88 second=51 amount=-1
+kerning first=88 second=54 amount=-2
+kerning first=88 second=57 amount=-1
+kerning first=88 second=112 amount=1
+kerning first=88 second=98 amount=1
+kerning first=88 second=41 amount=1
+kerning first=88 second=105 amount=1
+kerning first=88 second=116 amount=-1
+kerning first=88 second=121 amount=-2
+kerning first=88 second=59 amount=1
+kerning first=88 second=122 amount=1
+kerning first=88 second=110 amount=1
+kerning first=88 second=120 amount=1
+kerning first=88 second=114 amount=1
+kerning first=88 second=118 amount=-1
+kerning first=88 second=35 amount=-3
+kerning first=88 second=97 amount=1
+kerning first=88 second=115 amount=1
+kerning first=88 second=58 amount=1
+kerning first=88 second=44 amount=1
+kerning first=88 second=45 amount=-3
+kerning first=88 second=46 amount=2
+kerning first=89 second=106 amount=1
+kerning first=89 second=87 amount=1
+kerning first=89 second=81 amount=-1
+kerning first=89 second=77 amount=1
+kerning first=89 second=88 amount=1
+kerning first=89 second=89 amount=1
+kerning first=89 second=65 amount=-3
+kerning first=89 second=75 amount=1
+kerning first=89 second=86 amount=2
+kerning first=89 second=52 amount=-3
+kerning first=89 second=78 amount=1
+kerning first=89 second=85 amount=1
+kerning first=89 second=84 amount=1
+kerning first=89 second=48 amount=-1
+kerning first=89 second=68 amount=1
+kerning first=89 second=76 amount=1
+kerning first=89 second=74 amount=-3
+kerning first=89 second=56 amount=-1
+kerning first=89 second=80 amount=1
+kerning first=89 second=69 amount=1
+kerning first=89 second=108 amount=1
+kerning first=89 second=64 amount=-3
+kerning first=89 second=82 amount=1
+kerning first=89 second=50 amount=-2
+kerning first=89 second=92 amount=1
+kerning first=89 second=47 amount=-1
+kerning first=89 second=107 amount=1
+kerning first=89 second=66 amount=1
+kerning first=89 second=104 amount=1
+kerning first=89 second=72 amount=1
+kerning first=89 second=102 amount=-1
+kerning first=89 second=93 amount=1
+kerning first=89 second=49 amount=-2
+kerning first=89 second=73 amount=1
+kerning first=89 second=33 amount=1
+kerning first=89 second=51 amount=-2
+kerning first=89 second=54 amount=-1
+kerning first=89 second=57 amount=-1
+kerning first=89 second=70 amount=1
+kerning first=89 second=100 amount=-2
+kerning first=89 second=113 amount=-2
+kerning first=89 second=112 amount=-1
+kerning first=89 second=98 amount=1
+kerning first=89 second=41 amount=1
+kerning first=89 second=105 amount=1
+kerning first=89 second=116 amount=-1
+kerning first=89 second=121 amount=-1
+kerning first=89 second=103 amount=-2
+kerning first=89 second=59 amount=-2
+kerning first=89 second=109 amount=-1
+kerning first=89 second=122 amount=-2
+kerning first=89 second=110 amount=-1
+kerning first=89 second=120 amount=-1
+kerning first=89 second=114 amount=-1
+kerning first=89 second=117 amount=-1
+kerning first=89 second=111 amount=-2
+kerning first=89 second=101 amount=-3
+kerning first=89 second=99 amount=-2
+kerning first=89 second=35 amount=-1
+kerning first=89 second=97 amount=-2
+kerning first=89 second=115 amount=-2
+kerning first=89 second=58 amount=-2
+kerning first=89 second=34 amount=2
+kerning first=89 second=39 amount=2
+kerning first=89 second=44 amount=-4
+kerning first=89 second=45 amount=-3
+kerning first=89 second=46 amount=-4
+kerning first=65 second=87 amount=-2
+kerning first=65 second=88 amount=1
+kerning first=65 second=89 amount=-3
+kerning first=65 second=86 amount=-2
+kerning first=65 second=53 amount=-1
+kerning first=65 second=84 amount=-2
+kerning first=65 second=83 amount=1
+kerning first=65 second=56 amount=-1
+kerning first=65 second=63 amount=-1
+kerning first=65 second=108 amount=1
+kerning first=65 second=92 amount=-3
+kerning first=65 second=71 amount=1
+kerning first=65 second=102 amount=-1
+kerning first=65 second=93 amount=-1
+kerning first=65 second=49 amount=-4
+kerning first=65 second=51 amount=-2
+kerning first=65 second=54 amount=-1
+kerning first=65 second=57 amount=-1
+kerning first=65 second=67 amount=1
+kerning first=65 second=100 amount=1
+kerning first=65 second=113 amount=1
+kerning first=65 second=105 amount=1
+kerning first=65 second=116 amount=-1
+kerning first=65 second=103 amount=1
+kerning first=65 second=59 amount=1
+kerning first=65 second=122 amount=1
+kerning first=65 second=110 amount=1
+kerning first=65 second=120 amount=1
+kerning first=65 second=114 amount=1
+kerning first=65 second=117 amount=1
+kerning first=65 second=111 amount=1
+kerning first=65 second=101 amount=1
+kerning first=65 second=99 amount=1
+kerning first=65 second=97 amount=1
+kerning first=65 second=34 amount=-4
+kerning first=65 second=39 amount=-3
+kerning first=65 second=44 amount=1
+kerning first=65 second=46 amount=1
+kerning first=75 second=106 amount=1
+kerning first=75 second=77 amount=1
+kerning first=75 second=90 amount=1
+kerning first=75 second=88 amount=2
+kerning first=75 second=65 amount=1
+kerning first=75 second=75 amount=1
+kerning first=75 second=52 amount=-3
+kerning first=75 second=78 amount=1
+kerning first=75 second=53 amount=1
+kerning first=75 second=55 amount=1
+kerning first=75 second=84 amount=-1
+kerning first=75 second=76 amount=1
+kerning first=75 second=74 amount=-1
+kerning first=75 second=80 amount=1
+kerning first=75 second=63 amount=-1
+kerning first=75 second=69 amount=1
+kerning first=75 second=108 amount=1
+kerning first=75 second=82 amount=1
+kerning first=75 second=50 amount=1
+kerning first=75 second=47 amount=1
+kerning first=75 second=107 amount=1
+kerning first=75 second=66 amount=1
+kerning first=75 second=104 amount=1
+kerning first=75 second=72 amount=1
+kerning first=75 second=102 amount=-1
+kerning first=75 second=49 amount=-3
+kerning first=75 second=73 amount=1
+kerning first=75 second=33 amount=1
+kerning first=75 second=54 amount=-1
+kerning first=75 second=67 amount=1
+kerning first=75 second=70 amount=1
+kerning first=75 second=100 amount=1
+kerning first=75 second=113 amount=1
+kerning first=75 second=112 amount=1
+kerning first=75 second=98 amount=1
+kerning first=75 second=40 amount=1
+kerning first=75 second=41 amount=1
+kerning first=75 second=105 amount=1
+kerning first=75 second=116 amount=-1
+kerning first=75 second=121 amount=-1
+kerning first=75 second=103 amount=1
+kerning first=75 second=59 amount=1
+kerning first=75 second=122 amount=1
+kerning first=75 second=110 amount=1
+kerning first=75 second=120 amount=2
+kerning first=75 second=114 amount=1
+kerning first=75 second=117 amount=1
+kerning first=75 second=111 amount=1
+kerning first=75 second=101 amount=1
+kerning first=75 second=99 amount=1
+kerning first=75 second=35 amount=-4
+kerning first=75 second=97 amount=2
+kerning first=75 second=115 amount=1
+kerning first=75 second=58 amount=1
+kerning first=75 second=44 amount=1
+kerning first=75 second=45 amount=-4
+kerning first=75 second=46 amount=2
+kerning first=86 second=87 amount=1
+kerning first=86 second=81 amount=-1
+kerning first=86 second=90 amount=-1
+kerning first=86 second=88 amount=1
+kerning first=86 second=89 amount=1
+kerning first=86 second=65 amount=-3
+kerning first=86 second=75 amount=1
+kerning first=86 second=86 amount=1
+kerning first=86 second=52 amount=-2
+kerning first=86 second=78 amount=1
+kerning first=86 second=53 amount=-1
+kerning first=86 second=85 amount=1
+kerning first=86 second=83 amount=-1
+kerning first=86 second=48 amount=-2
+kerning first=86 second=68 amount=1
+kerning first=86 second=76 amount=1
+kerning first=86 second=74 amount=-2
+kerning first=86 second=56 amount=-1
+kerning first=86 second=80 amount=1
+kerning first=86 second=69 amount=1
+kerning first=86 second=108 amount=1
+kerning first=86 second=64 amount=-3
+kerning first=86 second=82 amount=1
+kerning first=86 second=50 amount=-2
+kerning first=86 second=92 amount=1
+kerning first=86 second=47 amount=-3
+kerning first=86 second=107 amount=1
+kerning first=86 second=66 amount=1
+kerning first=86 second=104 amount=1
+kerning first=86 second=102 amount=-1
+kerning first=86 second=93 amount=1
+kerning first=86 second=49 amount=-2
+kerning first=86 second=73 amount=1
+kerning first=86 second=33 amount=1
+kerning first=86 second=51 amount=-2
+kerning first=86 second=54 amount=-2
+kerning first=86 second=57 amount=-1
+kerning first=86 second=100 amount=-2
+kerning first=86 second=113 amount=-2
+kerning first=86 second=112 amount=-1
+kerning first=86 second=98 amount=1
+kerning first=86 second=41 amount=1
+kerning first=86 second=105 amount=1
+kerning first=86 second=103 amount=-2
+kerning first=86 second=59 amount=-1
+kerning first=86 second=109 amount=-1
+kerning first=86 second=122 amount=-2
+kerning first=86 second=110 amount=-1
+kerning first=86 second=120 amount=-1
+kerning first=86 second=114 amount=-1
+kerning first=86 second=117 amount=-1
+kerning first=86 second=111 amount=-2
+kerning first=86 second=101 amount=-2
+kerning first=86 second=99 amount=-2
+kerning first=86 second=35 amount=-1
+kerning first=86 second=97 amount=-1
+kerning first=86 second=115 amount=-2
+kerning first=86 second=58 amount=-2
+kerning first=86 second=34 amount=2
+kerning first=86 second=39 amount=2
+kerning first=86 second=44 amount=-3
+kerning first=86 second=45 amount=-2
+kerning first=86 second=46 amount=-3
+kerning first=52 second=106 amount=1
+kerning first=52 second=87 amount=-1
+kerning first=52 second=81 amount=1
+kerning first=52 second=90 amount=-2
+kerning first=52 second=88 amount=-2
+kerning first=52 second=89 amount=-2
+kerning first=52 second=65 amount=-1
+kerning first=52 second=86 amount=-1
+kerning first=52 second=85 amount=1
+kerning first=52 second=84 amount=-2
+kerning first=52 second=83 amount=-1
+kerning first=52 second=80 amount=1
+kerning first=52 second=63 amount=-1
+kerning first=52 second=69 amount=1
+kerning first=52 second=108 amount=1
+kerning first=52 second=92 amount=-2
+kerning first=52 second=47 amount=-2
+kerning first=52 second=71 amount=1
+kerning first=52 second=107 amount=1
+kerning first=52 second=66 amount=1
+kerning first=52 second=104 amount=1
+kerning first=52 second=72 amount=1
+kerning first=52 second=102 amount=1
+kerning first=52 second=93 amount=-2
+kerning first=52 second=73 amount=1
+kerning first=52 second=33 amount=1
+kerning first=52 second=79 amount=1
+kerning first=52 second=67 amount=1
+kerning first=52 second=100 amount=1
+kerning first=52 second=113 amount=1
+kerning first=52 second=112 amount=1
+kerning first=52 second=98 amount=1
+kerning first=52 second=40 amount=1
+kerning first=52 second=41 amount=-1
+kerning first=52 second=105 amount=1
+kerning first=52 second=116 amount=1
+kerning first=52 second=121 amount=1
+kerning first=52 second=103 amount=1
+kerning first=52 second=119 amount=1
+kerning first=52 second=122 amount=-1
+kerning first=52 second=110 amount=1
+kerning first=52 second=114 amount=1
+kerning first=52 second=117 amount=1
+kerning first=52 second=118 amount=1
+kerning first=52 second=111 amount=1
+kerning first=52 second=101 amount=1
+kerning first=52 second=99 amount=1
+kerning first=52 second=35 amount=1
+kerning first=52 second=97 amount=1
+kerning first=52 second=115 amount=1
+kerning first=52 second=34 amount=-2
+kerning first=52 second=39 amount=-1
+kerning first=52 second=44 amount=-2
+kerning first=52 second=45 amount=1
+kerning first=52 second=46 amount=-2
+kerning first=78 second=106 amount=1
+kerning first=78 second=87 amount=1
+kerning first=78 second=90 amount=1
+kerning first=78 second=88 amount=1
+kerning first=78 second=65 amount=1
+kerning first=78 second=75 amount=1
+kerning first=78 second=86 amount=1
+kerning first=78 second=85 amount=1
+kerning first=78 second=83 amount=1
+kerning first=78 second=48 amount=-1
+kerning first=78 second=76 amount=1
+kerning first=78 second=80 amount=1
+kerning first=78 second=69 amount=1
+kerning first=78 second=108 amount=1
+kerning first=78 second=82 amount=1
+kerning first=78 second=92 amount=1
+kerning first=78 second=47 amount=1
+kerning first=78 second=107 amount=1
+kerning first=78 second=66 amount=1
+kerning first=78 second=104 amount=1
+kerning first=78 second=102 amount=1
+kerning first=78 second=93 amount=1
+kerning first=78 second=49 amount=-2
+kerning first=78 second=73 amount=1
+kerning first=78 second=33 amount=1
+kerning first=78 second=54 amount=-1
+kerning first=78 second=57 amount=-1
+kerning first=78 second=112 amount=1
+kerning first=78 second=98 amount=1
+kerning first=78 second=41 amount=1
+kerning first=78 second=105 amount=1
+kerning first=78 second=116 amount=1
+kerning first=78 second=121 amount=1
+kerning first=78 second=103 amount=1
+kerning first=78 second=59 amount=1
+kerning first=78 second=119 amount=1
+kerning first=78 second=122 amount=1
+kerning first=78 second=110 amount=1
+kerning first=78 second=120 amount=2
+kerning first=78 second=114 amount=1
+kerning first=78 second=117 amount=1
+kerning first=78 second=118 amount=1
+kerning first=78 second=111 amount=1
+kerning first=78 second=99 amount=1
+kerning first=78 second=97 amount=1
+kerning first=78 second=115 amount=1
+kerning first=78 second=58 amount=1
+kerning first=78 second=34 amount=1
+kerning first=78 second=39 amount=1
+kerning first=78 second=46 amount=1
+kerning first=53 second=81 amount=-1
+kerning first=53 second=90 amount=-1
+kerning first=53 second=65 amount=-3
+kerning first=53 second=86 amount=1
+kerning first=53 second=83 amount=-1
+kerning first=53 second=74 amount=-1
+kerning first=53 second=63 amount=-1
+kerning first=53 second=64 amount=-2
+kerning first=53 second=47 amount=-3
+kerning first=53 second=71 amount=-1
+kerning first=53 second=79 amount=-1
+kerning first=53 second=100 amount=-1
+kerning first=53 second=113 amount=-1
+kerning first=53 second=112 amount=-1
+kerning first=53 second=103 amount=-1
+kerning first=53 second=59 amount=-1
+kerning first=53 second=109 amount=-1
+kerning first=53 second=122 amount=-2
+kerning first=53 second=110 amount=-1
+kerning first=53 second=120 amount=-1
+kerning first=53 second=114 amount=-1
+kerning first=53 second=117 amount=-1
+kerning first=53 second=111 amount=-1
+kerning first=53 second=101 amount=-1
+kerning first=53 second=99 amount=-1
+kerning first=53 second=35 amount=-1
+kerning first=53 second=97 amount=-1
+kerning first=53 second=115 amount=-1
+kerning first=53 second=58 amount=-1
+kerning first=53 second=34 amount=1
+kerning first=53 second=39 amount=1
+kerning first=53 second=44 amount=-4
+kerning first=53 second=45 amount=-1
+kerning first=53 second=46 amount=-3
+kerning first=85 second=106 amount=1
+kerning first=85 second=87 amount=1
+kerning first=85 second=88 amount=1
+kerning first=85 second=89 amount=1
+kerning first=85 second=65 amount=-1
+kerning first=85 second=75 amount=1
+kerning first=85 second=86 amount=1
+kerning first=85 second=85 amount=1
+kerning first=85 second=84 amount=1
+kerning first=85 second=68 amount=1
+kerning first=85 second=76 amount=1
+kerning first=85 second=56 amount=-1
+kerning first=85 second=80 amount=1
+kerning first=85 second=63 amount=1
+kerning first=85 second=108 amount=1
+kerning first=85 second=82 amount=1
+kerning first=85 second=50 amount=-1
+kerning first=85 second=92 amount=1
+kerning first=85 second=47 amount=-1
+kerning first=85 second=71 amount=1
+kerning first=85 second=107 amount=1
+kerning first=85 second=66 amount=1
+kerning first=85 second=102 amount=1
+kerning first=85 second=93 amount=1
+kerning first=85 second=49 amount=-2
+kerning first=85 second=73 amount=1
+kerning first=85 second=33 amount=1
+kerning first=85 second=51 amount=-1
+kerning first=85 second=54 amount=-1
+kerning first=85 second=57 amount=-1
+kerning first=85 second=67 amount=1
+kerning first=85 second=112 amount=1
+kerning first=85 second=98 amount=1
+kerning first=85 second=40 amount=1
+kerning first=85 second=41 amount=1
+kerning first=85 second=105 amount=1
+kerning first=85 second=116 amount=1
+kerning first=85 second=121 amount=1
+kerning first=85 second=119 amount=2
+kerning first=85 second=110 amount=1
+kerning first=85 second=120 amount=1
+kerning first=85 second=114 amount=1
+kerning first=85 second=117 amount=1
+kerning first=85 second=118 amount=2
+kerning first=85 second=97 amount=1
+kerning first=85 second=34 amount=1
+kerning first=85 second=39 amount=1
+kerning first=85 second=44 amount=-2
+kerning first=85 second=46 amount=-1
+kerning first=55 second=106 amount=-1
+kerning first=55 second=81 amount=-2
+kerning first=55 second=77 amount=-1
+kerning first=55 second=90 amount=-2
+kerning first=55 second=89 amount=-1
+kerning first=55 second=65 amount=-4
+kerning first=55 second=78 amount=-1
+kerning first=55 second=83 amount=-2
+kerning first=55 second=68 amount=-1
+kerning first=55 second=74 amount=-3
+kerning first=55 second=63 amount=-1
+kerning first=55 second=69 amount=-1
+kerning first=55 second=64 amount=-5
+kerning first=55 second=47 amount=-5
+kerning first=55 second=71 amount=-1
+kerning first=55 second=104 amount=-1
+kerning first=55 second=72 amount=-1
+kerning first=55 second=102 amount=-3
+kerning first=55 second=79 amount=-1
+kerning first=55 second=67 amount=-1
+kerning first=55 second=70 amount=-1
+kerning first=55 second=100 amount=-4
+kerning first=55 second=113 amount=-4
+kerning first=55 second=112 amount=-3
+kerning first=55 second=40 amount=-1
+kerning first=55 second=105 amount=-1
+kerning first=55 second=116 amount=-3
+kerning first=55 second=121 amount=-2
+kerning first=55 second=103 amount=-4
+kerning first=55 second=59 amount=-3
+kerning first=55 second=119 amount=-2
+kerning first=55 second=109 amount=-3
+kerning first=55 second=122 amount=-4
+kerning first=55 second=110 amount=-3
+kerning first=55 second=120 amount=-3
+kerning first=55 second=114 amount=-3
+kerning first=55 second=117 amount=-3
+kerning first=55 second=118 amount=-2
+kerning first=55 second=111 amount=-4
+kerning first=55 second=101 amount=-4
+kerning first=55 second=99 amount=-4
+kerning first=55 second=35 amount=-3
+kerning first=55 second=97 amount=-4
+kerning first=55 second=115 amount=-4
+kerning first=55 second=58 amount=-4
+kerning first=55 second=39 amount=1
+kerning first=55 second=44 amount=-5
+kerning first=55 second=45 amount=-4
+kerning first=55 second=46 amount=-6
+kerning first=84 second=87 amount=1
+kerning first=84 second=81 amount=-1
+kerning first=84 second=90 amount=-1
+kerning first=84 second=88 amount=1
+kerning first=84 second=65 amount=-3
+kerning first=84 second=75 amount=1
+kerning first=84 second=86 amount=1
+kerning first=84 second=52 amount=-3
+kerning first=84 second=53 amount=-1
+kerning first=84 second=85 amount=1
+kerning first=84 second=83 amount=-1
+kerning first=84 second=48 amount=-1
+kerning first=84 second=76 amount=1
+kerning first=84 second=74 amount=-3
+kerning first=84 second=56 amount=-1
+kerning first=84 second=80 amount=1
+kerning first=84 second=108 amount=1
+kerning first=84 second=64 amount=-4
+kerning first=84 second=82 amount=1
+kerning first=84 second=50 amount=-3
+kerning first=84 second=92 amount=1
+kerning first=84 second=47 amount=-3
+kerning first=84 second=107 amount=1
+kerning first=84 second=66 amount=1
+kerning first=84 second=102 amount=-2
+kerning first=84 second=93 amount=1
+kerning first=84 second=49 amount=-2
+kerning first=84 second=73 amount=1
+kerning first=84 second=33 amount=1
+kerning first=84 second=51 amount=-2
+kerning first=84 second=54 amount=-2
+kerning first=84 second=57 amount=-1
+kerning first=84 second=100 amount=-3
+kerning first=84 second=113 amount=-3
+kerning first=84 second=112 amount=-3
+kerning first=84 second=98 amount=1
+kerning first=84 second=41 amount=1
+kerning first=84 second=116 amount=-2
+kerning first=84 second=121 amount=-3
+kerning first=84 second=103 amount=-3
+kerning first=84 second=59 amount=-2
+kerning first=84 second=119 amount=-2
+kerning first=84 second=109 amount=-4
+kerning first=84 second=122 amount=-3
+kerning first=84 second=110 amount=-3
+kerning first=84 second=120 amount=-2
+kerning first=84 second=114 amount=-3
+kerning first=84 second=117 amount=-3
+kerning first=84 second=118 amount=-2
+kerning first=84 second=111 amount=-3
+kerning first=84 second=101 amount=-3
+kerning first=84 second=99 amount=-3
+kerning first=84 second=35 amount=-2
+kerning first=84 second=97 amount=-3
+kerning first=84 second=115 amount=-3
+kerning first=84 second=58 amount=-3
+kerning first=84 second=34 amount=1
+kerning first=84 second=39 amount=1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=45 amount=-4
+kerning first=84 second=46 amount=-3
+kerning first=83 second=106 amount=1
+kerning first=83 second=90 amount=1
+kerning first=83 second=88 amount=1
+kerning first=83 second=89 amount=-1
+kerning first=83 second=53 amount=1
+kerning first=83 second=83 amount=1
+kerning first=83 second=74 amount=1
+kerning first=83 second=108 amount=1
+kerning first=83 second=71 amount=1
+kerning first=83 second=107 amount=1
+kerning first=83 second=104 amount=1
+kerning first=83 second=49 amount=-3
+kerning first=83 second=33 amount=1
+kerning first=83 second=67 amount=1
+kerning first=83 second=100 amount=1
+kerning first=83 second=113 amount=1
+kerning first=83 second=112 amount=1
+kerning first=83 second=98 amount=1
+kerning first=83 second=40 amount=1
+kerning first=83 second=41 amount=1
+kerning first=83 second=105 amount=1
+kerning first=83 second=116 amount=-1
+kerning first=83 second=121 amount=1
+kerning first=83 second=103 amount=1
+kerning first=83 second=119 amount=1
+kerning first=83 second=122 amount=1
+kerning first=83 second=110 amount=1
+kerning first=83 second=120 amount=1
+kerning first=83 second=114 amount=1
+kerning first=83 second=117 amount=1
+kerning first=83 second=118 amount=1
+kerning first=83 second=111 amount=1
+kerning first=83 second=101 amount=1
+kerning first=83 second=99 amount=1
+kerning first=83 second=97 amount=1
+kerning first=83 second=115 amount=1
+kerning first=83 second=46 amount=1
+kerning first=48 second=87 amount=-1
+kerning first=48 second=77 amount=-1
+kerning first=48 second=90 amount=-1
+kerning first=48 second=88 amount=-1
+kerning first=48 second=89 amount=-2
+kerning first=48 second=65 amount=-2
+kerning first=48 second=75 amount=-1
+kerning first=48 second=86 amount=-2
+kerning first=48 second=78 amount=-1
+kerning first=48 second=85 amount=-1
+kerning first=48 second=84 amount=-1
+kerning first=48 second=68 amount=-1
+kerning first=48 second=76 amount=-1
+kerning first=48 second=74 amount=-1
+kerning first=48 second=80 amount=-1
+kerning first=48 second=63 amount=-1
+kerning first=48 second=69 amount=-1
+kerning first=48 second=64 amount=-1
+kerning first=48 second=82 amount=-1
+kerning first=48 second=92 amount=-2
+kerning first=48 second=47 amount=-2
+kerning first=48 second=66 amount=-1
+kerning first=48 second=104 amount=-1
+kerning first=48 second=93 amount=-2
+kerning first=48 second=73 amount=-1
+kerning first=48 second=70 amount=-1
+kerning first=48 second=98 amount=-1
+kerning first=48 second=41 amount=-1
+kerning first=48 second=116 amount=1
+kerning first=48 second=119 amount=1
+kerning first=48 second=109 amount=-1
+kerning first=48 second=122 amount=-1
+kerning first=48 second=118 amount=1
+kerning first=48 second=115 amount=-1
+kerning first=48 second=58 amount=-1
+kerning first=48 second=34 amount=-1
+kerning first=48 second=39 amount=-1
+kerning first=48 second=44 amount=-2
+kerning first=48 second=46 amount=-1
+kerning first=68 second=106 amount=1
+kerning first=68 second=87 amount=1
+kerning first=68 second=90 amount=-1
+kerning first=68 second=65 amount=-2
+kerning first=68 second=75 amount=1
+kerning first=68 second=86 amount=1
+kerning first=68 second=52 amount=-1
+kerning first=68 second=53 amount=-1
+kerning first=68 second=85 amount=1
+kerning first=68 second=84 amount=1
+kerning first=68 second=76 amount=1
+kerning first=68 second=74 amount=-1
+kerning first=68 second=80 amount=1
+kerning first=68 second=63 amount=1
+kerning first=68 second=108 amount=1
+kerning first=68 second=64 amount=-1
+kerning first=68 second=82 amount=1
+kerning first=68 second=50 amount=-1
+kerning first=68 second=47 amount=-3
+kerning first=68 second=107 amount=1
+kerning first=68 second=66 amount=1
+kerning first=68 second=104 amount=1
+kerning first=68 second=102 amount=1
+kerning first=68 second=49 amount=-2
+kerning first=68 second=73 amount=1
+kerning first=68 second=33 amount=1
+kerning first=68 second=54 amount=-1
+kerning first=68 second=67 amount=1
+kerning first=68 second=112 amount=1
+kerning first=68 second=98 amount=1
+kerning first=68 second=40 amount=1
+kerning first=68 second=105 amount=1
+kerning first=68 second=116 amount=1
+kerning first=68 second=121 amount=1
+kerning first=68 second=119 amount=2
+kerning first=68 second=110 amount=1
+kerning first=68 second=120 amount=1
+kerning first=68 second=114 amount=1
+kerning first=68 second=117 amount=1
+kerning first=68 second=118 amount=2
+kerning first=68 second=101 amount=-1
+kerning first=68 second=34 amount=1
+kerning first=68 second=39 amount=1
+kerning first=68 second=44 amount=-4
+kerning first=68 second=46 amount=-3
+kerning first=76 second=106 amount=1
+kerning first=76 second=87 amount=-2
+kerning first=76 second=90 amount=1
+kerning first=76 second=88 amount=1
+kerning first=76 second=89 amount=-3
+kerning first=76 second=86 amount=-2
+kerning first=76 second=52 amount=-1
+kerning first=76 second=53 amount=1
+kerning first=76 second=84 amount=-2
+kerning first=76 second=83 amount=1
+kerning first=76 second=63 amount=-2
+kerning first=76 second=108 amount=1
+kerning first=76 second=92 amount=-4
+kerning first=76 second=47 amount=1
+kerning first=76 second=107 amount=1
+kerning first=76 second=104 amount=1
+kerning first=76 second=102 amount=-1
+kerning first=76 second=49 amount=-3
+kerning first=76 second=33 amount=1
+kerning first=76 second=54 amount=-1
+kerning first=76 second=67 amount=1
+kerning first=76 second=100 amount=1
+kerning first=76 second=113 amount=1
+kerning first=76 second=112 amount=1
+kerning first=76 second=98 amount=1
+kerning first=76 second=41 amount=1
+kerning first=76 second=105 amount=1
+kerning first=76 second=116 amount=-1
+kerning first=76 second=121 amount=-1
+kerning first=76 second=103 amount=1
+kerning first=76 second=59 amount=1
+kerning first=76 second=122 amount=1
+kerning first=76 second=110 amount=1
+kerning first=76 second=120 amount=1
+kerning first=76 second=114 amount=1
+kerning first=76 second=117 amount=1
+kerning first=76 second=111 amount=1
+kerning first=76 second=101 amount=1
+kerning first=76 second=99 amount=1
+kerning first=76 second=35 amount=-4
+kerning first=76 second=97 amount=2
+kerning first=76 second=115 amount=1
+kerning first=76 second=58 amount=1
+kerning first=76 second=34 amount=-4
+kerning first=76 second=39 amount=-4
+kerning first=76 second=44 amount=1
+kerning first=76 second=45 amount=-4
+kerning first=76 second=46 amount=1
+kerning first=74 second=106 amount=1
+kerning first=74 second=87 amount=1
+kerning first=74 second=77 amount=1
+kerning first=74 second=88 amount=1
+kerning first=74 second=89 amount=1
+kerning first=74 second=75 amount=1
+kerning first=74 second=86 amount=1
+kerning first=74 second=78 amount=1
+kerning first=74 second=85 amount=1
+kerning first=74 second=84 amount=1
+kerning first=74 second=68 amount=1
+kerning first=74 second=76 amount=1
+kerning first=74 second=56 amount=-1
+kerning first=74 second=80 amount=1
+kerning first=74 second=63 amount=1
+kerning first=74 second=69 amount=1
+kerning first=74 second=108 amount=1
+kerning first=74 second=82 amount=1
+kerning first=74 second=92 amount=1
+kerning first=74 second=71 amount=1
+kerning first=74 second=107 amount=1
+kerning first=74 second=66 amount=1
+kerning first=74 second=104 amount=1
+kerning first=74 second=72 amount=1
+kerning first=74 second=102 amount=1
+kerning first=74 second=93 amount=1
+kerning first=74 second=49 amount=-2
+kerning first=74 second=73 amount=1
+kerning first=74 second=33 amount=1
+kerning first=74 second=51 amount=-1
+kerning first=74 second=54 amount=-1
+kerning first=74 second=57 amount=-1
+kerning first=74 second=67 amount=1
+kerning first=74 second=98 amount=1
+kerning first=74 second=41 amount=1
+kerning first=74 second=105 amount=1
+kerning first=74 second=116 amount=1
+kerning first=74 second=121 amount=1
+kerning first=74 second=119 amount=1
+kerning first=74 second=120 amount=1
+kerning first=74 second=114 amount=1
+kerning first=74 second=118 amount=1
+kerning first=74 second=111 amount=1
+kerning first=74 second=97 amount=1
+kerning first=74 second=115 amount=1
+kerning first=74 second=34 amount=1
+kerning first=74 second=39 amount=1
+kerning first=56 second=106 amount=-1
+kerning first=56 second=87 amount=-1
+kerning first=56 second=81 amount=-1
+kerning first=56 second=77 amount=-2
+kerning first=56 second=90 amount=-1
+kerning first=56 second=88 amount=-1
+kerning first=56 second=89 amount=-2
+kerning first=56 second=65 amount=-2
+kerning first=56 second=75 amount=-2
+kerning first=56 second=86 amount=-1
+kerning first=56 second=78 amount=-2
+kerning first=56 second=85 amount=-1
+kerning first=56 second=84 amount=-1
+kerning first=56 second=83 amount=-1
+kerning first=56 second=68 amount=-2
+kerning first=56 second=76 amount=-2
+kerning first=56 second=74 amount=-1
+kerning first=56 second=80 amount=-1
+kerning first=56 second=63 amount=-1
+kerning first=56 second=69 amount=-1
+kerning first=56 second=108 amount=-1
+kerning first=56 second=64 amount=-2
+kerning first=56 second=82 amount=-1
+kerning first=56 second=92 amount=-2
+kerning first=56 second=47 amount=-2
+kerning first=56 second=71 amount=-1
+kerning first=56 second=107 amount=-1
+kerning first=56 second=66 amount=-1
+kerning first=56 second=104 amount=-1
+kerning first=56 second=72 amount=-2
+kerning first=56 second=102 amount=-2
+kerning first=56 second=93 amount=-2
+kerning first=56 second=73 amount=-1
+kerning first=56 second=33 amount=-1
+kerning first=56 second=79 amount=-2
+kerning first=56 second=67 amount=-1
+kerning first=56 second=70 amount=-2
+kerning first=56 second=100 amount=-1
+kerning first=56 second=113 amount=-1
+kerning first=56 second=112 amount=-1
+kerning first=56 second=98 amount=-1
+kerning first=56 second=40 amount=-1
+kerning first=56 second=41 amount=-2
+kerning first=56 second=105 amount=-1
+kerning first=56 second=116 amount=-2
+kerning first=56 second=121 amount=-1
+kerning first=56 second=103 amount=-1
+kerning first=56 second=59 amount=-2
+kerning first=56 second=119 amount=-1
+kerning first=56 second=109 amount=-2
+kerning first=56 second=122 amount=-2
+kerning first=56 second=110 amount=-1
+kerning first=56 second=120 amount=-2
+kerning first=56 second=114 amount=-1
+kerning first=56 second=117 amount=-1
+kerning first=56 second=118 amount=-1
+kerning first=56 second=111 amount=-1
+kerning first=56 second=101 amount=-1
+kerning first=56 second=99 amount=-1
+kerning first=56 second=35 amount=-2
+kerning first=56 second=97 amount=-1
+kerning first=56 second=115 amount=-1
+kerning first=56 second=58 amount=-2
+kerning first=56 second=34 amount=-1
+kerning first=56 second=39 amount=-1
+kerning first=56 second=44 amount=-3
+kerning first=56 second=45 amount=-1
+kerning first=56 second=46 amount=-2
+kerning first=80 second=106 amount=1
+kerning first=80 second=87 amount=1
+kerning first=80 second=77 amount=1
+kerning first=80 second=88 amount=1
+kerning first=80 second=89 amount=1
+kerning first=80 second=65 amount=-2
+kerning first=80 second=75 amount=1
+kerning first=80 second=86 amount=2
+kerning first=80 second=52 amount=-2
+kerning first=80 second=78 amount=1
+kerning first=80 second=85 amount=1
+kerning first=80 second=84 amount=1
+kerning first=80 second=68 amount=1
+kerning first=80 second=76 amount=1
+kerning first=80 second=74 amount=-3
+kerning first=80 second=80 amount=1
+kerning first=80 second=63 amount=1
+kerning first=80 second=69 amount=1
+kerning first=80 second=108 amount=1
+kerning first=80 second=64 amount=-2
+kerning first=80 second=82 amount=1
+kerning first=80 second=50 amount=-1
+kerning first=80 second=92 amount=1
+kerning first=80 second=47 amount=-4
+kerning first=80 second=71 amount=1
+kerning first=80 second=107 amount=1
+kerning first=80 second=66 amount=1
+kerning first=80 second=104 amount=1
+kerning first=80 second=72 amount=1
+kerning first=80 second=93 amount=1
+kerning first=80 second=49 amount=-1
+kerning first=80 second=73 amount=1
+kerning first=80 second=33 amount=1
+kerning first=80 second=79 amount=1
+kerning first=80 second=54 amount=-1
+kerning first=80 second=67 amount=1
+kerning first=80 second=70 amount=1
+kerning first=80 second=100 amount=-1
+kerning first=80 second=113 amount=-1
+kerning first=80 second=98 amount=1
+kerning first=80 second=40 amount=1
+kerning first=80 second=41 amount=1
+kerning first=80 second=105 amount=1
+kerning first=80 second=116 amount=1
+kerning first=80 second=121 amount=1
+kerning first=80 second=103 amount=-1
+kerning first=80 second=119 amount=1
+kerning first=80 second=122 amount=-1
+kerning first=80 second=118 amount=1
+kerning first=80 second=111 amount=-1
+kerning first=80 second=101 amount=-1
+kerning first=80 second=99 amount=-1
+kerning first=80 second=115 amount=-1
+kerning first=80 second=58 amount=-1
+kerning first=80 second=34 amount=2
+kerning first=80 second=39 amount=2
+kerning first=80 second=44 amount=-4
+kerning first=80 second=45 amount=-2
+kerning first=80 second=46 amount=-5
+kerning first=63 second=87 amount=1
+kerning first=63 second=90 amount=-1
+kerning first=63 second=88 amount=1
+kerning first=63 second=65 amount=-2
+kerning first=63 second=75 amount=1
+kerning first=63 second=86 amount=1
+kerning first=63 second=52 amount=-2
+kerning first=63 second=53 amount=-1
+kerning first=63 second=85 amount=1
+kerning first=63 second=84 amount=1
+kerning first=63 second=48 amount=-1
+kerning first=63 second=74 amount=-2
+kerning first=63 second=56 amount=-1
+kerning first=63 second=80 amount=1
+kerning first=63 second=63 amount=1
+kerning first=63 second=108 amount=1
+kerning first=63 second=64 amount=-3
+kerning first=63 second=82 amount=1
+kerning first=63 second=50 amount=-1
+kerning first=63 second=92 amount=1
+kerning first=63 second=47 amount=-2
+kerning first=63 second=107 amount=1
+kerning first=63 second=66 amount=1
+kerning first=63 second=102 amount=-1
+kerning first=63 second=93 amount=1
+kerning first=63 second=49 amount=-2
+kerning first=63 second=73 amount=1
+kerning first=63 second=33 amount=1
+kerning first=63 second=51 amount=-1
+kerning first=63 second=54 amount=-1
+kerning first=63 second=57 amount=-1
+kerning first=63 second=100 amount=-2
+kerning first=63 second=113 amount=-1
+kerning first=63 second=98 amount=1
+kerning first=63 second=105 amount=1
+kerning first=63 second=103 amount=-2
+kerning first=63 second=59 amount=-1
+kerning first=63 second=119 amount=1
+kerning first=63 second=122 amount=-1
+kerning first=63 second=118 amount=1
+kerning first=63 second=111 amount=-1
+kerning first=63 second=101 amount=-2
+kerning first=63 second=99 amount=-2
+kerning first=63 second=35 amount=-1
+kerning first=63 second=97 amount=-1
+kerning first=63 second=115 amount=-2
+kerning first=63 second=58 amount=-1
+kerning first=63 second=34 amount=1
+kerning first=63 second=39 amount=1
+kerning first=63 second=44 amount=-1
+kerning first=63 second=45 amount=-2
+kerning first=63 second=46 amount=-1
+kerning first=69 second=87 amount=1
+kerning first=69 second=81 amount=-1
+kerning first=69 second=90 amount=1
+kerning first=69 second=88 amount=1
+kerning first=69 second=75 amount=1
+kerning first=69 second=86 amount=1
+kerning first=69 second=52 amount=-1
+kerning first=69 second=85 amount=1
+kerning first=69 second=48 amount=-1
+kerning first=69 second=76 amount=1
+kerning first=69 second=74 amount=-1
+kerning first=69 second=56 amount=-1
+kerning first=69 second=80 amount=1
+kerning first=69 second=63 amount=-1
+kerning first=69 second=108 amount=1
+kerning first=69 second=64 amount=-1
+kerning first=69 second=82 amount=1
+kerning first=69 second=92 amount=1
+kerning first=69 second=107 amount=1
+kerning first=69 second=66 amount=1
+kerning first=69 second=102 amount=-1
+kerning first=69 second=93 amount=1
+kerning first=69 second=49 amount=-2
+kerning first=69 second=73 amount=1
+kerning first=69 second=33 amount=1
+kerning first=69 second=51 amount=-1
+kerning first=69 second=54 amount=-1
+kerning first=69 second=57 amount=-1
+kerning first=69 second=98 amount=1
+kerning first=69 second=41 amount=1
+kerning first=69 second=105 amount=1
+kerning first=69 second=121 amount=-1
+kerning first=69 second=120 amount=1
+kerning first=69 second=118 amount=-1
+kerning first=69 second=35 amount=-1
+kerning first=69 second=97 amount=1
+kerning first=69 second=34 amount=1
+kerning first=69 second=39 amount=1
+kerning first=69 second=46 amount=1
+kerning first=108 second=106 amount=1
+kerning first=108 second=63 amount=1
+kerning first=108 second=108 amount=1
+kerning first=108 second=50 amount=1
+kerning first=108 second=92 amount=1
+kerning first=108 second=47 amount=1
+kerning first=108 second=107 amount=1
+kerning first=108 second=104 amount=1
+kerning first=108 second=102 amount=1
+kerning first=108 second=93 amount=1
+kerning first=108 second=49 amount=-2
+kerning first=108 second=33 amount=1
+kerning first=108 second=100 amount=1
+kerning first=108 second=113 amount=1
+kerning first=108 second=112 amount=1
+kerning first=108 second=98 amount=1
+kerning first=108 second=40 amount=1
+kerning first=108 second=41 amount=1
+kerning first=108 second=105 amount=1
+kerning first=108 second=116 amount=2
+kerning first=108 second=121 amount=1
+kerning first=108 second=103 amount=1
+kerning first=108 second=59 amount=2
+kerning first=108 second=119 amount=2
+kerning first=108 second=122 amount=1
+kerning first=108 second=110 amount=1
+kerning first=108 second=120 amount=2
+kerning first=108 second=114 amount=1
+kerning first=108 second=117 amount=1
+kerning first=108 second=118 amount=2
+kerning first=108 second=111 amount=1
+kerning first=108 second=101 amount=1
+kerning first=108 second=99 amount=1
+kerning first=108 second=35 amount=1
+kerning first=108 second=97 amount=1
+kerning first=108 second=115 amount=1
+kerning first=108 second=58 amount=1
+kerning first=108 second=34 amount=1
+kerning first=108 second=39 amount=1
+kerning first=108 second=44 amount=1
+kerning first=108 second=45 amount=1
+kerning first=108 second=46 amount=1
+kerning first=64 second=106 amount=1
+kerning first=64 second=87 amount=-1
+kerning first=64 second=81 amount=1
+kerning first=64 second=90 amount=-1
+kerning first=64 second=88 amount=-2
+kerning first=64 second=89 amount=-2
+kerning first=64 second=65 amount=-1
+kerning first=64 second=86 amount=-1
+kerning first=64 second=52 amount=1
+kerning first=64 second=55 amount=-2
+kerning first=64 second=84 amount=-2
+kerning first=64 second=74 amount=1
+kerning first=64 second=56 amount=-1
+kerning first=64 second=63 amount=-1
+kerning first=64 second=108 amount=1
+kerning first=64 second=50 amount=-3
+kerning first=64 second=92 amount=-3
+kerning first=64 second=47 amount=-1
+kerning first=64 second=71 amount=1
+kerning first=64 second=107 amount=1
+kerning first=64 second=72 amount=1
+kerning first=64 second=102 amount=1
+kerning first=64 second=93 amount=-3
+kerning first=64 second=49 amount=-4
+kerning first=64 second=33 amount=1
+kerning first=64 second=79 amount=1
+kerning first=64 second=51 amount=-2
+kerning first=64 second=57 amount=-1
+kerning first=64 second=67 amount=1
+kerning first=64 second=100 amount=1
+kerning first=64 second=113 amount=1
+kerning first=64 second=40 amount=1
+kerning first=64 second=41 amount=-1
+kerning first=64 second=105 amount=1
+kerning first=64 second=116 amount=2
+kerning first=64 second=121 amount=1
+kerning first=64 second=103 amount=1
+kerning first=64 second=119 amount=1
+kerning first=64 second=122 amount=-1
+kerning first=64 second=110 amount=1
+kerning first=64 second=114 amount=1
+kerning first=64 second=117 amount=1
+kerning first=64 second=118 amount=1
+kerning first=64 second=111 amount=1
+kerning first=64 second=101 amount=1
+kerning first=64 second=99 amount=1
+kerning first=64 second=35 amount=1
+kerning first=64 second=97 amount=1
+kerning first=64 second=34 amount=-2
+kerning first=64 second=39 amount=-2
+kerning first=64 second=44 amount=-3
+kerning first=64 second=45 amount=1
+kerning first=64 second=46 amount=-2
+kerning first=82 second=106 amount=1
+kerning first=82 second=77 amount=1
+kerning first=82 second=90 amount=2
+kerning first=82 second=88 amount=2
+kerning first=82 second=89 amount=-1
+kerning first=82 second=65 amount=1
+kerning first=82 second=75 amount=1
+kerning first=82 second=52 amount=-3
+kerning first=82 second=78 amount=1
+kerning first=82 second=53 amount=1
+kerning first=82 second=55 amount=1
+kerning first=82 second=68 amount=1
+kerning first=82 second=76 amount=1
+kerning first=82 second=74 amount=-1
+kerning first=82 second=80 amount=1
+kerning first=82 second=63 amount=-1
+kerning first=82 second=69 amount=1
+kerning first=82 second=108 amount=2
+kerning first=82 second=82 amount=1
+kerning first=82 second=50 amount=1
+kerning first=82 second=92 amount=-1
+kerning first=82 second=47 amount=1
+kerning first=82 second=107 amount=1
+kerning first=82 second=66 amount=1
+kerning first=82 second=104 amount=1
+kerning first=82 second=72 amount=1
+kerning first=82 second=93 amount=1
+kerning first=82 second=49 amount=-2
+kerning first=82 second=73 amount=1
+kerning first=82 second=33 amount=1
+kerning first=82 second=54 amount=-1
+kerning first=82 second=57 amount=-1
+kerning first=82 second=67 amount=1
+kerning first=82 second=70 amount=1
+kerning first=82 second=100 amount=1
+kerning first=82 second=113 amount=1
+kerning first=82 second=112 amount=1
+kerning first=82 second=98 amount=2
+kerning first=82 second=40 amount=1
+kerning first=82 second=41 amount=2
+kerning first=82 second=105 amount=1
+kerning first=82 second=121 amount=-1
+kerning first=82 second=103 amount=1
+kerning first=82 second=59 amount=1
+kerning first=82 second=122 amount=2
+kerning first=82 second=110 amount=1
+kerning first=82 second=120 amount=2
+kerning first=82 second=114 amount=1
+kerning first=82 second=117 amount=1
+kerning first=82 second=111 amount=1
+kerning first=82 second=101 amount=1
+kerning first=82 second=99 amount=1
+kerning first=82 second=35 amount=-3
+kerning first=82 second=97 amount=2
+kerning first=82 second=115 amount=1
+kerning first=82 second=58 amount=1
+kerning first=82 second=44 amount=2
+kerning first=82 second=45 amount=-4
+kerning first=82 second=46 amount=2
+kerning first=50 second=106 amount=1
+kerning first=50 second=81 amount=-1
+kerning first=50 second=90 amount=1
+kerning first=50 second=88 amount=1
+kerning first=50 second=74 amount=-1
+kerning first=50 second=108 amount=1
+kerning first=50 second=47 amount=1
+kerning first=50 second=107 amount=1
+kerning first=50 second=98 amount=1
+kerning first=50 second=41 amount=1
+kerning first=50 second=105 amount=1
+kerning first=50 second=119 amount=1
+kerning first=50 second=122 amount=1
+kerning first=50 second=110 amount=1
+kerning first=50 second=120 amount=1
+kerning first=50 second=118 amount=1
+kerning first=50 second=35 amount=-1
+kerning first=50 second=97 amount=1
+kerning first=50 second=115 amount=1
+kerning first=50 second=34 amount=1
+kerning first=50 second=39 amount=1
+kerning first=50 second=45 amount=-2
+kerning first=50 second=46 amount=1
+kerning first=92 second=87 amount=-3
+kerning first=92 second=81 amount=-1
+kerning first=92 second=88 amount=1
+kerning first=92 second=89 amount=-3
+kerning first=92 second=86 amount=-2
+kerning first=92 second=52 amount=-2
+kerning first=92 second=85 amount=-1
+kerning first=92 second=84 amount=-2
+kerning first=92 second=83 amount=-1
+kerning first=92 second=48 amount=-1
+kerning first=92 second=74 amount=-2
+kerning first=92 second=56 amount=-1
+kerning first=92 second=63 amount=-2
+kerning first=92 second=108 amount=1
+kerning first=92 second=64 amount=-1
+kerning first=92 second=92 amount=-5
+kerning first=92 second=71 amount=-1
+kerning first=92 second=102 amount=-2
+kerning first=92 second=93 amount=-1
+kerning first=92 second=49 amount=-3
+kerning first=92 second=79 amount=-1
+kerning first=92 second=51 amount=-1
+kerning first=92 second=54 amount=-2
+kerning first=92 second=57 amount=-1
+kerning first=92 second=116 amount=-1
+kerning first=92 second=121 amount=-2
+kerning first=92 second=59 amount=1
+kerning first=92 second=119 amount=-1
+kerning first=92 second=122 amount=1
+kerning first=92 second=110 amount=1
+kerning first=92 second=120 amount=1
+kerning first=92 second=114 amount=1
+kerning first=92 second=118 amount=-1
+kerning first=92 second=35 amount=-3
+kerning first=92 second=97 amount=1
+kerning first=92 second=115 amount=1
+kerning first=92 second=58 amount=1
+kerning first=92 second=34 amount=-6
+kerning first=92 second=39 amount=-4
+kerning first=92 second=44 amount=1
+kerning first=92 second=45 amount=-2
+kerning first=92 second=46 amount=1
+kerning first=47 second=87 amount=1
+kerning first=47 second=81 amount=-2
+kerning first=47 second=90 amount=-1
+kerning first=47 second=88 amount=1
+kerning first=47 second=65 amount=-4
+kerning first=47 second=75 amount=1
+kerning first=47 second=86 amount=1
+kerning first=47 second=52 amount=-4
+kerning first=47 second=53 amount=-1
+kerning first=47 second=55 amount=-1
+kerning first=47 second=83 amount=-1
+kerning first=47 second=48 amount=-2
+kerning first=47 second=76 amount=1
+kerning first=47 second=74 amount=-5
+kerning first=47 second=56 amount=-2
+kerning first=47 second=63 amount=-1
+kerning first=47 second=64 amount=-5
+kerning first=47 second=50 amount=-3
+kerning first=47 second=47 amount=-6
+kerning first=47 second=71 amount=-1
+kerning first=47 second=66 amount=1
+kerning first=47 second=102 amount=-2
+kerning first=47 second=49 amount=-3
+kerning first=47 second=79 amount=-1
+kerning first=47 second=51 amount=-2
+kerning first=47 second=54 amount=-2
+kerning first=47 second=57 amount=-2
+kerning first=47 second=67 amount=-1
+kerning first=47 second=100 amount=-4
+kerning first=47 second=113 amount=-3
+kerning first=47 second=112 amount=-2
+kerning first=47 second=40 amount=-1
+kerning first=47 second=116 amount=-2
+kerning first=47 second=121 amount=-2
+kerning first=47 second=103 amount=-4
+kerning first=47 second=59 amount=-3
+kerning first=47 second=119 amount=-1
+kerning first=47 second=109 amount=-2
+kerning first=47 second=122 amount=-4
+kerning first=47 second=110 amount=-2
+kerning first=47 second=120 amount=-2
+kerning first=47 second=114 amount=-2
+kerning first=47 second=117 amount=-2
+kerning first=47 second=118 amount=-1
+kerning first=47 second=111 amount=-3
+kerning first=47 second=101 amount=-4
+kerning first=47 second=99 amount=-4
+kerning first=47 second=35 amount=-3
+kerning first=47 second=97 amount=-3
+kerning first=47 second=115 amount=-4
+kerning first=47 second=58 amount=-3
+kerning first=47 second=34 amount=1
+kerning first=47 second=39 amount=1
+kerning first=47 second=44 amount=-4
+kerning first=47 second=45 amount=-4
+kerning first=47 second=46 amount=-5
+kerning first=71 second=106 amount=1
+kerning first=71 second=81 amount=1
+kerning first=71 second=90 amount=-1
+kerning first=71 second=88 amount=-1
+kerning first=71 second=89 amount=-2
+kerning first=71 second=75 amount=1
+kerning first=71 second=86 amount=-1
+kerning first=71 second=52 amount=1
+kerning first=71 second=78 amount=1
+kerning first=71 second=53 amount=-1
+kerning first=71 second=85 amount=1
+kerning first=71 second=55 amount=-2
+kerning first=71 second=84 amount=-1
+kerning first=71 second=83 amount=-1
+kerning first=71 second=48 amount=1
+kerning first=71 second=68 amount=1
+kerning first=71 second=76 amount=1
+kerning first=71 second=74 amount=1
+kerning first=71 second=56 amount=-1
+kerning first=71 second=80 amount=1
+kerning first=71 second=63 amount=-1
+kerning first=71 second=69 amount=1
+kerning first=71 second=108 amount=1
+kerning first=71 second=64 amount=1
+kerning first=71 second=82 amount=1
+kerning first=71 second=50 amount=-3
+kerning first=71 second=92 amount=-2
+kerning first=71 second=47 amount=-1
+kerning first=71 second=71 amount=1
+kerning first=71 second=107 amount=1
+kerning first=71 second=66 amount=1
+kerning first=71 second=104 amount=1
+kerning first=71 second=72 amount=1
+kerning first=71 second=102 amount=1
+kerning first=71 second=93 amount=-2
+kerning first=71 second=49 amount=-3
+kerning first=71 second=73 amount=1
+kerning first=71 second=33 amount=1
+kerning first=71 second=79 amount=1
+kerning first=71 second=51 amount=-1
+kerning first=71 second=57 amount=-1
+kerning first=71 second=67 amount=2
+kerning first=71 second=70 amount=1
+kerning first=71 second=100 amount=1
+kerning first=71 second=113 amount=1
+kerning first=71 second=112 amount=1
+kerning first=71 second=98 amount=1
+kerning first=71 second=40 amount=1
+kerning first=71 second=105 amount=1
+kerning first=71 second=116 amount=1
+kerning first=71 second=121 amount=1
+kerning first=71 second=103 amount=2
+kerning first=71 second=119 amount=2
+kerning first=71 second=109 amount=1
+kerning first=71 second=122 amount=-1
+kerning first=71 second=110 amount=1
+kerning first=71 second=114 amount=1
+kerning first=71 second=117 amount=2
+kerning first=71 second=118 amount=1
+kerning first=71 second=111 amount=2
+kerning first=71 second=101 amount=1
+kerning first=71 second=99 amount=1
+kerning first=71 second=35 amount=1
+kerning first=71 second=97 amount=1
+kerning first=71 second=115 amount=1
+kerning first=71 second=34 amount=-1
+kerning first=71 second=39 amount=-1
+kerning first=71 second=44 amount=-3
+kerning first=71 second=45 amount=2
+kerning first=71 second=46 amount=-2
+kerning first=107 second=106 amount=1
+kerning first=107 second=52 amount=-1
+kerning first=107 second=53 amount=1
+kerning first=107 second=55 amount=1
+kerning first=107 second=108 amount=1
+kerning first=107 second=50 amount=1
+kerning first=107 second=92 amount=-2
+kerning first=107 second=47 amount=1
+kerning first=107 second=107 amount=1
+kerning first=107 second=104 amount=1
+kerning first=107 second=102 amount=1
+kerning first=107 second=49 amount=-3
+kerning first=107 second=33 amount=1
+kerning first=107 second=100 amount=1
+kerning first=107 second=113 amount=1
+kerning first=107 second=112 amount=1
+kerning first=107 second=98 amount=1
+kerning first=107 second=40 amount=1
+kerning first=107 second=41 amount=1
+kerning first=107 second=105 amount=1
+kerning first=107 second=116 amount=1
+kerning first=107 second=121 amount=2
+kerning first=107 second=103 amount=1
+kerning first=107 second=59 amount=2
+kerning first=107 second=119 amount=2
+kerning first=107 second=109 amount=1
+kerning first=107 second=122 amount=2
+kerning first=107 second=110 amount=2
+kerning first=107 second=120 amount=2
+kerning first=107 second=114 amount=2
+kerning first=107 second=117 amount=1
+kerning first=107 second=118 amount=2
+kerning first=107 second=111 amount=1
+kerning first=107 second=101 amount=1
+kerning first=107 second=99 amount=1
+kerning first=107 second=35 amount=1
+kerning first=107 second=97 amount=2
+kerning first=107 second=115 amount=2
+kerning first=107 second=58 amount=2
+kerning first=107 second=34 amount=-1
+kerning first=107 second=39 amount=-1
+kerning first=107 second=44 amount=2
+kerning first=107 second=45 amount=-2
+kerning first=107 second=46 amount=2
+kerning first=66 second=90 amount=-1
+kerning first=66 second=89 amount=-1
+kerning first=66 second=65 amount=-1
+kerning first=66 second=53 amount=-1
+kerning first=66 second=55 amount=-1
+kerning first=66 second=56 amount=-1
+kerning first=66 second=108 amount=1
+kerning first=66 second=50 amount=-2
+kerning first=66 second=47 amount=-2
+kerning first=66 second=71 amount=1
+kerning first=66 second=107 amount=1
+kerning first=66 second=72 amount=1
+kerning first=66 second=49 amount=-3
+kerning first=66 second=33 amount=1
+kerning first=66 second=51 amount=-2
+kerning first=66 second=57 amount=-1
+kerning first=66 second=67 amount=1
+kerning first=66 second=100 amount=1
+kerning first=66 second=113 amount=1
+kerning first=66 second=40 amount=1
+kerning first=66 second=41 amount=-1
+kerning first=66 second=105 amount=1
+kerning first=66 second=116 amount=1
+kerning first=66 second=103 amount=1
+kerning first=66 second=119 amount=1
+kerning first=66 second=122 amount=-1
+kerning first=66 second=110 amount=1
+kerning first=66 second=114 amount=1
+kerning first=66 second=117 amount=1
+kerning first=66 second=111 amount=1
+kerning first=66 second=101 amount=1
+kerning first=66 second=99 amount=1
+kerning first=66 second=35 amount=1
+kerning first=66 second=44 amount=-4
+kerning first=66 second=45 amount=1
+kerning first=66 second=46 amount=-2
+kerning first=104 second=106 amount=1
+kerning first=104 second=52 amount=1
+kerning first=104 second=63 amount=-1
+kerning first=104 second=108 amount=1
+kerning first=104 second=64 amount=1
+kerning first=104 second=92 amount=-3
+kerning first=104 second=107 amount=1
+kerning first=104 second=102 amount=1
+kerning first=104 second=49 amount=-3
+kerning first=104 second=33 amount=1
+kerning first=104 second=100 amount=1
+kerning first=104 second=113 amount=1
+kerning first=104 second=112 amount=1
+kerning first=104 second=98 amount=1
+kerning first=104 second=40 amount=1
+kerning first=104 second=41 amount=1
+kerning first=104 second=105 amount=1
+kerning first=104 second=116 amount=1
+kerning first=104 second=121 amount=1
+kerning first=104 second=103 amount=1
+kerning first=104 second=59 amount=1
+kerning first=104 second=119 amount=2
+kerning first=104 second=109 amount=1
+kerning first=104 second=122 amount=1
+kerning first=104 second=110 amount=1
+kerning first=104 second=120 amount=1
+kerning first=104 second=114 amount=1
+kerning first=104 second=117 amount=1
+kerning first=104 second=118 amount=1
+kerning first=104 second=111 amount=1
+kerning first=104 second=101 amount=1
+kerning first=104 second=99 amount=1
+kerning first=104 second=35 amount=1
+kerning first=104 second=97 amount=1
+kerning first=104 second=115 amount=1
+kerning first=104 second=58 amount=1
+kerning first=104 second=34 amount=-2
+kerning first=104 second=39 amount=-2
+kerning first=104 second=45 amount=1
+kerning first=104 second=46 amount=1
+kerning first=72 second=106 amount=1
+kerning first=72 second=87 amount=1
+kerning first=72 second=81 amount=1
+kerning first=72 second=88 amount=1
+kerning first=72 second=75 amount=1
+kerning first=72 second=86 amount=1
+kerning first=72 second=52 amount=1
+kerning first=72 second=85 amount=1
+kerning first=72 second=76 amount=1
+kerning first=72 second=56 amount=-1
+kerning first=72 second=80 amount=1
+kerning first=72 second=69 amount=1
+kerning first=72 second=108 amount=1
+kerning first=72 second=82 amount=1
+kerning first=72 second=92 amount=1
+kerning first=72 second=71 amount=1
+kerning first=72 second=107 amount=1
+kerning first=72 second=66 amount=1
+kerning first=72 second=104 amount=1
+kerning first=72 second=72 amount=1
+kerning first=72 second=102 amount=1
+kerning first=72 second=93 amount=1
+kerning first=72 second=49 amount=-2
+kerning first=72 second=73 amount=1
+kerning first=72 second=33 amount=1
+kerning first=72 second=79 amount=1
+kerning first=72 second=51 amount=-1
+kerning first=72 second=57 amount=-1
+kerning first=72 second=67 amount=1
+kerning first=72 second=100 amount=1
+kerning first=72 second=113 amount=1
+kerning first=72 second=112 amount=1
+kerning first=72 second=98 amount=1
+kerning first=72 second=40 amount=1
+kerning first=72 second=41 amount=1
+kerning first=72 second=105 amount=1
+kerning first=72 second=116 amount=2
+kerning first=72 second=121 amount=1
+kerning first=72 second=103 amount=1
+kerning first=72 second=59 amount=1
+kerning first=72 second=119 amount=1
+kerning first=72 second=110 amount=1
+kerning first=72 second=120 amount=1
+kerning first=72 second=114 amount=1
+kerning first=72 second=117 amount=1
+kerning first=72 second=118 amount=1
+kerning first=72 second=111 amount=1
+kerning first=72 second=101 amount=1
+kerning first=72 second=99 amount=1
+kerning first=72 second=35 amount=1
+kerning first=72 second=97 amount=1
+kerning first=72 second=115 amount=1
+kerning first=72 second=34 amount=1
+kerning first=72 second=39 amount=1
+kerning first=72 second=45 amount=1
+kerning first=72 second=46 amount=1
+kerning first=102 second=106 amount=2
+kerning first=102 second=53 amount=1
+kerning first=102 second=55 amount=-1
+kerning first=102 second=48 amount=1
+kerning first=102 second=63 amount=1
+kerning first=102 second=108 amount=2
+kerning first=102 second=50 amount=-1
+kerning first=102 second=92 amount=1
+kerning first=102 second=47 amount=-1
+kerning first=102 second=107 amount=2
+kerning first=102 second=104 amount=2
+kerning first=102 second=102 amount=2
+kerning first=102 second=93 amount=1
+kerning first=102 second=49 amount=-2
+kerning first=102 second=33 amount=2
+kerning first=102 second=54 amount=1
+kerning first=102 second=57 amount=1
+kerning first=102 second=100 amount=1
+kerning first=102 second=113 amount=1
+kerning first=102 second=112 amount=2
+kerning first=102 second=98 amount=2
+kerning first=102 second=40 amount=2
+kerning first=102 second=41 amount=1
+kerning first=102 second=105 amount=2
+kerning first=102 second=116 amount=2
+kerning first=102 second=121 amount=2
+kerning first=102 second=103 amount=1
+kerning first=102 second=59 amount=1
+kerning first=102 second=119 amount=3
+kerning first=102 second=109 amount=1
+kerning first=102 second=122 amount=1
+kerning first=102 second=110 amount=2
+kerning first=102 second=120 amount=2
+kerning first=102 second=114 amount=2
+kerning first=102 second=117 amount=2
+kerning first=102 second=118 amount=3
+kerning first=102 second=111 amount=1
+kerning first=102 second=101 amount=1
+kerning first=102 second=99 amount=1
+kerning first=102 second=35 amount=2
+kerning first=102 second=97 amount=2
+kerning first=102 second=115 amount=1
+kerning first=102 second=58 amount=1
+kerning first=102 second=34 amount=2
+kerning first=102 second=39 amount=2
+kerning first=102 second=45 amount=-2
+kerning first=102 second=46 amount=-1
+kerning first=93 second=106 amount=1
+kerning first=93 second=90 amount=1
+kerning first=93 second=88 amount=1
+kerning first=93 second=65 amount=1
+kerning first=93 second=75 amount=1
+kerning first=93 second=86 amount=1
+kerning first=93 second=78 amount=1
+kerning first=93 second=55 amount=1
+kerning first=93 second=83 amount=1
+kerning first=93 second=48 amount=-1
+kerning first=93 second=56 amount=-1
+kerning first=93 second=80 amount=1
+kerning first=93 second=69 amount=1
+kerning first=93 second=108 amount=1
+kerning first=93 second=82 amount=1
+kerning first=93 second=50 amount=1
+kerning first=93 second=47 amount=1
+kerning first=93 second=107 amount=1
+kerning first=93 second=66 amount=1
+kerning first=93 second=104 amount=1
+kerning first=93 second=49 amount=-3
+kerning first=93 second=73 amount=1
+kerning first=93 second=33 amount=1
+kerning first=93 second=54 amount=-1
+kerning first=93 second=67 amount=1
+kerning first=93 second=70 amount=1
+kerning first=93 second=112 amount=1
+kerning first=93 second=98 amount=1
+kerning first=93 second=41 amount=1
+kerning first=93 second=105 amount=1
+kerning first=93 second=116 amount=1
+kerning first=93 second=121 amount=1
+kerning first=93 second=103 amount=1
+kerning first=93 second=59 amount=1
+kerning first=93 second=119 amount=1
+kerning first=93 second=122 amount=1
+kerning first=93 second=110 amount=1
+kerning first=93 second=120 amount=2
+kerning first=93 second=114 amount=1
+kerning first=93 second=117 amount=1
+kerning first=93 second=118 amount=1
+kerning first=93 second=111 amount=1
+kerning first=93 second=99 amount=1
+kerning first=93 second=97 amount=1
+kerning first=93 second=115 amount=1
+kerning first=93 second=58 amount=1
+kerning first=93 second=34 amount=1
+kerning first=93 second=39 amount=1
+kerning first=93 second=44 amount=1
+kerning first=93 second=46 amount=1
+kerning first=49 second=106 amount=-3
+kerning first=49 second=87 amount=-4
+kerning first=49 second=81 amount=-4
+kerning first=49 second=77 amount=-4
+kerning first=49 second=90 amount=-3
+kerning first=49 second=88 amount=-3
+kerning first=49 second=89 amount=-4
+kerning first=49 second=65 amount=-3
+kerning first=49 second=75 amount=-3
+kerning first=49 second=86 amount=-3
+kerning first=49 second=78 amount=-4
+kerning first=49 second=85 amount=-4
+kerning first=49 second=84 amount=-4
+kerning first=49 second=83 amount=-4
+kerning first=49 second=68 amount=-4
+kerning first=49 second=76 amount=-4
+kerning first=49 second=74 amount=-4
+kerning first=49 second=80 amount=-3
+kerning first=49 second=63 amount=-4
+kerning first=49 second=69 amount=-3
+kerning first=49 second=108 amount=-3
+kerning first=49 second=64 amount=-4
+kerning first=49 second=82 amount=-3
+kerning first=49 second=92 amount=-4
+kerning first=49 second=47 amount=-3
+kerning first=49 second=71 amount=-4
+kerning first=49 second=107 amount=-3
+kerning first=49 second=66 amount=-3
+kerning first=49 second=104 amount=-3
+kerning first=49 second=72 amount=-4
+kerning first=49 second=102 amount=-4
+kerning first=49 second=93 amount=-4
+kerning first=49 second=73 amount=-3
+kerning first=49 second=33 amount=-3
+kerning first=49 second=79 amount=-4
+kerning first=49 second=67 amount=-4
+kerning first=49 second=70 amount=-3
+kerning first=49 second=100 amount=-4
+kerning first=49 second=113 amount=-4
+kerning first=49 second=112 amount=-3
+kerning first=49 second=98 amount=-3
+kerning first=49 second=40 amount=-4
+kerning first=49 second=41 amount=-3
+kerning first=49 second=105 amount=-3
+kerning first=49 second=116 amount=-3
+kerning first=49 second=121 amount=-3
+kerning first=49 second=103 amount=-4
+kerning first=49 second=59 amount=-3
+kerning first=49 second=119 amount=-3
+kerning first=49 second=109 amount=-4
+kerning first=49 second=122 amount=-3
+kerning first=49 second=110 amount=-3
+kerning first=49 second=120 amount=-2
+kerning first=49 second=114 amount=-3
+kerning first=49 second=117 amount=-3
+kerning first=49 second=118 amount=-3
+kerning first=49 second=111 amount=-4
+kerning first=49 second=101 amount=-4
+kerning first=49 second=99 amount=-3
+kerning first=49 second=35 amount=-4
+kerning first=49 second=97 amount=-3
+kerning first=49 second=115 amount=-3
+kerning first=49 second=58 amount=-3
+kerning first=49 second=34 amount=-4
+kerning first=49 second=39 amount=-3
+kerning first=49 second=44 amount=-3
+kerning first=49 second=45 amount=-4
+kerning first=49 second=46 amount=-3
+kerning first=73 second=106 amount=1
+kerning first=73 second=87 amount=1
+kerning first=73 second=90 amount=1
+kerning first=73 second=88 amount=1
+kerning first=73 second=65 amount=1
+kerning first=73 second=75 amount=1
+kerning first=73 second=86 amount=1
+kerning first=73 second=85 amount=1
+kerning first=73 second=83 amount=1
+kerning first=73 second=76 amount=1
+kerning first=73 second=56 amount=-1
+kerning first=73 second=80 amount=1
+kerning first=73 second=63 amount=1
+kerning first=73 second=108 amount=1
+kerning first=73 second=82 amount=1
+kerning first=73 second=92 amount=1
+kerning first=73 second=47 amount=1
+kerning first=73 second=71 amount=1
+kerning first=73 second=107 amount=1
+kerning first=73 second=66 amount=1
+kerning first=73 second=104 amount=1
+kerning first=73 second=72 amount=1
+kerning first=73 second=102 amount=1
+kerning first=73 second=93 amount=1
+kerning first=73 second=49 amount=-2
+kerning first=73 second=73 amount=1
+kerning first=73 second=33 amount=1
+kerning first=73 second=54 amount=-1
+kerning first=73 second=67 amount=1
+kerning first=73 second=113 amount=1
+kerning first=73 second=112 amount=1
+kerning first=73 second=98 amount=1
+kerning first=73 second=41 amount=1
+kerning first=73 second=105 amount=1
+kerning first=73 second=116 amount=1
+kerning first=73 second=121 amount=1
+kerning first=73 second=103 amount=1
+kerning first=73 second=59 amount=1
+kerning first=73 second=119 amount=2
+kerning first=73 second=122 amount=1
+kerning first=73 second=110 amount=1
+kerning first=73 second=120 amount=1
+kerning first=73 second=114 amount=1
+kerning first=73 second=117 amount=1
+kerning first=73 second=118 amount=1
+kerning first=73 second=111 amount=1
+kerning first=73 second=99 amount=1
+kerning first=73 second=97 amount=1
+kerning first=73 second=115 amount=1
+kerning first=73 second=58 amount=1
+kerning first=73 second=34 amount=1
+kerning first=73 second=39 amount=1
+kerning first=73 second=44 amount=1
+kerning first=73 second=46 amount=1
+kerning first=33 second=106 amount=1
+kerning first=33 second=87 amount=1
+kerning first=33 second=81 amount=1
+kerning first=33 second=90 amount=1
+kerning first=33 second=88 amount=1
+kerning first=33 second=89 amount=1
+kerning first=33 second=65 amount=1
+kerning first=33 second=75 amount=1
+kerning first=33 second=86 amount=1
+kerning first=33 second=52 amount=1
+kerning first=33 second=78 amount=1
+kerning first=33 second=53 amount=2
+kerning first=33 second=85 amount=1
+kerning first=33 second=84 amount=1
+kerning first=33 second=83 amount=1
+kerning first=33 second=68 amount=1
+kerning first=33 second=76 amount=1
+kerning first=33 second=74 amount=1
+kerning first=33 second=80 amount=1
+kerning first=33 second=63 amount=1
+kerning first=33 second=69 amount=1
+kerning first=33 second=108 amount=1
+kerning first=33 second=82 amount=1
+kerning first=33 second=92 amount=1
+kerning first=33 second=47 amount=1
+kerning first=33 second=71 amount=1
+kerning first=33 second=107 amount=1
+kerning first=33 second=66 amount=1
+kerning first=33 second=104 amount=1
+kerning first=33 second=72 amount=1
+kerning first=33 second=102 amount=1
+kerning first=33 second=93 amount=1
+kerning first=33 second=49 amount=-2
+kerning first=33 second=73 amount=2
+kerning first=33 second=33 amount=1
+kerning first=33 second=79 amount=1
+kerning first=33 second=67 amount=1
+kerning first=33 second=100 amount=1
+kerning first=33 second=113 amount=1
+kerning first=33 second=112 amount=1
+kerning first=33 second=98 amount=1
+kerning first=33 second=40 amount=1
+kerning first=33 second=41 amount=1
+kerning first=33 second=105 amount=1
+kerning first=33 second=116 amount=2
+kerning first=33 second=121 amount=1
+kerning first=33 second=103 amount=1
+kerning first=33 second=59 amount=2
+kerning first=33 second=119 amount=2
+kerning first=33 second=122 amount=1
+kerning first=33 second=110 amount=1
+kerning first=33 second=120 amount=1
+kerning first=33 second=114 amount=1
+kerning first=33 second=117 amount=1
+kerning first=33 second=118 amount=2
+kerning first=33 second=111 amount=1
+kerning first=33 second=101 amount=1
+kerning first=33 second=99 amount=1
+kerning first=33 second=35 amount=1
+kerning first=33 second=97 amount=1
+kerning first=33 second=115 amount=1
+kerning first=33 second=58 amount=1
+kerning first=33 second=43 amount=1
+kerning first=33 second=34 amount=1
+kerning first=33 second=39 amount=1
+kerning first=33 second=44 amount=1
+kerning first=33 second=45 amount=1
+kerning first=33 second=46 amount=1
+kerning first=79 second=106 amount=1
+kerning first=79 second=81 amount=1
+kerning first=79 second=88 amount=-1
+kerning first=79 second=89 amount=-1
+kerning first=79 second=65 amount=-1
+kerning first=79 second=55 amount=-1
+kerning first=79 second=56 amount=-1
+kerning first=79 second=108 amount=1
+kerning first=79 second=50 amount=-1
+kerning first=79 second=92 amount=-1
+kerning first=79 second=47 amount=-1
+kerning first=79 second=71 amount=1
+kerning first=79 second=107 amount=1
+kerning first=79 second=72 amount=1
+kerning first=79 second=102 amount=1
+kerning first=79 second=93 amount=-1
+kerning first=79 second=49 amount=-3
+kerning first=79 second=33 amount=1
+kerning first=79 second=79 amount=1
+kerning first=79 second=51 amount=-1
+kerning first=79 second=57 amount=-1
+kerning first=79 second=67 amount=1
+kerning first=79 second=100 amount=1
+kerning first=79 second=113 amount=1
+kerning first=79 second=112 amount=1
+kerning first=79 second=98 amount=1
+kerning first=79 second=40 amount=1
+kerning first=79 second=41 amount=-1
+kerning first=79 second=105 amount=1
+kerning first=79 second=116 amount=2
+kerning first=79 second=121 amount=1
+kerning first=79 second=103 amount=1
+kerning first=79 second=59 amount=1
+kerning first=79 second=119 amount=2
+kerning first=79 second=110 amount=1
+kerning first=79 second=120 amount=1
+kerning first=79 second=114 amount=1
+kerning first=79 second=117 amount=1
+kerning first=79 second=118 amount=2
+kerning first=79 second=111 amount=1
+kerning first=79 second=101 amount=1
+kerning first=79 second=99 amount=1
+kerning first=79 second=35 amount=1
+kerning first=79 second=97 amount=1
+kerning first=79 second=44 amount=-1
+kerning first=79 second=45 amount=1
+kerning first=51 second=77 amount=-1
+kerning first=51 second=90 amount=-2
+kerning first=51 second=89 amount=-1
+kerning first=51 second=65 amount=-2
+kerning first=51 second=75 amount=-1
+kerning first=51 second=78 amount=-1
+kerning first=51 second=84 amount=-1
+kerning first=51 second=83 amount=-1
+kerning first=51 second=68 amount=-1
+kerning first=51 second=76 amount=-1
+kerning first=51 second=74 amount=-1
+kerning first=51 second=63 amount=-1
+kerning first=51 second=64 amount=-1
+kerning first=51 second=92 amount=-1
+kerning first=51 second=47 amount=-3
+kerning first=51 second=93 amount=-1
+kerning first=51 second=70 amount=-1
+kerning first=51 second=41 amount=-1
+kerning first=51 second=59 amount=-1
+kerning first=51 second=109 amount=-1
+kerning first=51 second=122 amount=-2
+kerning first=51 second=120 amount=-1
+kerning first=51 second=58 amount=-1
+kerning first=51 second=44 amount=-4
+kerning first=51 second=46 amount=-3
+kerning first=54 second=106 amount=-1
+kerning first=54 second=87 amount=-1
+kerning first=54 second=81 amount=-1
+kerning first=54 second=77 amount=-1
+kerning first=54 second=90 amount=-1
+kerning first=54 second=88 amount=-2
+kerning first=54 second=89 amount=-2
+kerning first=54 second=65 amount=-2
+kerning first=54 second=75 amount=-1
+kerning first=54 second=86 amount=-1
+kerning first=54 second=78 amount=-1
+kerning first=54 second=83 amount=-1
+kerning first=54 second=68 amount=-1
+kerning first=54 second=76 amount=-1
+kerning first=54 second=74 amount=-1
+kerning first=54 second=80 amount=-1
+kerning first=54 second=69 amount=-1
+kerning first=54 second=64 amount=-1
+kerning first=54 second=82 amount=-1
+kerning first=54 second=92 amount=-2
+kerning first=54 second=47 amount=-2
+kerning first=54 second=66 amount=-1
+kerning first=54 second=104 amount=-1
+kerning first=54 second=72 amount=-1
+kerning first=54 second=102 amount=-1
+kerning first=54 second=93 amount=-1
+kerning first=54 second=73 amount=-1
+kerning first=54 second=79 amount=-1
+kerning first=54 second=70 amount=-1
+kerning first=54 second=100 amount=-1
+kerning first=54 second=113 amount=-1
+kerning first=54 second=112 amount=-1
+kerning first=54 second=98 amount=-1
+kerning first=54 second=40 amount=-1
+kerning first=54 second=41 amount=-1
+kerning first=54 second=121 amount=-1
+kerning first=54 second=59 amount=-1
+kerning first=54 second=109 amount=-1
+kerning first=54 second=122 amount=-2
+kerning first=54 second=110 amount=-1
+kerning first=54 second=120 amount=-1
+kerning first=54 second=114 amount=-1
+kerning first=54 second=118 amount=-1
+kerning first=54 second=101 amount=-1
+kerning first=54 second=35 amount=-1
+kerning first=54 second=97 amount=-1
+kerning first=54 second=115 amount=-1
+kerning first=54 second=58 amount=-2
+kerning first=54 second=44 amount=-2
+kerning first=54 second=45 amount=-1
+kerning first=54 second=46 amount=-1
+kerning first=57 second=87 amount=-1
+kerning first=57 second=81 amount=-1
+kerning first=57 second=77 amount=-1
+kerning first=57 second=90 amount=-1
+kerning first=57 second=88 amount=-2
+kerning first=57 second=89 amount=-2
+kerning first=57 second=65 amount=-2
+kerning first=57 second=75 amount=-1
+kerning first=57 second=86 amount=-2
+kerning first=57 second=78 amount=-1
+kerning first=57 second=85 amount=-1
+kerning first=57 second=84 amount=-1
+kerning first=57 second=83 amount=-1
+kerning first=57 second=68 amount=-1
+kerning first=57 second=76 amount=-1
+kerning first=57 second=74 amount=-1
+kerning first=57 second=80 amount=-1
+kerning first=57 second=63 amount=-1
+kerning first=57 second=69 amount=-1
+kerning first=57 second=64 amount=-1
+kerning first=57 second=82 amount=-1
+kerning first=57 second=92 amount=-2
+kerning first=57 second=47 amount=-2
+kerning first=57 second=66 amount=-1
+kerning first=57 second=104 amount=-1
+kerning first=57 second=93 amount=-2
+kerning first=57 second=73 amount=-1
+kerning first=57 second=79 amount=-1
+kerning first=57 second=70 amount=-1
+kerning first=57 second=100 amount=-1
+kerning first=57 second=98 amount=-1
+kerning first=57 second=41 amount=-2
+kerning first=57 second=116 amount=1
+kerning first=57 second=59 amount=-1
+kerning first=57 second=119 amount=1
+kerning first=57 second=109 amount=-1
+kerning first=57 second=122 amount=-1
+kerning first=57 second=118 amount=1
+kerning first=57 second=101 amount=-1
+kerning first=57 second=115 amount=-1
+kerning first=57 second=58 amount=-1
+kerning first=57 second=34 amount=-1
+kerning first=57 second=44 amount=-3
+kerning first=57 second=46 amount=-2
+kerning first=67 second=106 amount=1
+kerning first=67 second=81 amount=1
+kerning first=67 second=88 amount=-1
+kerning first=67 second=89 amount=-1
+kerning first=67 second=52 amount=1
+kerning first=67 second=85 amount=1
+kerning first=67 second=55 amount=-1
+kerning first=67 second=83 amount=1
+kerning first=67 second=74 amount=1
+kerning first=67 second=56 amount=-1
+kerning first=67 second=80 amount=1
+kerning first=67 second=69 amount=1
+kerning first=67 second=108 amount=1
+kerning first=67 second=64 amount=1
+kerning first=67 second=50 amount=-1
+kerning first=67 second=92 amount=-1
+kerning first=67 second=47 amount=-1
+kerning first=67 second=71 amount=1
+kerning first=67 second=107 amount=1
+kerning first=67 second=66 amount=1
+kerning first=67 second=104 amount=1
+kerning first=67 second=102 amount=1
+kerning first=67 second=93 amount=-1
+kerning first=67 second=49 amount=-3
+kerning first=67 second=73 amount=1
+kerning first=67 second=33 amount=1
+kerning first=67 second=79 amount=1
+kerning first=67 second=51 amount=-1
+kerning first=67 second=67 amount=1
+kerning first=67 second=100 amount=1
+kerning first=67 second=113 amount=1
+kerning first=67 second=112 amount=1
+kerning first=67 second=98 amount=1
+kerning first=67 second=40 amount=1
+kerning first=67 second=105 amount=1
+kerning first=67 second=116 amount=1
+kerning first=67 second=121 amount=1
+kerning first=67 second=103 amount=1
+kerning first=67 second=119 amount=2
+kerning first=67 second=109 amount=1
+kerning first=67 second=110 amount=1
+kerning first=67 second=120 amount=1
+kerning first=67 second=114 amount=1
+kerning first=67 second=117 amount=1
+kerning first=67 second=118 amount=2
+kerning first=67 second=111 amount=1
+kerning first=67 second=101 amount=1
+kerning first=67 second=99 amount=1
+kerning first=67 second=35 amount=1
+kerning first=67 second=97 amount=1
+kerning first=67 second=34 amount=1
+kerning first=67 second=39 amount=1
+kerning first=67 second=44 amount=-1
+kerning first=123 second=32 amount=1
+kerning first=125 second=112 amount=1
+kerning first=125 second=109 amount=1
+kerning first=125 second=110 amount=1
+kerning first=125 second=111 amount=1
+kerning first=70 second=87 amount=1
+kerning first=70 second=90 amount=-1
+kerning first=70 second=88 amount=1
+kerning first=70 second=65 amount=-2
+kerning first=70 second=75 amount=1
+kerning first=70 second=86 amount=1
+kerning first=70 second=53 amount=-1
+kerning first=70 second=85 amount=1
+kerning first=70 second=83 amount=-1
+kerning first=70 second=48 amount=-1
+kerning first=70 second=76 amount=1
+kerning first=70 second=74 amount=-2
+kerning first=70 second=56 amount=-1
+kerning first=70 second=80 amount=1
+kerning first=70 second=63 amount=-1
+kerning first=70 second=108 amount=1
+kerning first=70 second=64 amount=-1
+kerning first=70 second=82 amount=1
+kerning first=70 second=50 amount=-3
+kerning first=70 second=92 amount=1
+kerning first=70 second=47 amount=-3
+kerning first=70 second=107 amount=1
+kerning first=70 second=66 amount=1
+kerning first=70 second=93 amount=1
+kerning first=70 second=49 amount=-2
+kerning first=70 second=73 amount=1
+kerning first=70 second=33 amount=1
+kerning first=70 second=51 amount=-2
+kerning first=70 second=54 amount=-1
+kerning first=70 second=57 amount=-1
+kerning first=70 second=98 amount=1
+kerning first=70 second=41 amount=1
+kerning first=70 second=105 amount=1
+kerning first=70 second=59 amount=-1
+kerning first=70 second=109 amount=-1
+kerning first=70 second=122 amount=-2
+kerning first=70 second=120 amount=-1
+kerning first=70 second=58 amount=-1
+kerning first=70 second=34 amount=1
+kerning first=70 second=39 amount=1
+kerning first=70 second=44 amount=-4
+kerning first=70 second=46 amount=-3
+kerning first=100 second=106 amount=1
+kerning first=100 second=56 amount=-1
+kerning first=100 second=63 amount=1
+kerning first=100 second=108 amount=1
+kerning first=100 second=92 amount=1
+kerning first=100 second=47 amount=1
+kerning first=100 second=107 amount=1
+kerning first=100 second=102 amount=1
+kerning first=100 second=93 amount=1
+kerning first=100 second=49 amount=-2
+kerning first=100 second=33 amount=1
+kerning first=100 second=113 amount=1
+kerning first=100 second=112 amount=1
+kerning first=100 second=98 amount=1
+kerning first=100 second=41 amount=1
+kerning first=100 second=105 amount=1
+kerning first=100 second=116 amount=1
+kerning first=100 second=121 amount=1
+kerning first=100 second=103 amount=1
+kerning first=100 second=59 amount=1
+kerning first=100 second=119 amount=2
+kerning first=100 second=122 amount=1
+kerning first=100 second=110 amount=1
+kerning first=100 second=120 amount=1
+kerning first=100 second=114 amount=1
+kerning first=100 second=117 amount=1
+kerning first=100 second=118 amount=2
+kerning first=100 second=111 amount=1
+kerning first=100 second=99 amount=1
+kerning first=100 second=97 amount=1
+kerning first=100 second=115 amount=1
+kerning first=100 second=58 amount=1
+kerning first=100 second=34 amount=1
+kerning first=100 second=39 amount=1
+kerning first=100 second=44 amount=1
+kerning first=100 second=46 amount=1
+kerning first=113 second=106 amount=3
+kerning first=113 second=52 amount=1
+kerning first=113 second=108 amount=1
+kerning first=113 second=92 amount=-2
+kerning first=113 second=47 amount=1
+kerning first=113 second=107 amount=1
+kerning first=113 second=104 amount=1
+kerning first=113 second=102 amount=1
+kerning first=113 second=49 amount=-3
+kerning first=113 second=33 amount=1
+kerning first=113 second=100 amount=1
+kerning first=113 second=112 amount=1
+kerning first=113 second=98 amount=1
+kerning first=113 second=40 amount=1
+kerning first=113 second=41 amount=1
+kerning first=113 second=105 amount=1
+kerning first=113 second=116 amount=2
+kerning first=113 second=121 amount=2
+kerning first=113 second=103 amount=1
+kerning first=113 second=59 amount=2
+kerning first=113 second=119 amount=2
+kerning first=113 second=109 amount=1
+kerning first=113 second=122 amount=1
+kerning first=113 second=110 amount=1
+kerning first=113 second=120 amount=1
+kerning first=113 second=114 amount=1
+kerning first=113 second=117 amount=1
+kerning first=113 second=118 amount=2
+kerning first=113 second=111 amount=1
+kerning first=113 second=101 amount=1
+kerning first=113 second=99 amount=1
+kerning first=113 second=35 amount=1
+kerning first=113 second=97 amount=1
+kerning first=113 second=115 amount=1
+kerning first=113 second=58 amount=1
+kerning first=113 second=44 amount=2
+kerning first=113 second=45 amount=1
+kerning first=113 second=46 amount=1
+kerning first=112 second=106 amount=1
+kerning first=112 second=52 amount=1
+kerning first=112 second=63 amount=-1
+kerning first=112 second=108 amount=1
+kerning first=112 second=64 amount=1
+kerning first=112 second=50 amount=-1
+kerning first=112 second=92 amount=-3
+kerning first=112 second=107 amount=1
+kerning first=112 second=104 amount=1
+kerning first=112 second=102 amount=1
+kerning first=112 second=93 amount=-1
+kerning first=112 second=49 amount=-4
+kerning first=112 second=33 amount=1
+kerning first=112 second=100 amount=1
+kerning first=112 second=113 amount=1
+kerning first=112 second=98 amount=1
+kerning first=112 second=40 amount=1
+kerning first=112 second=105 amount=1
+kerning first=112 second=116 amount=2
+kerning first=112 second=103 amount=1
+kerning first=112 second=59 amount=1
+kerning first=112 second=119 amount=1
+kerning first=112 second=110 amount=1
+kerning first=112 second=120 amount=1
+kerning first=112 second=114 amount=1
+kerning first=112 second=117 amount=1
+kerning first=112 second=118 amount=1
+kerning first=112 second=111 amount=1
+kerning first=112 second=101 amount=1
+kerning first=112 second=99 amount=1
+kerning first=112 second=35 amount=1
+kerning first=112 second=97 amount=1
+kerning first=112 second=115 amount=1
+kerning first=112 second=34 amount=-2
+kerning first=112 second=39 amount=-2
+kerning first=112 second=44 amount=-1
+kerning first=112 second=45 amount=1
+kerning first=98 second=52 amount=1
+kerning first=98 second=56 amount=-1
+kerning first=98 second=63 amount=-1
+kerning first=98 second=108 amount=1
+kerning first=98 second=92 amount=-3
+kerning first=98 second=107 amount=1
+kerning first=98 second=102 amount=1
+kerning first=98 second=93 amount=-1
+kerning first=98 second=49 amount=-4
+kerning first=98 second=33 amount=1
+kerning first=98 second=100 amount=1
+kerning first=98 second=113 amount=1
+kerning first=98 second=112 amount=1
+kerning first=98 second=40 amount=1
+kerning first=98 second=105 amount=1
+kerning first=98 second=116 amount=1
+kerning first=98 second=103 amount=1
+kerning first=98 second=119 amount=1
+kerning first=98 second=110 amount=1
+kerning first=98 second=120 amount=1
+kerning first=98 second=114 amount=1
+kerning first=98 second=117 amount=1
+kerning first=98 second=118 amount=1
+kerning first=98 second=111 amount=1
+kerning first=98 second=101 amount=1
+kerning first=98 second=99 amount=1
+kerning first=98 second=35 amount=1
+kerning first=98 second=97 amount=1
+kerning first=98 second=115 amount=1
+kerning first=98 second=34 amount=-3
+kerning first=98 second=39 amount=-3
+kerning first=98 second=45 amount=1
+kerning first=98 second=46 amount=1
+kerning first=40 second=106 amount=1
+kerning first=40 second=87 amount=1
+kerning first=40 second=81 amount=-1
+kerning first=40 second=90 amount=1
+kerning first=40 second=88 amount=1
+kerning first=40 second=89 amount=1
+kerning first=40 second=65 amount=1
+kerning first=40 second=75 amount=1
+kerning first=40 second=86 amount=1
+kerning first=40 second=52 amount=-1
+kerning first=40 second=78 amount=1
+kerning first=40 second=85 amount=1
+kerning first=40 second=48 amount=-1
+kerning first=40 second=68 amount=1
+kerning first=40 second=76 amount=1
+kerning first=40 second=74 amount=-1
+kerning first=40 second=56 amount=-1
+kerning first=40 second=80 amount=1
+kerning first=40 second=69 amount=1
+kerning first=40 second=108 amount=1
+kerning first=40 second=64 amount=-1
+kerning first=40 second=82 amount=1
+kerning first=40 second=92 amount=1
+kerning first=40 second=47 amount=1
+kerning first=40 second=107 amount=1
+kerning first=40 second=66 amount=1
+kerning first=40 second=104 amount=1
+kerning first=40 second=93 amount=1
+kerning first=40 second=49 amount=-2
+kerning first=40 second=73 amount=1
+kerning first=40 second=33 amount=1
+kerning first=40 second=51 amount=-1
+kerning first=40 second=54 amount=-2
+kerning first=40 second=57 amount=-1
+kerning first=40 second=112 amount=1
+kerning first=40 second=98 amount=1
+kerning first=40 second=41 amount=1
+kerning first=40 second=105 amount=1
+kerning first=40 second=59 amount=1
+kerning first=40 second=122 amount=1
+kerning first=40 second=110 amount=1
+kerning first=40 second=120 amount=1
+kerning first=40 second=114 amount=1
+kerning first=40 second=35 amount=-1
+kerning first=40 second=97 amount=1
+kerning first=40 second=58 amount=1
+kerning first=40 second=34 amount=1
+kerning first=40 second=39 amount=1
+kerning first=40 second=44 amount=1
+kerning first=40 second=45 amount=-1
+kerning first=40 second=46 amount=1
+kerning first=41 second=106 amount=1
+kerning first=41 second=81 amount=1
+kerning first=41 second=52 amount=1
+kerning first=41 second=85 amount=1
+kerning first=41 second=55 amount=-1
+kerning first=41 second=83 amount=1
+kerning first=41 second=74 amount=1
+kerning first=41 second=56 amount=-1
+kerning first=41 second=80 amount=1
+kerning first=41 second=63 amount=1
+kerning first=41 second=69 amount=1
+kerning first=41 second=108 amount=1
+kerning first=41 second=50 amount=-1
+kerning first=41 second=71 amount=1
+kerning first=41 second=107 amount=1
+kerning first=41 second=66 amount=1
+kerning first=41 second=104 amount=1
+kerning first=41 second=72 amount=1
+kerning first=41 second=102 amount=1
+kerning first=41 second=49 amount=-2
+kerning first=41 second=73 amount=1
+kerning first=41 second=33 amount=1
+kerning first=41 second=79 amount=1
+kerning first=41 second=67 amount=1
+kerning first=41 second=100 amount=1
+kerning first=41 second=113 amount=1
+kerning first=41 second=112 amount=1
+kerning first=41 second=98 amount=1
+kerning first=41 second=40 amount=1
+kerning first=41 second=105 amount=1
+kerning first=41 second=116 amount=2
+kerning first=41 second=121 amount=2
+kerning first=41 second=103 amount=1
+kerning first=41 second=59 amount=1
+kerning first=41 second=119 amount=2
+kerning first=41 second=109 amount=1
+kerning first=41 second=110 amount=1
+kerning first=41 second=120 amount=1
+kerning first=41 second=114 amount=1
+kerning first=41 second=117 amount=1
+kerning first=41 second=118 amount=2
+kerning first=41 second=111 amount=1
+kerning first=41 second=101 amount=1
+kerning first=41 second=99 amount=1
+kerning first=41 second=35 amount=1
+kerning first=41 second=97 amount=1
+kerning first=41 second=115 amount=1
+kerning first=41 second=34 amount=1
+kerning first=41 second=39 amount=1
+kerning first=41 second=44 amount=-1
+kerning first=41 second=45 amount=1
+kerning first=105 second=106 amount=1
+kerning first=105 second=63 amount=1
+kerning first=105 second=108 amount=1
+kerning first=105 second=50 amount=1
+kerning first=105 second=92 amount=1
+kerning first=105 second=47 amount=1
+kerning first=105 second=107 amount=1
+kerning first=105 second=104 amount=1
+kerning first=105 second=102 amount=1
+kerning first=105 second=93 amount=1
+kerning first=105 second=49 amount=-2
+kerning first=105 second=33 amount=1
+kerning first=105 second=100 amount=1
+kerning first=105 second=113 amount=1
+kerning first=105 second=112 amount=1
+kerning first=105 second=98 amount=1
+kerning first=105 second=40 amount=1
+kerning first=105 second=41 amount=1
+kerning first=105 second=105 amount=1
+kerning first=105 second=116 amount=2
+kerning first=105 second=121 amount=2
+kerning first=105 second=103 amount=1
+kerning first=105 second=59 amount=2
+kerning first=105 second=119 amount=2
+kerning first=105 second=109 amount=1
+kerning first=105 second=122 amount=1
+kerning first=105 second=110 amount=1
+kerning first=105 second=120 amount=1
+kerning first=105 second=114 amount=1
+kerning first=105 second=117 amount=1
+kerning first=105 second=118 amount=2
+kerning first=105 second=111 amount=1
+kerning first=105 second=101 amount=1
+kerning first=105 second=99 amount=1
+kerning first=105 second=35 amount=1
+kerning first=105 second=97 amount=1
+kerning first=105 second=115 amount=1
+kerning first=105 second=58 amount=1
+kerning first=105 second=34 amount=1
+kerning first=105 second=39 amount=1
+kerning first=105 second=44 amount=1
+kerning first=105 second=46 amount=1
+kerning first=116 second=106 amount=2
+kerning first=116 second=52 amount=-1
+kerning first=116 second=55 amount=-1
+kerning first=116 second=48 amount=1
+kerning first=116 second=63 amount=1
+kerning first=116 second=108 amount=2
+kerning first=116 second=50 amount=-1
+kerning first=116 second=92 amount=-1
+kerning first=116 second=107 amount=2
+kerning first=116 second=104 amount=1
+kerning first=116 second=102 amount=2
+kerning first=116 second=93 amount=-2
+kerning first=116 second=49 amount=-3
+kerning first=116 second=33 amount=2
+kerning first=116 second=54 amount=1
+kerning first=116 second=57 amount=1
+kerning first=116 second=100 amount=1
+kerning first=116 second=113 amount=1
+kerning first=116 second=112 amount=2
+kerning first=116 second=98 amount=1
+kerning first=116 second=40 amount=2
+kerning first=116 second=105 amount=2
+kerning first=116 second=116 amount=2
+kerning first=116 second=121 amount=2
+kerning first=116 second=103 amount=1
+kerning first=116 second=59 amount=1
+kerning first=116 second=119 amount=3
+kerning first=116 second=109 amount=1
+kerning first=116 second=122 amount=1
+kerning first=116 second=110 amount=2
+kerning first=116 second=120 amount=2
+kerning first=116 second=114 amount=2
+kerning first=116 second=117 amount=2
+kerning first=116 second=118 amount=3
+kerning first=116 second=111 amount=1
+kerning first=116 second=101 amount=1
+kerning first=116 second=99 amount=1
+kerning first=116 second=35 amount=1
+kerning first=116 second=97 amount=1
+kerning first=116 second=115 amount=1
+kerning first=116 second=58 amount=1
+kerning first=116 second=34 amount=1
+kerning first=116 second=39 amount=1
+kerning first=116 second=45 amount=-1
+kerning first=116 second=32 amount=1
+kerning first=121 second=106 amount=1
+kerning first=121 second=55 amount=-3
+kerning first=121 second=108 amount=1
+kerning first=121 second=64 amount=-1
+kerning first=121 second=50 amount=-2
+kerning first=121 second=92 amount=-2
+kerning first=121 second=47 amount=-2
+kerning first=121 second=107 amount=1
+kerning first=121 second=104 amount=1
+kerning first=121 second=102 amount=1
+kerning first=121 second=93 amount=-3
+kerning first=121 second=49 amount=-3
+kerning first=121 second=33 amount=1
+kerning first=121 second=51 amount=-1
+kerning first=121 second=112 amount=1
+kerning first=121 second=98 amount=1
+kerning first=121 second=40 amount=1
+kerning first=121 second=41 amount=-1
+kerning first=121 second=105 amount=1
+kerning first=121 second=116 amount=2
+kerning first=121 second=121 amount=2
+kerning first=121 second=59 amount=1
+kerning first=121 second=119 amount=2
+kerning first=121 second=109 amount=1
+kerning first=121 second=110 amount=1
+kerning first=121 second=120 amount=1
+kerning first=121 second=114 amount=1
+kerning first=121 second=117 amount=1
+kerning first=121 second=118 amount=2
+kerning first=121 second=111 amount=1
+kerning first=121 second=35 amount=1
+kerning first=121 second=97 amount=1
+kerning first=121 second=44 amount=-2
+kerning first=121 second=46 amount=-2
+kerning first=121 second=32 amount=1
+kerning first=103 second=106 amount=3
+kerning first=103 second=52 amount=1
+kerning first=103 second=53 amount=1
+kerning first=103 second=108 amount=1
+kerning first=103 second=92 amount=-2
+kerning first=103 second=47 amount=1
+kerning first=103 second=107 amount=1
+kerning first=103 second=104 amount=1
+kerning first=103 second=102 amount=1
+kerning first=103 second=49 amount=-3
+kerning first=103 second=33 amount=1
+kerning first=103 second=100 amount=1
+kerning first=103 second=113 amount=1
+kerning first=103 second=112 amount=1
+kerning first=103 second=98 amount=1
+kerning first=103 second=40 amount=1
+kerning first=103 second=41 amount=1
+kerning first=103 second=105 amount=1
+kerning first=103 second=116 amount=2
+kerning first=103 second=121 amount=1
+kerning first=103 second=103 amount=1
+kerning first=103 second=59 amount=2
+kerning first=103 second=119 amount=2
+kerning first=103 second=122 amount=1
+kerning first=103 second=110 amount=1
+kerning first=103 second=120 amount=1
+kerning first=103 second=114 amount=1
+kerning first=103 second=117 amount=1
+kerning first=103 second=118 amount=2
+kerning first=103 second=111 amount=1
+kerning first=103 second=101 amount=1
+kerning first=103 second=99 amount=1
+kerning first=103 second=35 amount=1
+kerning first=103 second=97 amount=1
+kerning first=103 second=115 amount=1
+kerning first=103 second=58 amount=1
+kerning first=103 second=34 amount=-1
+kerning first=103 second=44 amount=2
+kerning first=103 second=45 amount=1
+kerning first=103 second=46 amount=1
+kerning first=59 second=106 amount=1
+kerning first=59 second=87 amount=-1
+kerning first=59 second=89 amount=-2
+kerning first=59 second=86 amount=-1
+kerning first=59 second=52 amount=-1
+kerning first=59 second=53 amount=-1
+kerning first=59 second=84 amount=-2
+kerning first=59 second=74 amount=-3
+kerning first=59 second=56 amount=-1
+kerning first=59 second=63 amount=-1
+kerning first=59 second=64 amount=-1
+kerning first=59 second=92 amount=-3
+kerning first=59 second=71 amount=1
+kerning first=59 second=102 amount=1
+kerning first=59 second=93 amount=-1
+kerning first=59 second=49 amount=-4
+kerning first=59 second=33 amount=1
+kerning first=59 second=51 amount=-2
+kerning first=59 second=54 amount=-1
+kerning first=59 second=57 amount=-1
+kerning first=59 second=67 amount=1
+kerning first=59 second=112 amount=1
+kerning first=59 second=105 amount=1
+kerning first=59 second=116 amount=1
+kerning first=59 second=121 amount=1
+kerning first=59 second=59 amount=1
+kerning first=59 second=119 amount=2
+kerning first=59 second=110 amount=1
+kerning first=59 second=120 amount=1
+kerning first=59 second=114 amount=1
+kerning first=59 second=117 amount=1
+kerning first=59 second=118 amount=2
+kerning first=59 second=34 amount=-1
+kerning first=59 second=44 amount=1
+kerning first=59 second=45 amount=-1
+kerning first=119 second=106 amount=1
+kerning first=119 second=55 amount=-2
+kerning first=119 second=63 amount=1
+kerning first=119 second=108 amount=1
+kerning first=119 second=64 amount=-1
+kerning first=119 second=50 amount=-1
+kerning first=119 second=92 amount=-1
+kerning first=119 second=47 amount=-2
+kerning first=119 second=107 amount=1
+kerning first=119 second=104 amount=1
+kerning first=119 second=102 amount=1
+kerning first=119 second=93 amount=-3
+kerning first=119 second=49 amount=-3
+kerning first=119 second=33 amount=1
+kerning first=119 second=112 amount=1
+kerning first=119 second=98 amount=1
+kerning first=119 second=40 amount=1
+kerning first=119 second=105 amount=1
+kerning first=119 second=116 amount=1
+kerning first=119 second=121 amount=2
+kerning first=119 second=59 amount=1
+kerning first=119 second=119 amount=2
+kerning first=119 second=109 amount=1
+kerning first=119 second=110 amount=1
+kerning first=119 second=120 amount=2
+kerning first=119 second=114 amount=1
+kerning first=119 second=117 amount=1
+kerning first=119 second=118 amount=2
+kerning first=119 second=35 amount=1
+kerning first=119 second=34 amount=1
+kerning first=119 second=39 amount=1
+kerning first=119 second=44 amount=-2
+kerning first=119 second=46 amount=-2
+kerning first=109 second=106 amount=1
+kerning first=109 second=55 amount=1
+kerning first=109 second=56 amount=-1
+kerning first=109 second=63 amount=-2
+kerning first=109 second=108 amount=1
+kerning first=109 second=50 amount=1
+kerning first=109 second=92 amount=-3
+kerning first=109 second=47 amount=1
+kerning first=109 second=107 amount=1
+kerning first=109 second=104 amount=1
+kerning first=109 second=102 amount=1
+kerning first=109 second=49 amount=-3
+kerning first=109 second=33 amount=1
+kerning first=109 second=51 amount=-1
+kerning first=109 second=54 amount=-1
+kerning first=109 second=57 amount=-1
+kerning first=109 second=100 amount=1
+kerning first=109 second=112 amount=1
+kerning first=109 second=98 amount=1
+kerning first=109 second=41 amount=1
+kerning first=109 second=105 amount=1
+kerning first=109 second=116 amount=1
+kerning first=109 second=121 amount=1
+kerning first=109 second=59 amount=2
+kerning first=109 second=119 amount=1
+kerning first=109 second=122 amount=1
+kerning first=109 second=110 amount=1
+kerning first=109 second=120 amount=2
+kerning first=109 second=114 amount=1
+kerning first=109 second=118 amount=1
+kerning first=109 second=111 amount=1
+kerning first=109 second=97 amount=1
+kerning first=109 second=115 amount=1
+kerning first=109 second=58 amount=1
+kerning first=109 second=34 amount=-1
+kerning first=109 second=39 amount=-1
+kerning first=109 second=44 amount=2
+kerning first=109 second=46 amount=1
+kerning first=122 second=106 amount=1
+kerning first=122 second=52 amount=-1
+kerning first=122 second=108 amount=1
+kerning first=122 second=50 amount=1
+kerning first=122 second=92 amount=-2
+kerning first=122 second=47 amount=1
+kerning first=122 second=107 amount=1
+kerning first=122 second=104 amount=1
+kerning first=122 second=102 amount=1
+kerning first=122 second=49 amount=-3
+kerning first=122 second=33 amount=1
+kerning first=122 second=100 amount=1
+kerning first=122 second=113 amount=1
+kerning first=122 second=112 amount=1
+kerning first=122 second=98 amount=1
+kerning first=122 second=40 amount=1
+kerning first=122 second=41 amount=1
+kerning first=122 second=105 amount=1
+kerning first=122 second=116 amount=2
+kerning first=122 second=121 amount=2
+kerning first=122 second=103 amount=1
+kerning first=122 second=59 amount=1
+kerning first=122 second=119 amount=2
+kerning first=122 second=109 amount=1
+kerning first=122 second=122 amount=1
+kerning first=122 second=110 amount=1
+kerning first=122 second=120 amount=2
+kerning first=122 second=114 amount=1
+kerning first=122 second=117 amount=1
+kerning first=122 second=118 amount=2
+kerning first=122 second=111 amount=1
+kerning first=122 second=99 amount=1
+kerning first=122 second=35 amount=1
+kerning first=122 second=97 amount=1
+kerning first=122 second=115 amount=1
+kerning first=122 second=58 amount=1
+kerning first=122 second=44 amount=1
+kerning first=122 second=45 amount=-1
+kerning first=122 second=46 amount=1
+kerning first=122 second=32 amount=1
+kerning first=110 second=106 amount=1
+kerning first=110 second=52 amount=1
+kerning first=110 second=55 amount=1
+kerning first=110 second=63 amount=-1
+kerning first=110 second=108 amount=1
+kerning first=110 second=50 amount=1
+kerning first=110 second=92 amount=-3
+kerning first=110 second=47 amount=1
+kerning first=110 second=107 amount=1
+kerning first=110 second=104 amount=1
+kerning first=110 second=102 amount=1
+kerning first=110 second=49 amount=-3
+kerning first=110 second=33 amount=1
+kerning first=110 second=100 amount=1
+kerning first=110 second=113 amount=1
+kerning first=110 second=112 amount=1
+kerning first=110 second=98 amount=1
+kerning first=110 second=40 amount=1
+kerning first=110 second=41 amount=1
+kerning first=110 second=105 amount=1
+kerning first=110 second=116 amount=1
+kerning first=110 second=121 amount=1
+kerning first=110 second=103 amount=1
+kerning first=110 second=59 amount=1
+kerning first=110 second=119 amount=1
+kerning first=110 second=122 amount=1
+kerning first=110 second=110 amount=1
+kerning first=110 second=120 amount=2
+kerning first=110 second=114 amount=1
+kerning first=110 second=117 amount=1
+kerning first=110 second=118 amount=1
+kerning first=110 second=111 amount=1
+kerning first=110 second=101 amount=1
+kerning first=110 second=99 amount=1
+kerning first=110 second=35 amount=1
+kerning first=110 second=97 amount=1
+kerning first=110 second=115 amount=1
+kerning first=110 second=58 amount=1
+kerning first=110 second=34 amount=-1
+kerning first=110 second=39 amount=-1
+kerning first=110 second=45 amount=1
+kerning first=110 second=46 amount=1
+kerning first=120 second=106 amount=1
+kerning first=120 second=52 amount=-1
+kerning first=120 second=53 amount=-1
+kerning first=120 second=63 amount=1
+kerning first=120 second=108 amount=1
+kerning first=120 second=64 amount=-1
+kerning first=120 second=92 amount=-1
+kerning first=120 second=47 amount=1
+kerning first=120 second=107 amount=1
+kerning first=120 second=104 amount=1
+kerning first=120 second=102 amount=1
+kerning first=120 second=93 amount=-1
+kerning first=120 second=49 amount=-3
+kerning first=120 second=33 amount=1
+kerning first=120 second=112 amount=1
+kerning first=120 second=98 amount=1
+kerning first=120 second=40 amount=1
+kerning first=120 second=105 amount=1
+kerning first=120 second=116 amount=1
+kerning first=120 second=121 amount=2
+kerning first=120 second=59 amount=1
+kerning first=120 second=119 amount=2
+kerning first=120 second=109 amount=1
+kerning first=120 second=122 amount=1
+kerning first=120 second=110 amount=1
+kerning first=120 second=120 amount=2
+kerning first=120 second=114 amount=1
+kerning first=120 second=117 amount=1
+kerning first=120 second=118 amount=2
+kerning first=120 second=35 amount=1
+kerning first=120 second=97 amount=1
+kerning first=120 second=34 amount=1
+kerning first=120 second=39 amount=1
+kerning first=120 second=44 amount=1
+kerning first=120 second=45 amount=-1
+kerning first=120 second=46 amount=1
+kerning first=120 second=32 amount=1
+kerning first=114 second=106 amount=2
+kerning first=114 second=52 amount=-1
+kerning first=114 second=55 amount=-2
+kerning first=114 second=48 amount=1
+kerning first=114 second=63 amount=1
+kerning first=114 second=108 amount=1
+kerning first=114 second=64 amount=-1
+kerning first=114 second=50 amount=-1
+kerning first=114 second=92 amount=-1
+kerning first=114 second=47 amount=-3
+kerning first=114 second=107 amount=1
+kerning first=114 second=104 amount=1
+kerning first=114 second=102 amount=1
+kerning first=114 second=93 amount=-3
+kerning first=114 second=49 amount=-3
+kerning first=114 second=33 amount=2
+kerning first=114 second=113 amount=1
+kerning first=114 second=112 amount=2
+kerning first=114 second=98 amount=1
+kerning first=114 second=40 amount=1
+kerning first=114 second=105 amount=2
+kerning first=114 second=116 amount=1
+kerning first=114 second=121 amount=2
+kerning first=114 second=103 amount=1
+kerning first=114 second=59 amount=1
+kerning first=114 second=119 amount=3
+kerning first=114 second=109 amount=1
+kerning first=114 second=122 amount=1
+kerning first=114 second=110 amount=2
+kerning first=114 second=120 amount=2
+kerning first=114 second=114 amount=2
+kerning first=114 second=117 amount=2
+kerning first=114 second=118 amount=3
+kerning first=114 second=111 amount=1
+kerning first=114 second=35 amount=1
+kerning first=114 second=97 amount=1
+kerning first=114 second=34 amount=1
+kerning first=114 second=39 amount=2
+kerning first=114 second=44 amount=-3
+kerning first=114 second=45 amount=-2
+kerning first=114 second=46 amount=-3
+kerning first=117 second=106 amount=1
+kerning first=117 second=52 amount=1
+kerning first=117 second=56 amount=-1
+kerning first=117 second=63 amount=-1
+kerning first=117 second=108 amount=1
+kerning first=117 second=50 amount=-1
+kerning first=117 second=92 amount=-2
+kerning first=117 second=107 amount=1
+kerning first=117 second=104 amount=1
+kerning first=117 second=102 amount=1
+kerning first=117 second=93 amount=-1
+kerning first=117 second=49 amount=-3
+kerning first=117 second=33 amount=1
+kerning first=117 second=51 amount=-1
+kerning first=117 second=100 amount=1
+kerning first=117 second=113 amount=1
+kerning first=117 second=112 amount=1
+kerning first=117 second=98 amount=1
+kerning first=117 second=40 amount=1
+kerning first=117 second=105 amount=1
+kerning first=117 second=116 amount=2
+kerning first=117 second=121 amount=2
+kerning first=117 second=103 amount=1
+kerning first=117 second=59 amount=1
+kerning first=117 second=119 amount=2
+kerning first=117 second=109 amount=1
+kerning first=117 second=110 amount=1
+kerning first=117 second=120 amount=1
+kerning first=117 second=114 amount=1
+kerning first=117 second=117 amount=1
+kerning first=117 second=118 amount=2
+kerning first=117 second=111 amount=1
+kerning first=117 second=101 amount=1
+kerning first=117 second=99 amount=1
+kerning first=117 second=35 amount=1
+kerning first=117 second=97 amount=1
+kerning first=117 second=115 amount=1
+kerning first=117 second=34 amount=-2
+kerning first=117 second=39 amount=-2
+kerning first=117 second=44 amount=-1
+kerning first=117 second=45 amount=1
+kerning first=118 second=106 amount=2
+kerning first=118 second=55 amount=-2
+kerning first=118 second=48 amount=1
+kerning first=118 second=63 amount=1
+kerning first=118 second=108 amount=2
+kerning first=118 second=50 amount=-1
+kerning first=118 second=92 amount=-1
+kerning first=118 second=47 amount=-1
+kerning first=118 second=107 amount=2
+kerning first=118 second=104 amount=1
+kerning first=118 second=102 amount=2
+kerning first=118 second=93 amount=-2
+kerning first=118 second=49 amount=-3
+kerning first=118 second=33 amount=2
+kerning first=118 second=54 amount=1
+kerning first=118 second=57 amount=1
+kerning first=118 second=100 amount=1
+kerning first=118 second=113 amount=1
+kerning first=118 second=112 amount=2
+kerning first=118 second=98 amount=1
+kerning first=118 second=40 amount=2
+kerning first=118 second=105 amount=2
+kerning first=118 second=116 amount=2
+kerning first=118 second=121 amount=2
+kerning first=118 second=103 amount=1
+kerning first=118 second=59 amount=1
+kerning first=118 second=119 amount=3
+kerning first=118 second=109 amount=2
+kerning first=118 second=122 amount=1
+kerning first=118 second=110 amount=2
+kerning first=118 second=120 amount=2
+kerning first=118 second=114 amount=2
+kerning first=118 second=117 amount=2
+kerning first=118 second=118 amount=3
+kerning first=118 second=111 amount=1
+kerning first=118 second=101 amount=1
+kerning first=118 second=99 amount=1
+kerning first=118 second=35 amount=2
+kerning first=118 second=97 amount=1
+kerning first=118 second=115 amount=1
+kerning first=118 second=58 amount=1
+kerning first=118 second=34 amount=1
+kerning first=118 second=39 amount=1
+kerning first=118 second=44 amount=-2
+kerning first=118 second=46 amount=-2
+kerning first=118 second=32 amount=1
+kerning first=111 second=106 amount=1
+kerning first=111 second=52 amount=1
+kerning first=111 second=53 amount=1
+kerning first=111 second=63 amount=-1
+kerning first=111 second=108 amount=1
+kerning first=111 second=64 amount=1
+kerning first=111 second=92 amount=-3
+kerning first=111 second=47 amount=1
+kerning first=111 second=107 amount=1
+kerning first=111 second=104 amount=1
+kerning first=111 second=102 amount=1
+kerning first=111 second=93 amount=-1
+kerning first=111 second=49 amount=-3
+kerning first=111 second=33 amount=1
+kerning first=111 second=100 amount=1
+kerning first=111 second=113 amount=1
+kerning first=111 second=112 amount=1
+kerning first=111 second=98 amount=1
+kerning first=111 second=40 amount=1
+kerning first=111 second=105 amount=1
+kerning first=111 second=116 amount=2
+kerning first=111 second=121 amount=1
+kerning first=111 second=103 amount=1
+kerning first=111 second=59 amount=1
+kerning first=111 second=119 amount=2
+kerning first=111 second=109 amount=1
+kerning first=111 second=110 amount=1
+kerning first=111 second=120 amount=1
+kerning first=111 second=114 amount=1
+kerning first=111 second=117 amount=1
+kerning first=111 second=118 amount=1
+kerning first=111 second=111 amount=1
+kerning first=111 second=101 amount=1
+kerning first=111 second=99 amount=1
+kerning first=111 second=35 amount=1
+kerning first=111 second=97 amount=1
+kerning first=111 second=115 amount=1
+kerning first=111 second=34 amount=-2
+kerning first=111 second=39 amount=-2
+kerning first=111 second=45 amount=1
+kerning first=111 second=46 amount=1
+kerning first=101 second=106 amount=1
+kerning first=101 second=52 amount=1
+kerning first=101 second=53 amount=1
+kerning first=101 second=55 amount=1
+kerning first=101 second=56 amount=1
+kerning first=101 second=63 amount=-1
+kerning first=101 second=108 amount=2
+kerning first=101 second=64 amount=1
+kerning first=101 second=50 amount=1
+kerning first=101 second=92 amount=-2
+kerning first=101 second=47 amount=2
+kerning first=101 second=107 amount=2
+kerning first=101 second=104 amount=1
+kerning first=101 second=102 amount=1
+kerning first=101 second=49 amount=-2
+kerning first=101 second=33 amount=1
+kerning first=101 second=51 amount=1
+kerning first=101 second=57 amount=1
+kerning first=101 second=100 amount=2
+kerning first=101 second=113 amount=1
+kerning first=101 second=112 amount=1
+kerning first=101 second=98 amount=1
+kerning first=101 second=40 amount=1
+kerning first=101 second=41 amount=1
+kerning first=101 second=105 amount=2
+kerning first=101 second=116 amount=2
+kerning first=101 second=121 amount=1
+kerning first=101 second=103 amount=1
+kerning first=101 second=59 amount=1
+kerning first=101 second=119 amount=2
+kerning first=101 second=109 amount=1
+kerning first=101 second=122 amount=1
+kerning first=101 second=110 amount=2
+kerning first=101 second=120 amount=2
+kerning first=101 second=114 amount=2
+kerning first=101 second=117 amount=2
+kerning first=101 second=118 amount=2
+kerning first=101 second=111 amount=2
+kerning first=101 second=101 amount=1
+kerning first=101 second=99 amount=2
+kerning first=101 second=35 amount=1
+kerning first=101 second=97 amount=2
+kerning first=101 second=115 amount=2
+kerning first=101 second=58 amount=1
+kerning first=101 second=34 amount=-1
+kerning first=101 second=39 amount=-1
+kerning first=101 second=44 amount=1
+kerning first=101 second=45 amount=1
+kerning first=101 second=46 amount=2
+kerning first=99 second=106 amount=1
+kerning first=99 second=52 amount=1
+kerning first=99 second=53 amount=1
+kerning first=99 second=63 amount=-1
+kerning first=99 second=108 amount=1
+kerning first=99 second=50 amount=-1
+kerning first=99 second=92 amount=-3
+kerning first=99 second=107 amount=1
+kerning first=99 second=104 amount=1
+kerning first=99 second=102 amount=1
+kerning first=99 second=93 amount=-1
+kerning first=99 second=49 amount=-4
+kerning first=99 second=33 amount=1
+kerning first=99 second=100 amount=1
+kerning first=99 second=113 amount=1
+kerning first=99 second=112 amount=1
+kerning first=99 second=98 amount=1
+kerning first=99 second=40 amount=1
+kerning first=99 second=105 amount=1
+kerning first=99 second=116 amount=1
+kerning first=99 second=121 amount=1
+kerning first=99 second=103 amount=1
+kerning first=99 second=119 amount=1
+kerning first=99 second=110 amount=1
+kerning first=99 second=120 amount=1
+kerning first=99 second=114 amount=1
+kerning first=99 second=117 amount=1
+kerning first=99 second=118 amount=1
+kerning first=99 second=111 amount=1
+kerning first=99 second=101 amount=1
+kerning first=99 second=99 amount=1
+kerning first=99 second=35 amount=1
+kerning first=99 second=97 amount=1
+kerning first=99 second=115 amount=1
+kerning first=99 second=58 amount=1
+kerning first=99 second=34 amount=-2
+kerning first=99 second=39 amount=-2
+kerning first=99 second=45 amount=1
+kerning first=99 second=46 amount=1
+kerning first=35 second=106 amount=1
+kerning first=35 second=81 amount=1
+kerning first=35 second=90 amount=-3
+kerning first=35 second=88 amount=-2
+kerning first=35 second=89 amount=-1
+kerning first=35 second=65 amount=-1
+kerning first=35 second=53 amount=-1
+kerning first=35 second=85 amount=1
+kerning first=35 second=55 amount=-1
+kerning first=35 second=74 amount=-1
+kerning first=35 second=56 amount=-1
+kerning first=35 second=63 amount=1
+kerning first=35 second=108 amount=1
+kerning first=35 second=50 amount=-1
+kerning first=35 second=92 amount=-1
+kerning first=35 second=47 amount=-3
+kerning first=35 second=71 amount=1
+kerning first=35 second=107 amount=1
+kerning first=35 second=72 amount=1
+kerning first=35 second=102 amount=1
+kerning first=35 second=93 amount=-2
+kerning first=35 second=49 amount=-3
+kerning first=35 second=33 amount=1
+kerning first=35 second=79 amount=1
+kerning first=35 second=51 amount=-1
+kerning first=35 second=57 amount=-1
+kerning first=35 second=67 amount=1
+kerning first=35 second=113 amount=1
+kerning first=35 second=112 amount=1
+kerning first=35 second=40 amount=1
+kerning first=35 second=41 amount=-1
+kerning first=35 second=105 amount=1
+kerning first=35 second=116 amount=2
+kerning first=35 second=121 amount=1
+kerning first=35 second=103 amount=1
+kerning first=35 second=119 amount=2
+kerning first=35 second=109 amount=1
+kerning first=35 second=122 amount=-1
+kerning first=35 second=110 amount=1
+kerning first=35 second=120 amount=1
+kerning first=35 second=114 amount=1
+kerning first=35 second=117 amount=1
+kerning first=35 second=118 amount=2
+kerning first=35 second=111 amount=1
+kerning first=35 second=99 amount=1
+kerning first=35 second=97 amount=1
+kerning first=35 second=34 amount=1
+kerning first=35 second=39 amount=1
+kerning first=35 second=44 amount=-5
+kerning first=35 second=46 amount=-3
+kerning first=97 second=106 amount=1
+kerning first=97 second=55 amount=1
+kerning first=97 second=48 amount=-1
+kerning first=97 second=63 amount=-2
+kerning first=97 second=108 amount=1
+kerning first=97 second=50 amount=1
+kerning first=97 second=92 amount=-4
+kerning first=97 second=47 amount=1
+kerning first=97 second=107 amount=1
+kerning first=97 second=104 amount=1
+kerning first=97 second=49 amount=-3
+kerning first=97 second=33 amount=1
+kerning first=97 second=54 amount=-1
+kerning first=97 second=57 amount=-1
+kerning first=97 second=100 amount=1
+kerning first=97 second=112 amount=1
+kerning first=97 second=98 amount=1
+kerning first=97 second=41 amount=1
+kerning first=97 second=105 amount=1
+kerning first=97 second=116 amount=1
+kerning first=97 second=103 amount=1
+kerning first=97 second=59 amount=1
+kerning first=97 second=119 amount=1
+kerning first=97 second=122 amount=1
+kerning first=97 second=110 amount=1
+kerning first=97 second=120 amount=2
+kerning first=97 second=114 amount=1
+kerning first=97 second=117 amount=1
+kerning first=97 second=118 amount=1
+kerning first=97 second=111 amount=1
+kerning first=97 second=99 amount=1
+kerning first=97 second=97 amount=1
+kerning first=97 second=115 amount=1
+kerning first=97 second=58 amount=1
+kerning first=97 second=34 amount=-3
+kerning first=97 second=39 amount=-2
+kerning first=97 second=44 amount=1
+kerning first=97 second=46 amount=1
+kerning first=115 second=106 amount=1
+kerning first=115 second=53 amount=1
+kerning first=115 second=63 amount=-1
+kerning first=115 second=108 amount=1
+kerning first=115 second=92 amount=-3
+kerning first=115 second=47 amount=1
+kerning first=115 second=107 amount=1
+kerning first=115 second=104 amount=1
+kerning first=115 second=102 amount=1
+kerning first=115 second=49 amount=-3
+kerning first=115 second=33 amount=1
+kerning first=115 second=100 amount=1
+kerning first=115 second=113 amount=1
+kerning first=115 second=112 amount=1
+kerning first=115 second=98 amount=1
+kerning first=115 second=40 amount=1
+kerning first=115 second=41 amount=1
+kerning first=115 second=105 amount=1
+kerning first=115 second=116 amount=2
+kerning first=115 second=121 amount=1
+kerning first=115 second=103 amount=1
+kerning first=115 second=59 amount=1
+kerning first=115 second=119 amount=2
+kerning first=115 second=109 amount=1
+kerning first=115 second=122 amount=1
+kerning first=115 second=110 amount=1
+kerning first=115 second=120 amount=1
+kerning first=115 second=114 amount=1
+kerning first=115 second=117 amount=1
+kerning first=115 second=118 amount=1
+kerning first=115 second=111 amount=1
+kerning first=115 second=101 amount=1
+kerning first=115 second=99 amount=1
+kerning first=115 second=35 amount=1
+kerning first=115 second=97 amount=2
+kerning first=115 second=115 amount=1
+kerning first=115 second=58 amount=1
+kerning first=115 second=34 amount=-2
+kerning first=115 second=39 amount=-2
+kerning first=115 second=46 amount=1
+kerning first=58 second=87 amount=-1
+kerning first=58 second=77 amount=-1
+kerning first=58 second=89 amount=-2
+kerning first=58 second=65 amount=-1
+kerning first=58 second=86 amount=-1
+kerning first=58 second=52 amount=-1
+kerning first=58 second=53 amount=-1
+kerning first=58 second=55 amount=-1
+kerning first=58 second=84 amount=-3
+kerning first=58 second=48 amount=-1
+kerning first=58 second=74 amount=-2
+kerning first=58 second=56 amount=-1
+kerning first=58 second=63 amount=-1
+kerning first=58 second=64 amount=-1
+kerning first=58 second=50 amount=-1
+kerning first=58 second=92 amount=-3
+kerning first=58 second=93 amount=-1
+kerning first=58 second=49 amount=-4
+kerning first=58 second=51 amount=-1
+kerning first=58 second=54 amount=-1
+kerning first=58 second=57 amount=-1
+kerning first=58 second=116 amount=1
+kerning first=58 second=121 amount=1
+kerning first=58 second=119 amount=1
+kerning first=58 second=120 amount=1
+kerning first=58 second=114 amount=1
+kerning first=58 second=118 amount=1
+kerning first=58 second=58 amount=-1
+kerning first=58 second=34 amount=-3
+kerning first=58 second=39 amount=-1
+kerning first=58 second=45 amount=-2
+kerning first=42 second=83 amount=1
+kerning first=42 second=93 amount=1
+kerning first=42 second=113 amount=1
+kerning first=42 second=103 amount=1
+kerning first=34 second=106 amount=1
+kerning first=34 second=87 amount=1
+kerning first=34 second=90 amount=-1
+kerning first=34 second=88 amount=1
+kerning first=34 second=89 amount=1
+kerning first=34 second=65 amount=-3
+kerning first=34 second=75 amount=1
+kerning first=34 second=86 amount=1
+kerning first=34 second=52 amount=-3
+kerning first=34 second=53 amount=-1
+kerning first=34 second=85 amount=1
+kerning first=34 second=84 amount=1
+kerning first=34 second=48 amount=-1
+kerning first=34 second=76 amount=1
+kerning first=34 second=74 amount=-5
+kerning first=34 second=56 amount=-1
+kerning first=34 second=80 amount=1
+kerning first=34 second=63 amount=1
+kerning first=34 second=108 amount=1
+kerning first=34 second=64 amount=-4
+kerning first=34 second=82 amount=1
+kerning first=34 second=50 amount=-1
+kerning first=34 second=92 amount=1
+kerning first=34 second=47 amount=-1
+kerning first=34 second=107 amount=1
+kerning first=34 second=66 amount=1
+kerning first=34 second=102 amount=-1
+kerning first=34 second=93 amount=1
+kerning first=34 second=49 amount=-2
+kerning first=34 second=73 amount=1
+kerning first=34 second=33 amount=1
+kerning first=34 second=51 amount=-1
+kerning first=34 second=54 amount=-1
+kerning first=34 second=57 amount=-1
+kerning first=34 second=100 amount=-2
+kerning first=34 second=113 amount=-1
+kerning first=34 second=112 amount=1
+kerning first=34 second=98 amount=1
+kerning first=34 second=41 amount=1
+kerning first=34 second=105 amount=1
+kerning first=34 second=116 amount=-1
+kerning first=34 second=121 amount=2
+kerning first=34 second=103 amount=-1
+kerning first=34 second=119 amount=1
+kerning first=34 second=109 amount=1
+kerning first=34 second=122 amount=-1
+kerning first=34 second=110 amount=1
+kerning first=34 second=120 amount=1
+kerning first=34 second=117 amount=1
+kerning first=34 second=118 amount=1
+kerning first=34 second=111 amount=-1
+kerning first=34 second=101 amount=-2
+kerning first=34 second=99 amount=-2
+kerning first=34 second=35 amount=-1
+kerning first=34 second=97 amount=-2
+kerning first=34 second=115 amount=-1
+kerning first=34 second=34 amount=1
+kerning first=34 second=39 amount=1
+kerning first=34 second=44 amount=-3
+kerning first=34 second=45 amount=-1
+kerning first=34 second=46 amount=-2
+kerning first=39 second=87 amount=1
+kerning first=39 second=90 amount=-1
+kerning first=39 second=88 amount=1
+kerning first=39 second=89 amount=1
+kerning first=39 second=65 amount=-3
+kerning first=39 second=75 amount=1
+kerning first=39 second=86 amount=2
+kerning first=39 second=52 amount=-2
+kerning first=39 second=78 amount=1
+kerning first=39 second=53 amount=-1
+kerning first=39 second=85 amount=1
+kerning first=39 second=84 amount=1
+kerning first=39 second=68 amount=1
+kerning first=39 second=76 amount=1
+kerning first=39 second=74 amount=-4
+kerning first=39 second=80 amount=1
+kerning first=39 second=63 amount=1
+kerning first=39 second=69 amount=1
+kerning first=39 second=108 amount=1
+kerning first=39 second=64 amount=-5
+kerning first=39 second=82 amount=1
+kerning first=39 second=50 amount=-1
+kerning first=39 second=92 amount=2
+kerning first=39 second=47 amount=-5
+kerning first=39 second=107 amount=1
+kerning first=39 second=66 amount=1
+kerning first=39 second=104 amount=1
+kerning first=39 second=102 amount=-1
+kerning first=39 second=93 amount=1
+kerning first=39 second=49 amount=-1
+kerning first=39 second=73 amount=1
+kerning first=39 second=33 amount=1
+kerning first=39 second=54 amount=-1
+kerning first=39 second=100 amount=-2
+kerning first=39 second=113 amount=-2
+kerning first=39 second=98 amount=1
+kerning first=39 second=41 amount=1
+kerning first=39 second=105 amount=1
+kerning first=39 second=116 amount=-1
+kerning first=39 second=121 amount=1
+kerning first=39 second=103 amount=-1
+kerning first=39 second=59 amount=-1
+kerning first=39 second=122 amount=-1
+kerning first=39 second=114 amount=-1
+kerning first=39 second=118 amount=1
+kerning first=39 second=111 amount=-2
+kerning first=39 second=101 amount=-2
+kerning first=39 second=99 amount=-2
+kerning first=39 second=35 amount=-1
+kerning first=39 second=97 amount=-1
+kerning first=39 second=115 amount=-2
+kerning first=39 second=58 amount=-1
+kerning first=39 second=34 amount=1
+kerning first=39 second=39 amount=1
+kerning first=39 second=44 amount=-3
+kerning first=39 second=45 amount=-2
+kerning first=39 second=46 amount=-1
+kerning first=44 second=106 amount=1
+kerning first=44 second=87 amount=-3
+kerning first=44 second=81 amount=-2
+kerning first=44 second=90 amount=2
+kerning first=44 second=88 amount=1
+kerning first=44 second=89 amount=-3
+kerning first=44 second=65 amount=1
+kerning first=44 second=86 amount=-2
+kerning first=44 second=52 amount=-3
+kerning first=44 second=85 amount=-1
+kerning first=44 second=55 amount=1
+kerning first=44 second=84 amount=-1
+kerning first=44 second=83 amount=-1
+kerning first=44 second=48 amount=-2
+kerning first=44 second=74 amount=-2
+kerning first=44 second=56 amount=-1
+kerning first=44 second=80 amount=1
+kerning first=44 second=63 amount=-2
+kerning first=44 second=108 amount=1
+kerning first=44 second=64 amount=-1
+kerning first=44 second=50 amount=1
+kerning first=44 second=92 amount=-4
+kerning first=44 second=47 amount=2
+kerning first=44 second=71 amount=-1
+kerning first=44 second=107 amount=1
+kerning first=44 second=102 amount=-1
+kerning first=44 second=49 amount=-3
+kerning first=44 second=73 amount=1
+kerning first=44 second=33 amount=1
+kerning first=44 second=79 amount=-2
+kerning first=44 second=51 amount=-1
+kerning first=44 second=54 amount=-2
+kerning first=44 second=57 amount=-2
+kerning first=44 second=70 amount=1
+kerning first=44 second=113 amount=-1
+kerning first=44 second=98 amount=1
+kerning first=44 second=41 amount=1
+kerning first=44 second=105 amount=1
+kerning first=44 second=116 amount=-1
+kerning first=44 second=121 amount=-2
+kerning first=44 second=59 amount=2
+kerning first=44 second=119 amount=-1
+kerning first=44 second=109 amount=-1
+kerning first=44 second=122 amount=1
+kerning first=44 second=110 amount=1
+kerning first=44 second=120 amount=1
+kerning first=44 second=114 amount=1
+kerning first=44 second=118 amount=-1
+kerning first=44 second=35 amount=-3
+kerning first=44 second=97 amount=1
+kerning first=44 second=58 amount=1
+kerning first=44 second=34 amount=-3
+kerning first=44 second=39 amount=-4
+kerning first=44 second=44 amount=1
+kerning first=44 second=45 amount=-3
+kerning first=44 second=46 amount=1
+kerning first=45 second=87 amount=-1
+kerning first=45 second=81 amount=1
+kerning first=45 second=90 amount=-2
+kerning first=45 second=88 amount=-2
+kerning first=45 second=89 amount=-3
+kerning first=45 second=65 amount=-1
+kerning first=45 second=86 amount=-1
+kerning first=45 second=52 amount=1
+kerning first=45 second=53 amount=-1
+kerning first=45 second=55 amount=-3
+kerning first=45 second=84 amount=-2
+kerning first=45 second=83 amount=-2
+kerning first=45 second=56 amount=-2
+kerning first=45 second=63 amount=-1
+kerning first=45 second=108 amount=1
+kerning first=45 second=50 amount=-4
+kerning first=45 second=92 amount=-4
+kerning first=45 second=47 amount=-2
+kerning first=45 second=71 amount=1
+kerning first=45 second=107 amount=1
+kerning first=45 second=72 amount=1
+kerning first=45 second=93 amount=-4
+kerning first=45 second=49 amount=-4
+kerning first=45 second=33 amount=1
+kerning first=45 second=79 amount=1
+kerning first=45 second=51 amount=-2
+kerning first=45 second=57 amount=-1
+kerning first=45 second=67 amount=1
+kerning first=45 second=100 amount=1
+kerning first=45 second=113 amount=1
+kerning first=45 second=40 amount=1
+kerning first=45 second=41 amount=-1
+kerning first=45 second=105 amount=1
+kerning first=45 second=116 amount=1
+kerning first=45 second=103 amount=1
+kerning first=45 second=119 amount=1
+kerning first=45 second=122 amount=-2
+kerning first=45 second=110 amount=1
+kerning first=45 second=120 amount=-1
+kerning first=45 second=114 amount=1
+kerning first=45 second=117 amount=1
+kerning first=45 second=118 amount=1
+kerning first=45 second=111 amount=1
+kerning first=45 second=101 amount=1
+kerning first=45 second=99 amount=1
+kerning first=45 second=35 amount=1
+kerning first=45 second=58 amount=-1
+kerning first=45 second=34 amount=-1
+kerning first=45 second=39 amount=-1
+kerning first=45 second=44 amount=-3
+kerning first=45 second=45 amount=1
+kerning first=45 second=46 amount=-3
+kerning first=46 second=106 amount=1
+kerning first=46 second=87 amount=-2
+kerning first=46 second=90 amount=2
+kerning first=46 second=88 amount=1
+kerning first=46 second=89 amount=-3
+kerning first=46 second=65 amount=1
+kerning first=46 second=86 amount=-1
+kerning first=46 second=52 amount=-3
+kerning first=46 second=53 amount=1
+kerning first=46 second=85 amount=-1
+kerning first=46 second=55 amount=1
+kerning first=46 second=84 amount=-2
+kerning first=46 second=48 amount=-1
+kerning first=46 second=74 amount=-1
+kerning first=46 second=80 amount=1
+kerning first=46 second=63 amount=-2
+kerning first=46 second=108 amount=1
+kerning first=46 second=50 amount=1
+kerning first=46 second=92 amount=-5
+kerning first=46 second=47 amount=2
+kerning first=46 second=107 amount=1
+kerning first=46 second=104 amount=1
+kerning first=46 second=102 amount=-1
+kerning first=46 second=49 amount=-3
+kerning first=46 second=73 amount=1
+kerning first=46 second=33 amount=1
+kerning first=46 second=79 amount=-1
+kerning first=46 second=54 amount=-1
+kerning first=46 second=100 amount=1
+kerning first=46 second=112 amount=1
+kerning first=46 second=98 amount=1
+kerning first=46 second=41 amount=1
+kerning first=46 second=105 amount=1
+kerning first=46 second=116 amount=-1
+kerning first=46 second=121 amount=-2
+kerning first=46 second=103 amount=1
+kerning first=46 second=59 amount=1
+kerning first=46 second=122 amount=1
+kerning first=46 second=110 amount=1
+kerning first=46 second=120 amount=2
+kerning first=46 second=114 amount=1
+kerning first=46 second=117 amount=1
+kerning first=46 second=118 amount=-1
+kerning first=46 second=111 amount=1
+kerning first=46 second=101 amount=1
+kerning first=46 second=99 amount=1
+kerning first=46 second=35 amount=-5
+kerning first=46 second=97 amount=1
+kerning first=46 second=115 amount=1
+kerning first=46 second=58 amount=1
+kerning first=46 second=34 amount=-5
+kerning first=46 second=39 amount=-1
+kerning first=46 second=44 amount=1
+kerning first=46 second=45 amount=-2
+kerning first=46 second=46 amount=1
+kerning first=126 second=33 amount=-1
+kerning first=126 second=32 amount=-1
+kerning first=32 second=53 amount=-1
+kerning first=32 second=83 amount=1
+kerning first=32 second=123 amount=1
diff --git a/tests/cpp-tests/Resources/fonts/markerFelt.png b/tests/cpp-tests/Resources/fonts/markerFelt.png
new file mode 100755
index 0000000000..8651e05e32
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/markerFelt.png differ
diff --git a/tests/cpp-tests/Resources/fonts/strings.xml b/tests/cpp-tests/Resources/fonts/strings.xml
new file mode 100755
index 0000000000..0cf865c3bc
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/strings.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ chinese1
+ 美好的一天
+ japanese
+ 良ã„一日を
+ russian
+ Хорошего днÑ
+ spanish
+ Buen dÃa
+
+
diff --git a/tests/cpp-tests/Resources/fonts/tahoma.ttf b/tests/cpp-tests/Resources/fonts/tahoma.ttf
new file mode 100755
index 0000000000..3f8554bba4
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/tahoma.ttf differ
diff --git a/tests/cpp-tests/Resources/fonts/tuffy_bold_italic-charmap.plist b/tests/cpp-tests/Resources/fonts/tuffy_bold_italic-charmap.plist
new file mode 100755
index 0000000000..e906288c7c
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/tuffy_bold_italic-charmap.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ version
+ 1
+ textureFilename
+ tuffy_bold_italic-charmap.png
+ itemHeight
+ 64
+ itemWidth
+ 48
+ firstChar
+ 32
+
+
diff --git a/tests/cpp-tests/Resources/fonts/tuffy_bold_italic-charmap.png b/tests/cpp-tests/Resources/fonts/tuffy_bold_italic-charmap.png
new file mode 100755
index 0000000000..c39d1a9a4b
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/tuffy_bold_italic-charmap.png differ
diff --git a/tests/cpp-tests/Resources/fonts/west_england-64.fnt b/tests/cpp-tests/Resources/fonts/west_england-64.fnt
new file mode 100755
index 0000000000..0663d7de12
--- /dev/null
+++ b/tests/cpp-tests/Resources/fonts/west_england-64.fnt
@@ -0,0 +1,99 @@
+info face="West_england" size=64 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=48 base=36 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="west_england-64.png"
+chars count=95
+char id=39 x=2 y=2 width=44 height=52 xoffset=-1 yoffset=-1 xadvance=44 page=0 chnl=0 letter="'"
+char id=96 x=48 y=2 width=24 height=52 xoffset=-1 yoffset=-1 xadvance=24 page=0 chnl=0 letter="`"
+char id=106 x=74 y=2 width=32 height=44 xoffset=3 yoffset=3 xadvance=36 page=0 chnl=0 letter="j"
+char id=94 x=108 y=2 width=32 height=44 xoffset=7 yoffset=-1 xadvance=40 page=0 chnl=0 letter="^"
+char id=124 x=142 y=2 width=20 height=44 xoffset=11 yoffset=3 xadvance=32 page=0 chnl=0 letter="|"
+char id=47 x=164 y=2 width=44 height=40 xoffset=-1 yoffset=3 xadvance=44 page=0 chnl=0 letter="/"
+char id=123 x=210 y=2 width=40 height=40 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="{"
+char id=125 x=252 y=2 width=40 height=40 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="}"
+char id=81 x=294 y=2 width=36 height=40 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="Q"
+char id=121 x=332 y=2 width=36 height=40 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="y"
+char id=92 x=370 y=2 width=36 height=40 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="\"
+char id=112 x=408 y=2 width=36 height=40 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="p"
+char id=113 x=446 y=2 width=36 height=40 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="q"
+char id=36 x=2 y=56 width=32 height=40 xoffset=3 yoffset=3 xadvance=36 page=0 chnl=0 letter="$"
+char id=60 x=36 y=56 width=28 height=40 xoffset=7 yoffset=3 xadvance=36 page=0 chnl=0 letter="<"
+char id=62 x=66 y=56 width=28 height=40 xoffset=7 yoffset=3 xadvance=36 page=0 chnl=0 letter=">"
+char id=40 x=96 y=56 width=16 height=40 xoffset=19 yoffset=3 xadvance=36 page=0 chnl=0 letter="("
+char id=41 x=114 y=56 width=16 height=40 xoffset=7 yoffset=3 xadvance=24 page=0 chnl=0 letter=")"
+char id=59 x=132 y=56 width=16 height=40 xoffset=7 yoffset=11 xadvance=24 page=0 chnl=0 letter=";"
+char id=37 x=150 y=56 width=40 height=36 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="%"
+char id=87 x=192 y=56 width=40 height=36 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="W"
+char id=77 x=234 y=56 width=40 height=36 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="M"
+char id=88 x=276 y=56 width=40 height=36 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="X"
+char id=52 x=318 y=56 width=40 height=36 xoffset=3 yoffset=3 xadvance=44 page=0 chnl=0 letter="4"
+char id=64 x=360 y=56 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="@"
+char id=79 x=398 y=56 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="O"
+char id=71 x=436 y=56 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="G"
+char id=67 x=474 y=56 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="C"
+char id=38 x=2 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="&"
+char id=83 x=40 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="S"
+char id=103 x=78 y=98 width=36 height=36 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="g"
+char id=85 x=116 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="U"
+char id=51 x=154 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="3"
+char id=53 x=192 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="5"
+char id=54 x=230 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="6"
+char id=56 x=268 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="8"
+char id=57 x=306 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="9"
+char id=48 x=344 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="0"
+char id=63 x=382 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="?"
+char id=98 x=420 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="b"
+char id=100 x=458 y=98 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="d"
+char id=102 x=2 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="f"
+char id=65 x=40 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="A"
+char id=86 x=78 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="V"
+char id=89 x=116 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="Y"
+char id=82 x=154 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="R"
+char id=68 x=192 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="D"
+char id=75 x=230 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="K"
+char id=72 x=268 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="H"
+char id=78 x=306 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="N"
+char id=84 x=344 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="T"
+char id=90 x=382 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="Z"
+char id=66 x=420 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="B"
+char id=80 x=458 y=136 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="P"
+char id=50 x=2 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="2"
+char id=55 x=40 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="7"
+char id=104 x=78 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="h"
+char id=107 x=116 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="k"
+char id=49 x=154 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="1"
+char id=116 x=192 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="t"
+char id=105 x=230 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="i"
+char id=108 x=268 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="l"
+char id=95 x=306 y=174 width=36 height=36 xoffset=3 yoffset=3 xadvance=40 page=0 chnl=0 letter="_"
+char id=35 x=344 y=174 width=32 height=36 xoffset=3 yoffset=3 xadvance=36 page=0 chnl=0 letter="#"
+char id=74 x=378 y=174 width=32 height=36 xoffset=3 yoffset=3 xadvance=36 page=0 chnl=0 letter="J"
+char id=69 x=412 y=174 width=32 height=36 xoffset=3 yoffset=3 xadvance=36 page=0 chnl=0 letter="E"
+char id=70 x=446 y=174 width=32 height=36 xoffset=3 yoffset=3 xadvance=36 page=0 chnl=0 letter="F"
+char id=76 x=2 y=212 width=32 height=36 xoffset=7 yoffset=3 xadvance=40 page=0 chnl=0 letter="L"
+char id=73 x=36 y=212 width=28 height=36 xoffset=7 yoffset=3 xadvance=36 page=0 chnl=0 letter="I"
+char id=33 x=66 y=212 width=12 height=36 xoffset=15 yoffset=3 xadvance=28 page=0 chnl=0 letter="!"
+char id=91 x=80 y=212 width=36 height=32 xoffset=3 yoffset=7 xadvance=40 page=0 chnl=0 letter="["
+char id=93 x=118 y=212 width=36 height=32 xoffset=3 yoffset=7 xadvance=40 page=0 chnl=0 letter="]"
+char id=126 x=156 y=212 width=36 height=32 xoffset=3 yoffset=7 xadvance=40 page=0 chnl=0 letter="~"
+char id=109 x=194 y=212 width=40 height=28 xoffset=3 yoffset=11 xadvance=44 page=0 chnl=0 letter="m"
+char id=119 x=236 y=212 width=40 height=28 xoffset=3 yoffset=11 xadvance=44 page=0 chnl=0 letter="w"
+char id=111 x=278 y=212 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="o"
+char id=97 x=316 y=212 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="a"
+char id=101 x=354 y=212 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="e"
+char id=99 x=392 y=212 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="c"
+char id=115 x=430 y=212 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="s"
+char id=117 x=468 y=212 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="u"
+char id=118 x=2 y=250 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="v"
+char id=120 x=40 y=250 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="x"
+char id=110 x=78 y=250 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="n"
+char id=114 x=116 y=250 width=36 height=28 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="r"
+char id=122 x=154 y=250 width=32 height=28 xoffset=3 yoffset=11 xadvance=36 page=0 chnl=0 letter="z"
+char id=58 x=188 y=250 width=12 height=28 xoffset=11 yoffset=11 xadvance=24 page=0 chnl=0 letter=":"
+char id=43 x=202 y=250 width=36 height=24 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="+"
+char id=42 x=240 y=250 width=36 height=24 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=0 letter="*"
+char id=44 x=278 y=250 width=16 height=24 xoffset=7 yoffset=27 xadvance=24 page=0 chnl=0 letter=","
+char id=61 x=296 y=250 width=36 height=16 xoffset=3 yoffset=15 xadvance=40 page=0 chnl=0 letter="="
+char id=34 x=334 y=250 width=28 height=16 xoffset=7 yoffset=3 xadvance=36 page=0 chnl=0 letter="""
+char id=46 x=364 y=250 width=12 height=12 xoffset=11 yoffset=27 xadvance=24 page=0 chnl=0 letter="."
+char id=45 x=378 y=250 width=36 height=8 xoffset=3 yoffset=19 xadvance=40 page=0 chnl=0 letter="-"
+char id=32 x=416 y=250 width=0 height=0 xoffset=-104 yoffset=156 xadvance=16 page=0 chnl=0 letter="space"
diff --git a/tests/cpp-tests/Resources/fonts/west_england-64.png b/tests/cpp-tests/Resources/fonts/west_england-64.png
new file mode 100755
index 0000000000..cadb3fd2d6
Binary files /dev/null and b/tests/cpp-tests/Resources/fonts/west_england-64.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/CyanSquare.png b/tests/cpp-tests/Resources/hd/Images/CyanSquare.png
new file mode 100755
index 0000000000..509961b3d3
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/CyanSquare.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/Icon.png b/tests/cpp-tests/Resources/hd/Images/Icon.png
new file mode 100755
index 0000000000..e42124a15c
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/Icon.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/MagentaSquare.png b/tests/cpp-tests/Resources/hd/Images/MagentaSquare.png
new file mode 100755
index 0000000000..14411c7f30
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/MagentaSquare.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/YellowSquare.png b/tests/cpp-tests/Resources/hd/Images/YellowSquare.png
new file mode 100755
index 0000000000..5975e65716
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/YellowSquare.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/arrows.png b/tests/cpp-tests/Resources/hd/Images/arrows.png
new file mode 100755
index 0000000000..1a24e6fdec
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/arrows.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/arrowsBar.png b/tests/cpp-tests/Resources/hd/Images/arrowsBar.png
new file mode 100755
index 0000000000..694b4d9768
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/arrowsBar.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/b1.png b/tests/cpp-tests/Resources/hd/Images/b1.png
new file mode 100755
index 0000000000..a3c16adf65
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/b1.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/b2.png b/tests/cpp-tests/Resources/hd/Images/b2.png
new file mode 100755
index 0000000000..ffa527ca93
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/b2.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/background1.jpg b/tests/cpp-tests/Resources/hd/Images/background1.jpg
new file mode 100755
index 0000000000..2225dbabfd
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/background1.jpg differ
diff --git a/tests/cpp-tests/Resources/hd/Images/background1.png b/tests/cpp-tests/Resources/hd/Images/background1.png
new file mode 100755
index 0000000000..79a3a895ba
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/background1.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/background2.jpg b/tests/cpp-tests/Resources/hd/Images/background2.jpg
new file mode 100755
index 0000000000..8957affa03
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/background2.jpg differ
diff --git a/tests/cpp-tests/Resources/hd/Images/background2.png b/tests/cpp-tests/Resources/hd/Images/background2.png
new file mode 100755
index 0000000000..33b72a1055
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/background2.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/background3.png b/tests/cpp-tests/Resources/hd/Images/background3.png
new file mode 100755
index 0000000000..1bc43ec857
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/background3.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/ball.png b/tests/cpp-tests/Resources/hd/Images/ball.png
new file mode 100755
index 0000000000..5460578a6f
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/ball.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/blocks.png b/tests/cpp-tests/Resources/hd/Images/blocks.png
new file mode 100755
index 0000000000..6dfad5943c
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/blocks.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/blocks9.png b/tests/cpp-tests/Resources/hd/Images/blocks9.png
new file mode 100755
index 0000000000..8f209b94a6
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/blocks9.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/blocks9ss.plist b/tests/cpp-tests/Resources/hd/Images/blocks9ss.plist
new file mode 100755
index 0000000000..93d63354e5
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/Images/blocks9ss.plist
@@ -0,0 +1,87 @@
+
+
+
+
+ frames
+
+ blocks9.png
+
+ frame
+ {{132,302},{192,192}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{192,192}}
+ sourceSize
+ {192,192}
+
+ blocks9r.png
+
+ frame
+ {{132,108},{192,192}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{192,192}}
+ sourceSize
+ {192,192}
+
+ grossini_dance_01.png
+
+ frame
+ {{132,2},{104,220}}
+ offset
+ {0,-2}
+ rotated
+
+ sourceColorRect
+ {{33,13},{104,220}}
+ sourceSize
+ {170,242}
+
+ grossini_dance_02.png
+
+ frame
+ {{2,224},{128,220}}
+ offset
+ {-12,-2}
+ rotated
+
+ sourceColorRect
+ {{9,13},{128,220}}
+ sourceSize
+ {170,242}
+
+ grossini_dance_03.png
+
+ frame
+ {{2,2},{128,220}}
+ offset
+ {-12,-2}
+ rotated
+
+ sourceColorRect
+ {{9,13},{128,220}}
+ sourceSize
+ {170,242}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ blocks9ss.png
+ size
+ {512,512}
+ smartupdate
+ $TexturePacker:SmartUpdate:a835cbe42b05233c069a35935fa2acb5$
+ textureFileName
+ blocks9ss.png
+
+
+
diff --git a/tests/cpp-tests/Resources/hd/Images/blocks9ss.png b/tests/cpp-tests/Resources/hd/Images/blocks9ss.png
new file mode 100755
index 0000000000..4b1eedbf87
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/blocks9ss.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/bugs/circle.plist b/tests/cpp-tests/Resources/hd/Images/bugs/circle.plist
new file mode 100755
index 0000000000..e247a9e121
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/Images/bugs/circle.plist
@@ -0,0 +1,31 @@
+
+
+
+
+ frames
+
+ circle.png
+
+ frame
+ {{0,0},{128,128}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{128,128}}
+ sourceSize
+ {128,128}
+
+
+ metadata
+
+ format
+ 2
+ size
+ {128,128}
+ textureFileName
+ circle.png
+
+
+
diff --git a/tests/cpp-tests/Resources/hd/Images/bugs/circle.png b/tests/cpp-tests/Resources/hd/Images/bugs/circle.png
new file mode 100755
index 0000000000..143b38b9c6
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/bugs/circle.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/bugs/picture.png b/tests/cpp-tests/Resources/hd/Images/bugs/picture.png
new file mode 100755
index 0000000000..9fa44269c1
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/bugs/picture.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/bugs/test_issue_1179.png b/tests/cpp-tests/Resources/hd/Images/bugs/test_issue_1179.png
new file mode 100755
index 0000000000..e49cdb3fde
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/bugs/test_issue_1179.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/close.png b/tests/cpp-tests/Resources/hd/Images/close.png
new file mode 100755
index 0000000000..24c1ec49a7
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/close.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/f1.png b/tests/cpp-tests/Resources/hd/Images/f1.png
new file mode 100755
index 0000000000..606181fab4
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/f1.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/f2.png b/tests/cpp-tests/Resources/hd/Images/f2.png
new file mode 100755
index 0000000000..8cd548b51b
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/f2.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini.png b/tests/cpp-tests/Resources/hd/Images/grossini.png
new file mode 100755
index 0000000000..43a18a41eb
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_01.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_01.png
new file mode 100755
index 0000000000..b49771089d
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_01.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_02.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_02.png
new file mode 100755
index 0000000000..9bc351bd0c
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_02.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_03.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_03.png
new file mode 100755
index 0000000000..48195aa57a
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_03.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_04.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_04.png
new file mode 100755
index 0000000000..7e5fa06a67
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_04.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_05.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_05.png
new file mode 100755
index 0000000000..e3942aa9d0
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_05.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_06.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_06.png
new file mode 100755
index 0000000000..d5e69be833
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_06.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_07.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_07.png
new file mode 100755
index 0000000000..735b75f521
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_07.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_08.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_08.png
new file mode 100755
index 0000000000..964f05f8b7
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_08.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_09.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_09.png
new file mode 100755
index 0000000000..c88efa0cfd
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_09.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_10.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_10.png
new file mode 100755
index 0000000000..04458278d8
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_10.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_11.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_11.png
new file mode 100755
index 0000000000..dc21059e25
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_11.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_12.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_12.png
new file mode 100755
index 0000000000..f1e2f29da9
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_12.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_13.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_13.png
new file mode 100755
index 0000000000..44cb66190e
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_13.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_14.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_14.png
new file mode 100755
index 0000000000..c38fd6fb5c
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_14.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossini_dance_atlas.png b/tests/cpp-tests/Resources/hd/Images/grossini_dance_atlas.png
new file mode 100755
index 0000000000..f71b42ce11
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossini_dance_atlas.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossinis_sister1.png b/tests/cpp-tests/Resources/hd/Images/grossinis_sister1.png
new file mode 100755
index 0000000000..4e2d6541e3
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossinis_sister1.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/grossinis_sister2.png b/tests/cpp-tests/Resources/hd/Images/grossinis_sister2.png
new file mode 100755
index 0000000000..ec9bb5cc7c
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/grossinis_sister2.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/hole_effect.png b/tests/cpp-tests/Resources/hd/Images/hole_effect.png
new file mode 100755
index 0000000000..94020e295b
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/hole_effect.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/hole_stencil.png b/tests/cpp-tests/Resources/hd/Images/hole_stencil.png
new file mode 100755
index 0000000000..48c132565d
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/hole_stencil.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/only_in_hd.pvr.ccz b/tests/cpp-tests/Resources/hd/Images/only_in_hd.pvr.ccz
new file mode 100755
index 0000000000..92815ea191
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/only_in_hd.pvr.ccz differ
diff --git a/tests/cpp-tests/Resources/hd/Images/paddle.png b/tests/cpp-tests/Resources/hd/Images/paddle.png
new file mode 100755
index 0000000000..47af8601f1
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/paddle.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/particles.png b/tests/cpp-tests/Resources/hd/Images/particles.png
new file mode 100755
index 0000000000..664a48e6d3
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/particles.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/r1.png b/tests/cpp-tests/Resources/hd/Images/r1.png
new file mode 100755
index 0000000000..6b51dc4509
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/r1.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/r2.png b/tests/cpp-tests/Resources/hd/Images/r2.png
new file mode 100755
index 0000000000..ef1f2b4979
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/r2.png differ
diff --git a/tests/cpp-tests/Resources/hd/Images/ui.plist b/tests/cpp-tests/Resources/hd/Images/ui.plist
new file mode 100755
index 0000000000..b620ed9e3c
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/Images/ui.plist
@@ -0,0 +1,139 @@
+
+
+
+
+ frames
+
+ button_actived.png
+
+ frame
+ {{226,110},{42,26}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{42,26}}
+ sourceSize
+ {42,36}
+
+ button_normal.png
+
+ frame
+ {{226,64},{42,26}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{42,26}}
+ sourceSize
+ {42,26}
+
+ coin.png
+
+ frame
+ {{178,64},{44,44}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{44,44}}
+ sourceSize
+ {44,44}
+
+ crystal.png
+
+ frame
+ {{178,4},{56,56}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{2,2},{56,56}}
+ sourceSize
+ {60,60}
+
+ dialog_bg.png
+
+ frame
+ {{150,354},{92,92}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{92,92}}
+ sourceSize
+ {92,92}
+
+ dialog_corner.png
+
+ frame
+ {{178,112},{24,32}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{24,32}}
+ sourceSize
+ {24,32}
+
+ item_bg.png
+
+ frame
+ {{150,258},{92,92}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{92,92}}
+ sourceSize
+ {92,92}
+
+ mini_map_bg.png
+
+ frame
+ {{4,258},{142,142}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{142,142}}
+ sourceSize
+ {142,142}
+
+ user_info_panel.png
+
+ frame
+ {{4,4},{250,170}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{250,170}}
+ sourceSize
+ {250,170}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ ui.png
+ size
+ {256,512}
+ smartupdate
+ $TexturePacker:SmartUpdate:7251d97127580b1f2d0103d9b80ba020$
+ textureFileName
+ ui.png
+
+
+
diff --git a/tests/cpp-tests/Resources/hd/Images/ui.png b/tests/cpp-tests/Resources/hd/Images/ui.png
new file mode 100755
index 0000000000..40bdfb87fe
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/Images/ui.png differ
diff --git a/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test3.tmx b/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test3.tmx
new file mode 100755
index 0000000000..ea26228d0f
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test3.tmx
@@ -0,0 +1,13 @@
+
+
+
diff --git a/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test4.tmx b/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test4.tmx
new file mode 100755
index 0000000000..ff1b7a360e
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test4.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test6.tmx b/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test6.tmx
new file mode 100755
index 0000000000..eb7d55897b
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/TileMaps/orthogonal-test6.tmx
@@ -0,0 +1,11 @@
+
+
diff --git a/tests/cpp-tests/Resources/hd/TileMaps/test-object-layer.tmx b/tests/cpp-tests/Resources/hd/TileMaps/test-object-layer.tmx
new file mode 100755
index 0000000000..1183458522
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/TileMaps/test-object-layer.tmx
@@ -0,0 +1,18 @@
+
+
diff --git a/tests/cpp-tests/Resources/hd/TileMaps/tiles.png b/tests/cpp-tests/Resources/hd/TileMaps/tiles.png
new file mode 100755
index 0000000000..187cfee787
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/TileMaps/tiles.png differ
diff --git a/tests/cpp-tests/Resources/hd/TileMaps/tmw_desert_spacing.png b/tests/cpp-tests/Resources/hd/TileMaps/tmw_desert_spacing.png
new file mode 100755
index 0000000000..1c62fbf263
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/TileMaps/tmw_desert_spacing.png differ
diff --git a/tests/cpp-tests/Resources/hd/animations/dragon_animation.png b/tests/cpp-tests/Resources/hd/animations/dragon_animation.png
new file mode 100755
index 0000000000..8fbe949c1f
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/animations/dragon_animation.png differ
diff --git a/tests/cpp-tests/Resources/hd/components/Player.png b/tests/cpp-tests/Resources/hd/components/Player.png
new file mode 100755
index 0000000000..312351e408
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/components/Player.png differ
diff --git a/tests/cpp-tests/Resources/hd/components/Projectile.png b/tests/cpp-tests/Resources/hd/components/Projectile.png
new file mode 100755
index 0000000000..aae84e1dda
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/components/Projectile.png differ
diff --git a/tests/cpp-tests/Resources/hd/components/Target.png b/tests/cpp-tests/Resources/hd/components/Target.png
new file mode 100755
index 0000000000..76dc863da2
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/components/Target.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/CCControlColourPickerSpriteSheet.plist b/tests/cpp-tests/Resources/hd/extensions/CCControlColourPickerSpriteSheet.plist
new file mode 100755
index 0000000000..e70ab842c9
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/extensions/CCControlColourPickerSpriteSheet.plist
@@ -0,0 +1,113 @@
+
+
+
+
+ frames
+
+ colourPicker.png
+
+ frame
+ {{949,2},{28,28}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{28,28}}
+ sourceSize
+ {28,28}
+
+ colourPickerBackground.png
+
+ frame
+ {{357,306},{222,222}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{222,222}}
+ sourceSize
+ {222,222}
+
+ colourPickerOverlay.png
+
+ frame
+ {{661,226},{222,222}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{222,222}}
+ sourceSize
+ {222,222}
+
+ colourPickerShadow.png
+
+ frame
+ {{661,2},{222,222}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{222,222}}
+ sourceSize
+ {222,222}
+
+ huePickerBackground.png
+
+ frame
+ {{357,2},{302,302}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{302,302}}
+ sourceSize
+ {302,302}
+
+ menuCircleWhite.png
+
+ frame
+ {{885,2},{62,62}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{62,62}}
+ sourceSize
+ {62,62}
+
+ menuColourPanelBackground.png
+
+ frame
+ {{2,2},{353,334}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{353,334}}
+ sourceSize
+ {353,334}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ CCControlColourPickerSpriteSheet.png
+ size
+ {1024,1024}
+ smartupdate
+ $TexturePacker:SmartUpdate:b0f145802397a74846afb8535dc6c069$
+ textureFileName
+ CCControlColourPickerSpriteSheet.png
+
+
+
diff --git a/tests/cpp-tests/Resources/hd/extensions/CCControlColourPickerSpriteSheet.png b/tests/cpp-tests/Resources/hd/extensions/CCControlColourPickerSpriteSheet.png
new file mode 100755
index 0000000000..b2f6361a8a
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/CCControlColourPickerSpriteSheet.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/background.png b/tests/cpp-tests/Resources/hd/extensions/background.png
new file mode 100755
index 0000000000..eff519b033
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/background.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/button.png b/tests/cpp-tests/Resources/hd/extensions/button.png
new file mode 100755
index 0000000000..03aebc7bac
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/button.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/buttonHighlighted.png b/tests/cpp-tests/Resources/hd/extensions/buttonHighlighted.png
new file mode 100755
index 0000000000..8bc814d3f0
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/buttonHighlighted.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/potentiometerButton.png b/tests/cpp-tests/Resources/hd/extensions/potentiometerButton.png
new file mode 100755
index 0000000000..b729c31617
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/potentiometerButton.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/potentiometerProgress.png b/tests/cpp-tests/Resources/hd/extensions/potentiometerProgress.png
new file mode 100755
index 0000000000..683041699f
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/potentiometerProgress.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/potentiometerTrack.png b/tests/cpp-tests/Resources/hd/extensions/potentiometerTrack.png
new file mode 100755
index 0000000000..0cfcc5553b
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/potentiometerTrack.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/ribbon.png b/tests/cpp-tests/Resources/hd/extensions/ribbon.png
new file mode 100755
index 0000000000..28583f52b5
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/ribbon.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/sliderProgress.png b/tests/cpp-tests/Resources/hd/extensions/sliderProgress.png
new file mode 100755
index 0000000000..f78bfc1b0d
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/sliderProgress.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/sliderProgress2.png b/tests/cpp-tests/Resources/hd/extensions/sliderProgress2.png
new file mode 100755
index 0000000000..81d517307d
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/sliderProgress2.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/sliderThumb.png b/tests/cpp-tests/Resources/hd/extensions/sliderThumb.png
new file mode 100755
index 0000000000..d9a0abdf16
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/sliderThumb.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/sliderTrack.png b/tests/cpp-tests/Resources/hd/extensions/sliderTrack.png
new file mode 100755
index 0000000000..a803eb5c57
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/sliderTrack.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/sliderTrack2.png b/tests/cpp-tests/Resources/hd/extensions/sliderTrack2.png
new file mode 100755
index 0000000000..59b8dc91b1
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/sliderTrack2.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/stepper-minus.png b/tests/cpp-tests/Resources/hd/extensions/stepper-minus.png
new file mode 100755
index 0000000000..8d3e18ed52
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/stepper-minus.png differ
diff --git a/tests/cpp-tests/Resources/hd/extensions/stepper-plus.png b/tests/cpp-tests/Resources/hd/extensions/stepper-plus.png
new file mode 100755
index 0000000000..ef6de5e5d0
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/extensions/stepper-plus.png differ
diff --git a/tests/cpp-tests/Resources/hd/fonts/font-issue1343.fnt b/tests/cpp-tests/Resources/hd/fonts/font-issue1343.fnt
new file mode 100755
index 0000000000..9a1d4e9e35
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/fonts/font-issue1343.fnt
@@ -0,0 +1,75 @@
+info face="TestFont-Bold" size=32 bold=1 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=60 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="font-issue1343.png"
+chars count=70
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=64 xadvance=36 page=0 chnl=0
+char id=36 x=0 y=0 width=48 height=74 xoffset=-2 yoffset=6 xadvance=48 page=0 chnl=0
+char id=106 x=48 y=0 width=34 height=74 xoffset=-4 yoffset=10 xadvance=36 page=0 chnl=0
+char id=37 x=82 y=0 width=64 height=68 xoffset=-2 yoffset=8 xadvance=64 page=0 chnl=0
+char id=81 x=146 y=0 width=60 height=66 xoffset=-2 yoffset=12 xadvance=60 page=0 chnl=0
+char id=64 x=206 y=0 width=62 height=64 xoffset=-2 yoffset=12 xadvance=64 page=0 chnl=0
+char id=113 x=268 y=0 width=42 height=64 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=112 x=310 y=0 width=44 height=64 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=103 x=354 y=0 width=46 height=64 xoffset=-4 yoffset=26 xadvance=44 page=0 chnl=0
+char id=102 x=400 y=0 width=44 height=64 xoffset=-2 yoffset=10 xadvance=38 page=0 chnl=0
+char id=63 x=444 y=0 width=42 height=62 xoffset=-4 yoffset=14 xadvance=40 page=0 chnl=0
+char id=121 x=0 y=74 width=48 height=62 xoffset=-4 yoffset=26 xadvance=44 page=0 chnl=0
+char id=116 x=48 y=74 width=38 height=62 xoffset=0 yoffset=12 xadvance=40 page=0 chnl=0
+char id=108 x=86 y=74 width=24 height=62 xoffset=0 yoffset=12 xadvance=30 page=0 chnl=0
+char id=107 x=110 y=74 width=44 height=62 xoffset=-2 yoffset=12 xadvance=44 page=0 chnl=0
+char id=105 x=154 y=74 width=24 height=62 xoffset=-2 yoffset=12 xadvance=26 page=0 chnl=0
+char id=100 x=178 y=74 width=46 height=62 xoffset=-2 yoffset=12 xadvance=48 page=0 chnl=0
+char id=82 x=224 y=74 width=52 height=62 xoffset=-4 yoffset=12 xadvance=50 page=0 chnl=0
+char id=80 x=276 y=74 width=50 height=62 xoffset=-4 yoffset=12 xadvance=48 page=0 chnl=0
+char id=33 x=326 y=74 width=24 height=60 xoffset=0 yoffset=14 xadvance=28 page=0 chnl=0
+char id=48 x=350 y=74 width=50 height=60 xoffset=-4 yoffset=14 xadvance=48 page=0 chnl=0
+char id=57 x=400 y=74 width=46 height=60 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
+char id=56 x=446 y=74 width=46 height=60 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=54 x=0 y=136 width=46 height=60 xoffset=0 yoffset=12 xadvance=48 page=0 chnl=0
+char id=53 x=46 y=136 width=46 height=60 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=51 x=92 y=136 width=44 height=60 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=104 x=136 y=136 width=44 height=60 xoffset=-2 yoffset=14 xadvance=46 page=0 chnl=0
+char id=98 x=180 y=136 width=46 height=60 xoffset=-2 yoffset=12 xadvance=46 page=0 chnl=0
+char id=89 x=226 y=136 width=54 height=60 xoffset=-6 yoffset=14 xadvance=48 page=0 chnl=0
+char id=88 x=280 y=136 width=54 height=60 xoffset=-2 yoffset=14 xadvance=52 page=0 chnl=0
+char id=87 x=334 y=136 width=76 height=60 xoffset=-4 yoffset=14 xadvance=74 page=0 chnl=0
+char id=86 x=410 y=136 width=54 height=60 xoffset=-4 yoffset=14 xadvance=52 page=0 chnl=0
+char id=85 x=0 y=196 width=50 height=60 xoffset=0 yoffset=14 xadvance=52 page=0 chnl=0
+char id=79 x=50 y=196 width=56 height=60 xoffset=-2 yoffset=14 xadvance=56 page=0 chnl=0
+char id=78 x=106 y=196 width=52 height=60 xoffset=-2 yoffset=14 xadvance=52 page=0 chnl=0
+char id=77 x=158 y=196 width=66 height=60 xoffset=-4 yoffset=14 xadvance=64 page=0 chnl=0
+char id=75 x=224 y=196 width=48 height=60 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
+char id=72 x=272 y=196 width=52 height=60 xoffset=-2 yoffset=14 xadvance=50 page=0 chnl=0
+char id=71 x=324 y=196 width=56 height=60 xoffset=-4 yoffset=14 xadvance=52 page=0 chnl=0
+char id=67 x=380 y=196 width=48 height=60 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
+char id=65 x=428 y=196 width=54 height=60 xoffset=-4 yoffset=14 xadvance=52 page=0 chnl=0
+char id=55 x=0 y=256 width=50 height=58 xoffset=-4 yoffset=16 xadvance=48 page=0 chnl=0
+char id=52 x=50 y=256 width=48 height=58 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
+char id=50 x=98 y=256 width=44 height=58 xoffset=0 yoffset=14 xadvance=48 page=0 chnl=0
+char id=49 x=142 y=256 width=34 height=58 xoffset=-2 yoffset=14 xadvance=36 page=0 chnl=0
+char id=84 x=176 y=256 width=50 height=58 xoffset=-4 yoffset=16 xadvance=46 page=0 chnl=0
+char id=83 x=226 y=256 width=48 height=58 xoffset=-2 yoffset=16 xadvance=48 page=0 chnl=0
+char id=74 x=274 y=256 width=54 height=58 xoffset=-6 yoffset=16 xadvance=46 page=0 chnl=0
+char id=73 x=328 y=256 width=38 height=58 xoffset=-2 yoffset=14 xadvance=38 page=0 chnl=0
+char id=70 x=366 y=256 width=44 height=58 xoffset=-4 yoffset=16 xadvance=42 page=0 chnl=0
+char id=69 x=410 y=256 width=46 height=58 xoffset=-2 yoffset=14 xadvance=46 page=0 chnl=0
+char id=68 x=0 y=314 width=58 height=58 xoffset=-6 yoffset=16 xadvance=52 page=0 chnl=0
+char id=66 x=58 y=314 width=48 height=58 xoffset=-4 yoffset=14 xadvance=46 page=0 chnl=0
+char id=76 x=106 y=314 width=44 height=56 xoffset=-2 yoffset=16 xadvance=44 page=0 chnl=0
+char id=90 x=150 y=314 width=54 height=54 xoffset=-2 yoffset=18 xadvance=52 page=0 chnl=0
+char id=115 x=204 y=314 width=40 height=50 xoffset=-4 yoffset=24 xadvance=38 page=0 chnl=0
+char id=111 x=244 y=314 width=46 height=50 xoffset=-4 yoffset=26 xadvance=42 page=0 chnl=0
+char id=122 x=290 y=314 width=48 height=48 xoffset=-4 yoffset=26 xadvance=44 page=0 chnl=0
+char id=120 x=338 y=314 width=46 height=48 xoffset=-2 yoffset=26 xadvance=46 page=0 chnl=0
+char id=119 x=384 y=314 width=60 height=48 xoffset=-4 yoffset=26 xadvance=56 page=0 chnl=0
+char id=118 x=444 y=314 width=42 height=48 xoffset=-4 yoffset=26 xadvance=40 page=0 chnl=0
+char id=114 x=0 y=372 width=44 height=48 xoffset=-2 yoffset=26 xadvance=38 page=0 chnl=0
+char id=110 x=44 y=372 width=42 height=48 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=109 x=86 y=372 width=58 height=48 xoffset=-2 yoffset=26 xadvance=58 page=0 chnl=0
+char id=101 x=144 y=372 width=46 height=48 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=99 x=190 y=372 width=42 height=48 xoffset=-2 yoffset=26 xadvance=42 page=0 chnl=0
+char id=97 x=232 y=372 width=46 height=48 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=117 x=278 y=372 width=46 height=46 xoffset=-2 yoffset=26 xadvance=44 page=0 chnl=0
+char id=44 x=324 y=372 width=28 height=32 xoffset=-2 yoffset=50 xadvance=28 page=0 chnl=0
+char id=39 x=352 y=372 width=22 height=30 xoffset=-2 yoffset=10 xadvance=24 page=0 chnl=0
+char id=46 x=374 y=372 width=26 height=22 xoffset=0 yoffset=100 xadvance=30 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/hd/fonts/font-issue1343.png b/tests/cpp-tests/Resources/hd/fonts/font-issue1343.png
new file mode 100755
index 0000000000..a6ca8414e4
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/fonts/font-issue1343.png differ
diff --git a/tests/cpp-tests/Resources/hd/fonts/konqa32.fnt b/tests/cpp-tests/Resources/hd/fonts/konqa32.fnt
new file mode 100755
index 0000000000..350976e779
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/fonts/konqa32.fnt
@@ -0,0 +1,96 @@
+info face="KonQaBlack" size=64 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
+common lineHeight=79 base=26 scaleW=512 scaleH=512 pages=1 packed=0
+page id=0 file="konqa32.png"
+chars count=91
+char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=63 xadvance=32 page=0 chnl=0
+char id=36 x=0 y=0 width=34 height=72 xoffset=2 yoffset=0 xadvance=36 page=0 chnl=0
+char id=81 x=34 y=0 width=38 height=59 xoffset=2 yoffset=11 xadvance=39 page=0 chnl=0
+char id=64 x=72 y=0 width=36 height=55 xoffset=3 yoffset=10 xadvance=39 page=0 chnl=0
+char id=124 x=108 y=0 width=14 height=55 xoffset=4 yoffset=11 xadvance=20 page=0 chnl=0
+char id=63 x=122 y=0 width=35 height=54 xoffset=2 yoffset=10 xadvance=36 page=0 chnl=0
+char id=56 x=157 y=0 width=36 height=54 xoffset=1 yoffset=10 xadvance=36 page=0 chnl=0
+char id=90 x=193 y=0 width=38 height=54 xoffset=2 yoffset=10 xadvance=38 page=0 chnl=0
+char id=89 x=231 y=0 width=35 height=54 xoffset=2 yoffset=10 xadvance=36 page=0 chnl=0
+char id=87 x=266 y=0 width=54 height=54 xoffset=2 yoffset=10 xadvance=55 page=0 chnl=0
+char id=86 x=320 y=0 width=35 height=54 xoffset=2 yoffset=10 xadvance=37 page=0 chnl=0
+char id=85 x=355 y=0 width=38 height=54 xoffset=2 yoffset=10 xadvance=38 page=0 chnl=0
+char id=84 x=393 y=0 width=35 height=54 xoffset=2 yoffset=10 xadvance=37 page=0 chnl=0
+char id=82 x=428 y=0 width=37 height=54 xoffset=2 yoffset=10 xadvance=39 page=0 chnl=0
+char id=79 x=465 y=0 width=38 height=54 xoffset=2 yoffset=10 xadvance=38 page=0 chnl=0
+char id=92 x=0 y=72 width=33 height=53 xoffset=4 yoffset=11 xadvance=39 page=0 chnl=0
+char id=47 x=33 y=72 width=34 height=53 xoffset=4 yoffset=11 xadvance=39 page=0 chnl=0
+char id=33 x=67 y=72 width=17 height=53 xoffset=2 yoffset=11 xadvance=18 page=0 chnl=0
+char id=48 x=84 y=72 width=40 height=53 xoffset=2 yoffset=11 xadvance=40 page=0 chnl=0
+char id=57 x=124 y=72 width=35 height=53 xoffset=2 yoffset=11 xadvance=35 page=0 chnl=0
+char id=55 x=159 y=72 width=35 height=53 xoffset=2 yoffset=11 xadvance=35 page=0 chnl=0
+char id=54 x=194 y=72 width=36 height=53 xoffset=1 yoffset=11 xadvance=37 page=0 chnl=0
+char id=53 x=230 y=72 width=35 height=53 xoffset=2 yoffset=11 xadvance=36 page=0 chnl=0
+char id=52 x=265 y=72 width=36 height=53 xoffset=2 yoffset=11 xadvance=36 page=0 chnl=0
+char id=51 x=301 y=72 width=34 height=53 xoffset=2 yoffset=11 xadvance=35 page=0 chnl=0
+char id=50 x=335 y=72 width=36 height=53 xoffset=2 yoffset=11 xadvance=37 page=0 chnl=0
+char id=49 x=371 y=72 width=23 height=53 xoffset=2 yoffset=11 xadvance=24 page=0 chnl=0
+char id=88 x=394 y=72 width=38 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=83 x=432 y=72 width=37 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=80 x=469 y=72 width=36 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=78 x=0 y=125 width=39 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=77 x=39 y=125 width=53 height=53 xoffset=2 yoffset=11 xadvance=53 page=0 chnl=0
+char id=76 x=92 y=125 width=35 height=53 xoffset=1 yoffset=11 xadvance=36 page=0 chnl=0
+char id=75 x=127 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=37 page=0 chnl=0
+char id=74 x=163 y=125 width=30 height=53 xoffset=2 yoffset=11 xadvance=30 page=0 chnl=0
+char id=73 x=193 y=125 width=20 height=53 xoffset=1 yoffset=11 xadvance=19 page=0 chnl=0
+char id=72 x=213 y=125 width=38 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=71 x=251 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=70 x=287 y=125 width=37 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=69 x=324 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=68 x=360 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=36 page=0 chnl=0
+char id=67 x=396 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=66 x=432 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=38 page=0 chnl=0
+char id=65 x=468 y=125 width=36 height=53 xoffset=2 yoffset=11 xadvance=39 page=0 chnl=0
+char id=38 x=0 y=178 width=46 height=51 xoffset=2 yoffset=15 xadvance=47 page=0 chnl=0
+char id=37 x=46 y=178 width=52 height=51 xoffset=0 yoffset=15 xadvance=50 page=0 chnl=0
+char id=106 x=98 y=178 width=19 height=42 xoffset=2 yoffset=22 xadvance=19 page=0 chnl=0
+char id=125 x=117 y=178 width=19 height=41 xoffset=4 yoffset=23 xadvance=20 page=0 chnl=0
+char id=123 x=136 y=178 width=19 height=41 xoffset=0 yoffset=23 xadvance=20 page=0 chnl=0
+char id=93 x=155 y=178 width=19 height=41 xoffset=4 yoffset=23 xadvance=20 page=0 chnl=0
+char id=91 x=174 y=178 width=19 height=41 xoffset=0 yoffset=23 xadvance=20 page=0 chnl=0
+char id=41 x=193 y=178 width=20 height=41 xoffset=3 yoffset=23 xadvance=20 page=0 chnl=0
+char id=40 x=213 y=178 width=21 height=41 xoffset=-1 yoffset=23 xadvance=20 page=0 chnl=0
+char id=122 x=234 y=178 width=29 height=41 xoffset=2 yoffset=23 xadvance=30 page=0 chnl=0
+char id=121 x=263 y=178 width=28 height=41 xoffset=2 yoffset=23 xadvance=30 page=0 chnl=0
+char id=120 x=291 y=178 width=26 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=119 x=317 y=178 width=40 height=41 xoffset=2 yoffset=23 xadvance=41 page=0 chnl=0
+char id=118 x=357 y=178 width=26 height=41 xoffset=2 yoffset=23 xadvance=27 page=0 chnl=0
+char id=117 x=383 y=178 width=27 height=41 xoffset=2 yoffset=23 xadvance=29 page=0 chnl=0
+char id=116 x=410 y=178 width=26 height=41 xoffset=2 yoffset=23 xadvance=27 page=0 chnl=0
+char id=115 x=436 y=178 width=29 height=41 xoffset=2 yoffset=23 xadvance=31 page=0 chnl=0
+char id=114 x=465 y=178 width=26 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=113 x=0 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=112 x=27 y=229 width=29 height=41 xoffset=1 yoffset=23 xadvance=29 page=0 chnl=0
+char id=111 x=56 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=110 x=83 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=29 page=0 chnl=0
+char id=109 x=110 y=229 width=41 height=41 xoffset=2 yoffset=23 xadvance=42 page=0 chnl=0
+char id=108 x=151 y=229 width=19 height=41 xoffset=2 yoffset=23 xadvance=20 page=0 chnl=0
+char id=107 x=170 y=229 width=28 height=41 xoffset=2 yoffset=23 xadvance=30 page=0 chnl=0
+char id=105 x=198 y=229 width=14 height=41 xoffset=2 yoffset=23 xadvance=15 page=0 chnl=0
+char id=104 x=212 y=229 width=26 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=103 x=238 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=102 x=265 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=101 x=292 y=229 width=26 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=100 x=318 y=229 width=26 height=41 xoffset=2 yoffset=23 xadvance=27 page=0 chnl=0
+char id=99 x=344 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=29 page=0 chnl=0
+char id=98 x=371 y=229 width=27 height=41 xoffset=2 yoffset=23 xadvance=28 page=0 chnl=0
+char id=97 x=398 y=229 width=29 height=41 xoffset=1 yoffset=23 xadvance=30 page=0 chnl=0
+char id=94 x=427 y=229 width=40 height=39 xoffset=2 yoffset=13 xadvance=42 page=0 chnl=0
+char id=43 x=467 y=229 width=30 height=33 xoffset=2 yoffset=31 xadvance=32 page=0 chnl=0
+char id=61 x=0 y=270 width=31 height=27 xoffset=3 yoffset=31 xadvance=34 page=0 chnl=0
+char id=59 x=31 y=270 width=16 height=27 xoffset=1 yoffset=53 xadvance=16 page=0 chnl=0
+char id=58 x=47 y=270 width=14 height=25 xoffset=2 yoffset=39 xadvance=16 page=0 chnl=0
+char id=42 x=61 y=270 width=21 height=21 xoffset=10 yoffset=12 xadvance=39 page=0 chnl=0
+char id=34 x=82 y=270 width=26 height=21 xoffset=3 yoffset=13 xadvance=28 page=0 chnl=0
+char id=126 x=108 y=270 width=40 height=14 xoffset=6 yoffset=38 xadvance=50 page=0 chnl=0
+char id=44 x=148 y=270 width=15 height=14 xoffset=2 yoffset=58 xadvance=17 page=0 chnl=0
+char id=39 x=163 y=270 width=15 height=14 xoffset=2 yoffset=10 xadvance=17 page=0 chnl=0
+char id=96 x=178 y=270 width=16 height=14 xoffset=2 yoffset=10 xadvance=18 page=0 chnl=0
+char id=45 x=194 y=270 width=30 height=11 xoffset=3 yoffset=34 xadvance=34 page=0 chnl=0
+char id=46 x=224 y=270 width=13 height=11 xoffset=0 yoffset=53 xadvance=15 page=0 chnl=0
+char id=95 x=237 y=270 width=30 height=10 xoffset=2 yoffset=55 xadvance=34 page=0 chnl=0
diff --git a/tests/cpp-tests/Resources/hd/fonts/konqa32.png b/tests/cpp-tests/Resources/hd/fonts/konqa32.png
new file mode 100755
index 0000000000..051e8d5bd3
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/fonts/konqa32.png differ
diff --git a/tests/cpp-tests/Resources/hd/fonts/labelatlas.png b/tests/cpp-tests/Resources/hd/fonts/labelatlas.png
new file mode 100755
index 0000000000..bb8ce11e54
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/fonts/labelatlas.png differ
diff --git a/tests/cpp-tests/Resources/hd/fonts/larabie-16.plist b/tests/cpp-tests/Resources/hd/fonts/larabie-16.plist
new file mode 100755
index 0000000000..d5ec8afe81
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/fonts/larabie-16.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ version
+ 1
+ textureFilename
+ larabie-16.png
+ itemWidth
+ 20
+ itemHeight
+ 40
+ firstChar
+ 65
+
+
diff --git a/tests/cpp-tests/Resources/hd/fonts/larabie-16.png b/tests/cpp-tests/Resources/hd/fonts/larabie-16.png
new file mode 100755
index 0000000000..f860d02fab
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/fonts/larabie-16.png differ
diff --git a/tests/cpp-tests/Resources/hd/fonts/markerFelt.fnt b/tests/cpp-tests/Resources/hd/fonts/markerFelt.fnt
new file mode 100755
index 0000000000..ee5dba70ce
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/fonts/markerFelt.fnt
@@ -0,0 +1,3770 @@
+info face="MarkerFelt-Thin" size=50 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=54 base=43 scaleW=512 scaleH=256 pages=1 packed=0
+page id=0 file="markerFelt.png"
+chars count=95
+char id=106 x=2 y=2 width=13 height=50 xoffset=-3 yoffset=4 xadvance=10 page=0 chnl=0 letter="j"
+char id=87 x=17 y=2 width=48 height=48 xoffset=0 yoffset=0 xadvance=48 page=0 chnl=0 letter="W"
+char id=81 x=67 y=2 width=30 height=48 xoffset=2 yoffset=1 xadvance=29 page=0 chnl=0 letter="Q"
+char id=77 x=99 y=2 width=45 height=47 xoffset=2 yoffset=0 xadvance=46 page=0 chnl=0 letter="M"
+char id=84 x=146 y=2 width=25 height=47 xoffset=0 yoffset=0 xadvance=24 page=0 chnl=0 letter="T"
+char id=104 x=173 y=2 width=22 height=47 xoffset=2 yoffset=0 xadvance=24 page=0 chnl=0 letter="h"
+char id=102 x=197 y=2 width=21 height=47 xoffset=0 yoffset=0 xadvance=18 page=0 chnl=0 letter="f"
+char id=91 x=220 y=2 width=19 height=47 xoffset=1 yoffset=-1 xadvance=20 page=0 chnl=0 letter="["
+char id=93 x=241 y=2 width=19 height=47 xoffset=1 yoffset=-1 xadvance=20 page=0 chnl=0 letter="]"
+char id=90 x=262 y=2 width=32 height=46 xoffset=0 yoffset=0 xadvance=30 page=0 chnl=0 letter="Z"
+char id=88 x=296 y=2 width=31 height=46 xoffset=0 yoffset=1 xadvance=30 page=0 chnl=0 letter="X"
+char id=89 x=329 y=2 width=31 height=46 xoffset=1 yoffset=0 xadvance=30 page=0 chnl=0 letter="Y"
+char id=65 x=362 y=2 width=30 height=46 xoffset=1 yoffset=0 xadvance=31 page=0 chnl=0 letter="A"
+char id=75 x=394 y=2 width=29 height=46 xoffset=1 yoffset=0 xadvance=28 page=0 chnl=0 letter="K"
+char id=78 x=425 y=2 width=28 height=46 xoffset=2 yoffset=0 xadvance=30 page=0 chnl=0 letter="N"
+char id=53 x=455 y=2 width=27 height=46 xoffset=1 yoffset=2 xadvance=28 page=0 chnl=0 letter="5"
+char id=86 x=2 y=54 width=27 height=46 xoffset=0 yoffset=1 xadvance=27 page=0 chnl=0 letter="V"
+char id=85 x=31 y=54 width=26 height=46 xoffset=1 yoffset=1 xadvance=27 page=0 chnl=0 letter="U"
+char id=83 x=59 y=54 width=25 height=46 xoffset=0 yoffset=0 xadvance=24 page=0 chnl=0 letter="S"
+char id=72 x=86 y=54 width=24 height=46 xoffset=1 yoffset=1 xadvance=25 page=0 chnl=0 letter="H"
+char id=48 x=112 y=54 width=24 height=46 xoffset=3 yoffset=1 xadvance=28 page=0 chnl=0 letter="0"
+char id=68 x=138 y=54 width=23 height=46 xoffset=2 yoffset=1 xadvance=24 page=0 chnl=0 letter="D"
+char id=76 x=163 y=54 width=22 height=46 xoffset=1 yoffset=0 xadvance=21 page=0 chnl=0 letter="L"
+char id=74 x=187 y=54 width=22 height=46 xoffset=0 yoffset=1 xadvance=22 page=0 chnl=0 letter="J"
+char id=63 x=211 y=54 width=21 height=46 xoffset=0 yoffset=1 xadvance=20 page=0 chnl=0 letter="?"
+char id=56 x=234 y=54 width=21 height=46 xoffset=4 yoffset=0 xadvance=28 page=0 chnl=0 letter="8"
+char id=69 x=257 y=54 width=20 height=46 xoffset=2 yoffset=1 xadvance=22 page=0 chnl=0 letter="E"
+char id=108 x=279 y=54 width=8 height=46 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=0 letter="l"
+char id=124 x=289 y=54 width=8 height=46 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=0 letter="|"
+char id=82 x=299 y=54 width=30 height=45 xoffset=1 yoffset=1 xadvance=28 page=0 chnl=0 letter="R"
+char id=52 x=331 y=54 width=29 height=45 xoffset=0 yoffset=2 xadvance=28 page=0 chnl=0 letter="4"
+char id=50 x=362 y=54 width=28 height=45 xoffset=1 yoffset=1 xadvance=28 page=0 chnl=0 letter="2"
+char id=92 x=392 y=54 width=27 height=45 xoffset=0 yoffset=1 xadvance=26 page=0 chnl=0 letter="\"
+char id=47 x=421 y=54 width=26 height=45 xoffset=0 yoffset=1 xadvance=26 page=0 chnl=0 letter="/"
+char id=71 x=449 y=54 width=26 height=45 xoffset=1 yoffset=1 xadvance=24 page=0 chnl=0 letter="G"
+char id=55 x=477 y=54 width=25 height=45 xoffset=2 yoffset=2 xadvance=28 page=0 chnl=0 letter="7"
+char id=51 x=2 y=102 width=25 height=45 xoffset=3 yoffset=1 xadvance=28 page=0 chnl=0 letter="3"
+char id=107 x=29 y=102 width=25 height=45 xoffset=2 yoffset=1 xadvance=24 page=0 chnl=0 letter="k"
+char id=66 x=56 y=102 width=24 height=45 xoffset=1 yoffset=2 xadvance=24 page=0 chnl=0 letter="B"
+char id=36 x=82 y=102 width=24 height=45 xoffset=2 yoffset=1 xadvance=26 page=0 chnl=0 letter="$"
+char id=80 x=108 y=102 width=23 height=45 xoffset=2 yoffset=1 xadvance=22 page=0 chnl=0 letter="P"
+char id=123 x=133 y=102 width=20 height=45 xoffset=1 yoffset=1 xadvance=20 page=0 chnl=0 letter="{"
+char id=125 x=155 y=102 width=20 height=45 xoffset=1 yoffset=1 xadvance=20 page=0 chnl=0 letter="}"
+char id=70 x=177 y=102 width=20 height=45 xoffset=2 yoffset=1 xadvance=21 page=0 chnl=0 letter="F"
+char id=49 x=199 y=102 width=15 height=45 xoffset=6 yoffset=1 xadvance=28 page=0 chnl=0 letter="1"
+char id=40 x=216 y=102 width=12 height=45 xoffset=2 yoffset=1 xadvance=13 page=0 chnl=0 letter="("
+char id=41 x=230 y=102 width=11 height=45 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0 letter=")"
+char id=73 x=243 y=102 width=11 height=45 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="I"
+char id=33 x=256 y=102 width=9 height=45 xoffset=1 yoffset=1 xadvance=10 page=0 chnl=0 letter="!"
+char id=64 x=267 y=102 width=44 height=44 xoffset=1 yoffset=1 xadvance=45 page=0 chnl=0 letter="@"
+char id=37 x=313 y=102 width=34 height=44 xoffset=1 yoffset=2 xadvance=35 page=0 chnl=0 letter="%"
+char id=38 x=349 y=102 width=30 height=44 xoffset=1 yoffset=2 xadvance=28 page=0 chnl=0 letter="&"
+char id=79 x=381 y=102 width=26 height=44 xoffset=2 yoffset=2 xadvance=27 page=0 chnl=0 letter="O"
+char id=54 x=409 y=102 width=23 height=44 xoffset=3 yoffset=2 xadvance=28 page=0 chnl=0 letter="6"
+char id=57 x=434 y=102 width=23 height=44 xoffset=3 yoffset=2 xadvance=28 page=0 chnl=0 letter="9"
+char id=67 x=459 y=102 width=23 height=44 xoffset=1 yoffset=2 xadvance=22 page=0 chnl=0 letter="C"
+char id=105 x=484 y=102 width=9 height=44 xoffset=2 yoffset=3 xadvance=10 page=0 chnl=0 letter="i"
+char id=100 x=2 y=149 width=20 height=43 xoffset=1 yoffset=3 xadvance=22 page=0 chnl=0 letter="d"
+char id=113 x=24 y=149 width=20 height=43 xoffset=1 yoffset=13 xadvance=22 page=0 chnl=0 letter="q"
+char id=112 x=46 y=149 width=20 height=43 xoffset=2 yoffset=13 xadvance=22 page=0 chnl=0 letter="p"
+char id=98 x=68 y=149 width=20 height=43 xoffset=2 yoffset=3 xadvance=22 page=0 chnl=0 letter="b"
+char id=116 x=90 y=149 width=22 height=41 xoffset=-1 yoffset=6 xadvance=18 page=0 chnl=0 letter="t"
+char id=103 x=114 y=149 width=19 height=41 xoffset=1 yoffset=13 xadvance=21 page=0 chnl=0 letter="g"
+char id=121 x=135 y=149 width=24 height=40 xoffset=-0 yoffset=14 xadvance=24 page=0 chnl=0 letter="y"
+char id=59 x=161 y=149 width=12 height=37 xoffset=-3 yoffset=14 xadvance=10 page=0 chnl=0 letter=";"
+char id=119 x=175 y=149 width=39 height=34 xoffset=-1 yoffset=13 xadvance=36 page=0 chnl=0 letter="w"
+char id=118 x=216 y=149 width=26 height=34 xoffset=-1 yoffset=13 xadvance=22 page=0 chnl=0 letter="v"
+char id=122 x=244 y=149 width=24 height=34 xoffset=1 yoffset=13 xadvance=24 page=0 chnl=0 letter="z"
+char id=110 x=270 y=149 width=23 height=34 xoffset=2 yoffset=13 xadvance=24 page=0 chnl=0 letter="n"
+char id=120 x=295 y=149 width=22 height=34 xoffset=-0 yoffset=13 xadvance=20 page=0 chnl=0 letter="x"
+char id=114 x=319 y=149 width=21 height=34 xoffset=1 yoffset=12 xadvance=19 page=0 chnl=0 letter="r"
+char id=117 x=342 y=149 width=20 height=34 xoffset=1 yoffset=13 xadvance=20 page=0 chnl=0 letter="u"
+char id=109 x=364 y=149 width=35 height=33 xoffset=2 yoffset=14 xadvance=36 page=0 chnl=0 letter="m"
+char id=97 x=401 y=149 width=23 height=33 xoffset=0 yoffset=14 xadvance=23 page=0 chnl=0 letter="a"
+char id=111 x=426 y=149 width=20 height=33 xoffset=1 yoffset=13 xadvance=20 page=0 chnl=0 letter="o"
+char id=101 x=448 y=149 width=20 height=33 xoffset=1 yoffset=13 xadvance=19 page=0 chnl=0 letter="e"
+char id=99 x=470 y=149 width=18 height=33 xoffset=1 yoffset=13 xadvance=19 page=0 chnl=0 letter="c"
+char id=115 x=490 y=149 width=19 height=32 xoffset=0 yoffset=15 xadvance=18 page=0 chnl=0 letter="s"
+char id=62 x=2 y=194 width=18 height=31 xoffset=2 yoffset=15 xadvance=19 page=0 chnl=0 letter=">"
+char id=60 x=22 y=194 width=17 height=31 xoffset=1 yoffset=15 xadvance=19 page=0 chnl=0 letter="<"
+char id=58 x=41 y=194 width=10 height=30 xoffset=1 yoffset=16 xadvance=12 page=0 chnl=0 letter=":"
+char id=35 x=53 y=194 width=27 height=29 xoffset=1 yoffset=11 xadvance=28 page=0 chnl=0 letter="#"
+char id=43 x=82 y=194 width=21 height=24 xoffset=1 yoffset=10 xadvance=22 page=0 chnl=0 letter="+"
+char id=42 x=105 y=194 width=23 height=22 xoffset=1 yoffset=6 xadvance=23 page=0 chnl=0 letter="*"
+char id=61 x=130 y=194 width=18 height=20 xoffset=2 yoffset=13 xadvance=20 page=0 chnl=0 letter="="
+char id=34 x=150 y=194 width=14 height=18 xoffset=1 yoffset=1 xadvance=16 page=0 chnl=0 letter="""
+char id=39 x=166 y=194 width=7 height=17 xoffset=1 yoffset=1 xadvance=8 page=0 chnl=0 letter="'"
+char id=94 x=175 y=194 width=16 height=14 xoffset=0 yoffset=0 xadvance=15 page=0 chnl=0 letter="^"
+char id=96 x=193 y=194 width=11 height=14 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0 letter="`"
+char id=44 x=206 y=194 width=10 height=13 xoffset=-1 yoffset=39 xadvance=10 page=0 chnl=0 letter=","
+char id=95 x=218 y=194 width=24 height=12 xoffset=1 yoffset=43 xadvance=24 page=0 chnl=0 letter="_"
+char id=45 x=244 y=194 width=17 height=12 xoffset=1 yoffset=21 xadvance=18 page=0 chnl=0 letter="-"
+char id=46 x=263 y=194 width=8 height=12 xoffset=1 yoffset=34 xadvance=10 page=0 chnl=0 letter="."
+char id=126 x=273 y=194 width=17 height=11 xoffset=0 yoffset=0 xadvance=16 page=0 chnl=0 letter="~"
+char id=32 x=292 y=194 width=0 height=0 xoffset=12 yoffset=63 xadvance=12 page=0 chnl=0 letter="space"
+kernings count=3670
+kerning first=106 second=106 amount=3
+kerning first=106 second=102 amount=2
+kerning first=106 second=63 amount=1
+kerning first=106 second=56 amount=-1
+kerning first=106 second=108 amount=1
+kerning first=106 second=107 amount=1
+kerning first=106 second=49 amount=-4
+kerning first=106 second=40 amount=1
+kerning first=106 second=33 amount=1
+kerning first=106 second=105 amount=1
+kerning first=106 second=100 amount=1
+kerning first=106 second=112 amount=1
+kerning first=106 second=98 amount=1
+kerning first=106 second=116 amount=3
+kerning first=106 second=103 amount=1
+kerning first=106 second=121 amount=2
+kerning first=106 second=59 amount=3
+kerning first=106 second=119 amount=3
+kerning first=106 second=118 amount=3
+kerning first=106 second=122 amount=1
+kerning first=106 second=110 amount=1
+kerning first=106 second=120 amount=2
+kerning first=106 second=114 amount=2
+kerning first=106 second=117 amount=1
+kerning first=106 second=97 amount=2
+kerning first=106 second=111 amount=2
+kerning first=106 second=101 amount=1
+kerning first=106 second=99 amount=1
+kerning first=106 second=115 amount=2
+kerning first=106 second=34 amount=1
+kerning first=106 second=39 amount=2
+kerning first=106 second=44 amount=3
+kerning first=106 second=46 amount=1
+kerning first=87 second=87 amount=1
+kerning first=87 second=81 amount=-3
+kerning first=87 second=102 amount=-2
+kerning first=87 second=93 amount=1
+kerning first=87 second=90 amount=-2
+kerning first=87 second=88 amount=2
+kerning first=87 second=89 amount=1
+kerning first=87 second=65 amount=-6
+kerning first=87 second=75 amount=2
+kerning first=87 second=53 amount=-2
+kerning first=87 second=86 amount=2
+kerning first=87 second=85 amount=1
+kerning first=87 second=83 amount=-2
+kerning first=87 second=48 amount=-4
+kerning first=87 second=76 amount=2
+kerning first=87 second=74 amount=-5
+kerning first=87 second=56 amount=-3
+kerning first=87 second=108 amount=2
+kerning first=87 second=82 amount=2
+kerning first=87 second=52 amount=-5
+kerning first=87 second=50 amount=-4
+kerning first=87 second=92 amount=1
+kerning first=87 second=47 amount=-6
+kerning first=87 second=71 amount=-2
+kerning first=87 second=55 amount=-1
+kerning first=87 second=51 amount=-3
+kerning first=87 second=107 amount=1
+kerning first=87 second=66 amount=2
+kerning first=87 second=80 amount=1
+kerning first=87 second=49 amount=-5
+kerning first=87 second=41 amount=1
+kerning first=87 second=73 amount=2
+kerning first=87 second=33 amount=1
+kerning first=87 second=64 amount=-6
+kerning first=87 second=79 amount=-2
+kerning first=87 second=54 amount=-4
+kerning first=87 second=57 amount=-4
+kerning first=87 second=67 amount=-2
+kerning first=87 second=100 amount=-4
+kerning first=87 second=113 amount=-4
+kerning first=87 second=112 amount=-2
+kerning first=87 second=116 amount=-1
+kerning first=87 second=103 amount=-4
+kerning first=87 second=59 amount=-3
+kerning first=87 second=122 amount=-4
+kerning first=87 second=110 amount=-2
+kerning first=87 second=120 amount=-2
+kerning first=87 second=114 amount=-2
+kerning first=87 second=117 amount=-2
+kerning first=87 second=109 amount=-3
+kerning first=87 second=97 amount=-3
+kerning first=87 second=111 amount=-4
+kerning first=87 second=101 amount=-5
+kerning first=87 second=99 amount=-4
+kerning first=87 second=115 amount=-4
+kerning first=87 second=58 amount=-4
+kerning first=87 second=35 amount=-2
+kerning first=87 second=34 amount=3
+kerning first=87 second=39 amount=3
+kerning first=87 second=44 amount=-8
+kerning first=87 second=45 amount=-4
+kerning first=87 second=46 amount=-6
+kerning first=81 second=106 amount=6
+kerning first=81 second=77 amount=2
+kerning first=81 second=104 amount=3
+kerning first=81 second=102 amount=1
+kerning first=81 second=93 amount=1
+kerning first=81 second=90 amount=3
+kerning first=81 second=88 amount=4
+kerning first=81 second=89 amount=-3
+kerning first=81 second=65 amount=3
+kerning first=81 second=75 amount=2
+kerning first=81 second=78 amount=2
+kerning first=81 second=86 amount=-1
+kerning first=81 second=72 amount=3
+kerning first=81 second=68 amount=2
+kerning first=81 second=76 amount=2
+kerning first=81 second=56 amount=-1
+kerning first=81 second=69 amount=2
+kerning first=81 second=108 amount=4
+kerning first=81 second=82 amount=2
+kerning first=81 second=50 amount=2
+kerning first=81 second=92 amount=-2
+kerning first=81 second=47 amount=3
+kerning first=81 second=55 amount=2
+kerning first=81 second=51 amount=-2
+kerning first=81 second=107 amount=4
+kerning first=81 second=66 amount=2
+kerning first=81 second=80 amount=3
+kerning first=81 second=70 amount=2
+kerning first=81 second=49 amount=-5
+kerning first=81 second=40 amount=1
+kerning first=81 second=41 amount=3
+kerning first=81 second=73 amount=3
+kerning first=81 second=33 amount=3
+kerning first=81 second=54 amount=-1
+kerning first=81 second=57 amount=-2
+kerning first=81 second=67 amount=1
+kerning first=81 second=105 amount=3
+kerning first=81 second=112 amount=3
+kerning first=81 second=98 amount=4
+kerning first=81 second=116 amount=3
+kerning first=81 second=103 amount=1
+kerning first=81 second=121 amount=2
+kerning first=81 second=59 amount=7
+kerning first=81 second=119 amount=3
+kerning first=81 second=118 amount=3
+kerning first=81 second=122 amount=4
+kerning first=81 second=110 amount=4
+kerning first=81 second=120 amount=4
+kerning first=81 second=114 amount=4
+kerning first=81 second=117 amount=2
+kerning first=81 second=97 amount=4
+kerning first=81 second=111 amount=1
+kerning first=81 second=99 amount=2
+kerning first=81 second=115 amount=2
+kerning first=81 second=58 amount=3
+kerning first=81 second=44 amount=7
+kerning first=81 second=46 amount=4
+kerning first=77 second=106 amount=2
+kerning first=77 second=104 amount=1
+kerning first=77 second=90 amount=2
+kerning first=77 second=88 amount=3
+kerning first=77 second=65 amount=1
+kerning first=77 second=75 amount=1
+kerning first=77 second=48 amount=-2
+kerning first=77 second=56 amount=-2
+kerning first=77 second=69 amount=1
+kerning first=77 second=108 amount=2
+kerning first=77 second=50 amount=1
+kerning first=77 second=47 amount=2
+kerning first=77 second=51 amount=-1
+kerning first=77 second=107 amount=2
+kerning first=77 second=66 amount=1
+kerning first=77 second=80 amount=2
+kerning first=77 second=70 amount=1
+kerning first=77 second=49 amount=-5
+kerning first=77 second=41 amount=2
+kerning first=77 second=73 amount=2
+kerning first=77 second=33 amount=2
+kerning first=77 second=54 amount=-2
+kerning first=77 second=57 amount=-1
+kerning first=77 second=105 amount=2
+kerning first=77 second=112 amount=1
+kerning first=77 second=98 amount=2
+kerning first=77 second=116 amount=2
+kerning first=77 second=59 amount=3
+kerning first=77 second=119 amount=2
+kerning first=77 second=118 amount=2
+kerning first=77 second=122 amount=2
+kerning first=77 second=110 amount=2
+kerning first=77 second=120 amount=3
+kerning first=77 second=114 amount=2
+kerning first=77 second=97 amount=2
+kerning first=77 second=115 amount=1
+kerning first=77 second=58 amount=2
+kerning first=77 second=44 amount=2
+kerning first=77 second=46 amount=3
+kerning first=84 second=87 amount=2
+kerning first=84 second=81 amount=-2
+kerning first=84 second=102 amount=-3
+kerning first=84 second=93 amount=1
+kerning first=84 second=90 amount=-2
+kerning first=84 second=88 amount=2
+kerning first=84 second=65 amount=-6
+kerning first=84 second=75 amount=2
+kerning first=84 second=53 amount=-2
+kerning first=84 second=86 amount=2
+kerning first=84 second=85 amount=1
+kerning first=84 second=83 amount=-1
+kerning first=84 second=48 amount=-3
+kerning first=84 second=76 amount=1
+kerning first=84 second=74 amount=-7
+kerning first=84 second=56 amount=-3
+kerning first=84 second=108 amount=2
+kerning first=84 second=82 amount=2
+kerning first=84 second=52 amount=-7
+kerning first=84 second=50 amount=-5
+kerning first=84 second=92 amount=1
+kerning first=84 second=47 amount=-6
+kerning first=84 second=51 amount=-4
+kerning first=84 second=107 amount=1
+kerning first=84 second=66 amount=2
+kerning first=84 second=80 amount=1
+kerning first=84 second=49 amount=-4
+kerning first=84 second=41 amount=1
+kerning first=84 second=73 amount=2
+kerning first=84 second=33 amount=2
+kerning first=84 second=64 amount=-8
+kerning first=84 second=54 amount=-3
+kerning first=84 second=57 amount=-3
+kerning first=84 second=100 amount=-6
+kerning first=84 second=113 amount=-7
+kerning first=84 second=112 amount=-6
+kerning first=84 second=98 amount=1
+kerning first=84 second=116 amount=-3
+kerning first=84 second=103 amount=-6
+kerning first=84 second=121 amount=-6
+kerning first=84 second=59 amount=-4
+kerning first=84 second=119 amount=-5
+kerning first=84 second=118 amount=-5
+kerning first=84 second=122 amount=-5
+kerning first=84 second=110 amount=-6
+kerning first=84 second=120 amount=-5
+kerning first=84 second=114 amount=-6
+kerning first=84 second=117 amount=-6
+kerning first=84 second=109 amount=-7
+kerning first=84 second=97 amount=-5
+kerning first=84 second=111 amount=-6
+kerning first=84 second=101 amount=-7
+kerning first=84 second=99 amount=-6
+kerning first=84 second=115 amount=-6
+kerning first=84 second=58 amount=-6
+kerning first=84 second=35 amount=-4
+kerning first=84 second=34 amount=2
+kerning first=84 second=39 amount=3
+kerning first=84 second=44 amount=-5
+kerning first=84 second=45 amount=-7
+kerning first=84 second=46 amount=-5
+kerning first=104 second=106 amount=1
+kerning first=104 second=102 amount=1
+kerning first=104 second=63 amount=-2
+kerning first=104 second=108 amount=1
+kerning first=104 second=52 amount=1
+kerning first=104 second=92 amount=-6
+kerning first=104 second=107 amount=1
+kerning first=104 second=49 amount=-7
+kerning first=104 second=40 amount=1
+kerning first=104 second=41 amount=1
+kerning first=104 second=33 amount=2
+kerning first=104 second=64 amount=1
+kerning first=104 second=105 amount=2
+kerning first=104 second=100 amount=2
+kerning first=104 second=113 amount=2
+kerning first=104 second=112 amount=2
+kerning first=104 second=98 amount=1
+kerning first=104 second=116 amount=3
+kerning first=104 second=103 amount=2
+kerning first=104 second=121 amount=2
+kerning first=104 second=59 amount=2
+kerning first=104 second=119 amount=3
+kerning first=104 second=118 amount=3
+kerning first=104 second=122 amount=2
+kerning first=104 second=110 amount=2
+kerning first=104 second=120 amount=3
+kerning first=104 second=114 amount=2
+kerning first=104 second=117 amount=3
+kerning first=104 second=109 amount=1
+kerning first=104 second=97 amount=3
+kerning first=104 second=111 amount=3
+kerning first=104 second=101 amount=2
+kerning first=104 second=99 amount=3
+kerning first=104 second=115 amount=3
+kerning first=104 second=58 amount=2
+kerning first=104 second=35 amount=2
+kerning first=104 second=34 amount=-5
+kerning first=104 second=39 amount=-5
+kerning first=104 second=45 amount=2
+kerning first=104 second=46 amount=2
+kerning first=102 second=106 amount=4
+kerning first=102 second=104 amount=3
+kerning first=102 second=102 amount=4
+kerning first=102 second=93 amount=2
+kerning first=102 second=53 amount=1
+kerning first=102 second=48 amount=2
+kerning first=102 second=63 amount=1
+kerning first=102 second=108 amount=4
+kerning first=102 second=50 amount=-2
+kerning first=102 second=92 amount=2
+kerning first=102 second=47 amount=-2
+kerning first=102 second=55 amount=-2
+kerning first=102 second=107 amount=4
+kerning first=102 second=49 amount=-5
+kerning first=102 second=40 amount=4
+kerning first=102 second=41 amount=2
+kerning first=102 second=33 amount=4
+kerning first=102 second=54 amount=1
+kerning first=102 second=57 amount=1
+kerning first=102 second=105 amount=4
+kerning first=102 second=100 amount=2
+kerning first=102 second=113 amount=2
+kerning first=102 second=112 amount=4
+kerning first=102 second=98 amount=3
+kerning first=102 second=116 amount=5
+kerning first=102 second=103 amount=2
+kerning first=102 second=121 amount=5
+kerning first=102 second=59 amount=3
+kerning first=102 second=119 amount=6
+kerning first=102 second=118 amount=6
+kerning first=102 second=122 amount=2
+kerning first=102 second=110 amount=4
+kerning first=102 second=120 amount=4
+kerning first=102 second=114 amount=4
+kerning first=102 second=117 amount=4
+kerning first=102 second=109 amount=3
+kerning first=102 second=97 amount=3
+kerning first=102 second=111 amount=3
+kerning first=102 second=101 amount=2
+kerning first=102 second=99 amount=2
+kerning first=102 second=115 amount=2
+kerning first=102 second=58 amount=2
+kerning first=102 second=35 amount=3
+kerning first=102 second=34 amount=3
+kerning first=102 second=39 amount=3
+kerning first=102 second=45 amount=-4
+kerning first=102 second=46 amount=-1
+kerning first=93 second=106 amount=2
+kerning first=93 second=104 amount=1
+kerning first=93 second=90 amount=2
+kerning first=93 second=88 amount=3
+kerning first=93 second=65 amount=1
+kerning first=93 second=75 amount=1
+kerning first=93 second=78 amount=1
+kerning first=93 second=86 amount=1
+kerning first=93 second=83 amount=1
+kerning first=93 second=48 amount=-1
+kerning first=93 second=56 amount=-1
+kerning first=93 second=69 amount=1
+kerning first=93 second=108 amount=2
+kerning first=93 second=82 amount=1
+kerning first=93 second=50 amount=1
+kerning first=93 second=47 amount=2
+kerning first=93 second=55 amount=1
+kerning first=93 second=107 amount=2
+kerning first=93 second=66 amount=1
+kerning first=93 second=80 amount=2
+kerning first=93 second=70 amount=1
+kerning first=93 second=49 amount=-5
+kerning first=93 second=41 amount=2
+kerning first=93 second=73 amount=2
+kerning first=93 second=33 amount=2
+kerning first=93 second=54 amount=-1
+kerning first=93 second=67 amount=1
+kerning first=93 second=105 amount=2
+kerning first=93 second=112 amount=2
+kerning first=93 second=98 amount=2
+kerning first=93 second=116 amount=2
+kerning first=93 second=103 amount=1
+kerning first=93 second=121 amount=1
+kerning first=93 second=59 amount=2
+kerning first=93 second=119 amount=2
+kerning first=93 second=118 amount=2
+kerning first=93 second=122 amount=2
+kerning first=93 second=110 amount=2
+kerning first=93 second=120 amount=3
+kerning first=93 second=114 amount=2
+kerning first=93 second=117 amount=1
+kerning first=93 second=97 amount=3
+kerning first=93 second=111 amount=1
+kerning first=93 second=99 amount=1
+kerning first=93 second=115 amount=2
+kerning first=93 second=58 amount=2
+kerning first=93 second=34 amount=1
+kerning first=93 second=39 amount=1
+kerning first=93 second=44 amount=1
+kerning first=93 second=46 amount=3
+kerning first=90 second=87 amount=2
+kerning first=90 second=81 amount=-2
+kerning first=90 second=104 amount=1
+kerning first=90 second=102 amount=-3
+kerning first=90 second=93 amount=2
+kerning first=90 second=88 amount=2
+kerning first=90 second=89 amount=1
+kerning first=90 second=65 amount=-1
+kerning first=90 second=75 amount=2
+kerning first=90 second=78 amount=1
+kerning first=90 second=53 amount=-1
+kerning first=90 second=86 amount=2
+kerning first=90 second=85 amount=2
+kerning first=90 second=83 amount=-1
+kerning first=90 second=48 amount=-3
+kerning first=90 second=68 amount=1
+kerning first=90 second=76 amount=2
+kerning first=90 second=74 amount=-5
+kerning first=90 second=63 amount=-1
+kerning first=90 second=56 amount=-3
+kerning first=90 second=69 amount=1
+kerning first=90 second=108 amount=2
+kerning first=90 second=82 amount=2
+kerning first=90 second=52 amount=-8
+kerning first=90 second=50 amount=-2
+kerning first=90 second=92 amount=2
+kerning first=90 second=51 amount=-3
+kerning first=90 second=107 amount=2
+kerning first=90 second=66 amount=2
+kerning first=90 second=80 amount=2
+kerning first=90 second=49 amount=-4
+kerning first=90 second=41 amount=2
+kerning first=90 second=73 amount=2
+kerning first=90 second=33 amount=2
+kerning first=90 second=64 amount=-4
+kerning first=90 second=54 amount=-3
+kerning first=90 second=57 amount=-3
+kerning first=90 second=105 amount=1
+kerning first=90 second=100 amount=-2
+kerning first=90 second=113 amount=-3
+kerning first=90 second=112 amount=-2
+kerning first=90 second=98 amount=2
+kerning first=90 second=116 amount=-3
+kerning first=90 second=103 amount=-2
+kerning first=90 second=121 amount=-4
+kerning first=90 second=59 amount=-1
+kerning first=90 second=119 amount=-3
+kerning first=90 second=118 amount=-3
+kerning first=90 second=122 amount=-1
+kerning first=90 second=110 amount=-1
+kerning first=90 second=114 amount=-1
+kerning first=90 second=117 amount=-2
+kerning first=90 second=109 amount=-3
+kerning first=90 second=111 amount=-2
+kerning first=90 second=101 amount=-2
+kerning first=90 second=99 amount=-2
+kerning first=90 second=115 amount=-1
+kerning first=90 second=58 amount=-2
+kerning first=90 second=35 amount=-6
+kerning first=90 second=34 amount=3
+kerning first=90 second=39 amount=3
+kerning first=90 second=45 amount=-11
+kerning first=88 second=106 amount=1
+kerning first=88 second=81 amount=-2
+kerning first=88 second=84 amount=-3
+kerning first=88 second=102 amount=-2
+kerning first=88 second=90 amount=2
+kerning first=88 second=88 amount=2
+kerning first=88 second=65 amount=1
+kerning first=88 second=83 amount=-1
+kerning first=88 second=48 amount=-2
+kerning first=88 second=74 amount=-3
+kerning first=88 second=63 amount=-3
+kerning first=88 second=56 amount=-2
+kerning first=88 second=69 amount=1
+kerning first=88 second=108 amount=2
+kerning first=88 second=52 amount=-5
+kerning first=88 second=47 amount=2
+kerning first=88 second=71 amount=-1
+kerning first=88 second=51 amount=-2
+kerning first=88 second=107 amount=2
+kerning first=88 second=80 amount=1
+kerning first=88 second=49 amount=-6
+kerning first=88 second=41 amount=2
+kerning first=88 second=73 amount=1
+kerning first=88 second=33 amount=1
+kerning first=88 second=64 amount=-1
+kerning first=88 second=79 amount=-2
+kerning first=88 second=54 amount=-3
+kerning first=88 second=57 amount=-3
+kerning first=88 second=105 amount=2
+kerning first=88 second=112 amount=1
+kerning first=88 second=98 amount=2
+kerning first=88 second=116 amount=-2
+kerning first=88 second=121 amount=-3
+kerning first=88 second=59 amount=2
+kerning first=88 second=118 amount=-2
+kerning first=88 second=122 amount=2
+kerning first=88 second=110 amount=2
+kerning first=88 second=120 amount=3
+kerning first=88 second=114 amount=1
+kerning first=88 second=97 amount=2
+kerning first=88 second=115 amount=1
+kerning first=88 second=58 amount=1
+kerning first=88 second=35 amount=-6
+kerning first=88 second=44 amount=3
+kerning first=88 second=45 amount=-5
+kerning first=88 second=46 amount=3
+kerning first=89 second=106 amount=1
+kerning first=89 second=87 amount=3
+kerning first=89 second=81 amount=-1
+kerning first=89 second=77 amount=1
+kerning first=89 second=84 amount=1
+kerning first=89 second=104 amount=2
+kerning first=89 second=102 amount=-2
+kerning first=89 second=93 amount=2
+kerning first=89 second=88 amount=3
+kerning first=89 second=89 amount=2
+kerning first=89 second=65 amount=-6
+kerning first=89 second=75 amount=3
+kerning first=89 second=78 amount=2
+kerning first=89 second=86 amount=3
+kerning first=89 second=85 amount=3
+kerning first=89 second=72 amount=2
+kerning first=89 second=48 amount=-2
+kerning first=89 second=68 amount=2
+kerning first=89 second=76 amount=3
+kerning first=89 second=74 amount=-6
+kerning first=89 second=56 amount=-2
+kerning first=89 second=69 amount=2
+kerning first=89 second=108 amount=3
+kerning first=89 second=82 amount=3
+kerning first=89 second=52 amount=-5
+kerning first=89 second=50 amount=-4
+kerning first=89 second=92 amount=3
+kerning first=89 second=47 amount=-3
+kerning first=89 second=51 amount=-3
+kerning first=89 second=107 amount=2
+kerning first=89 second=66 amount=3
+kerning first=89 second=80 amount=2
+kerning first=89 second=70 amount=1
+kerning first=89 second=49 amount=-3
+kerning first=89 second=41 amount=2
+kerning first=89 second=73 amount=3
+kerning first=89 second=33 amount=3
+kerning first=89 second=64 amount=-7
+kerning first=89 second=54 amount=-3
+kerning first=89 second=57 amount=-2
+kerning first=89 second=105 amount=2
+kerning first=89 second=100 amount=-5
+kerning first=89 second=113 amount=-4
+kerning first=89 second=112 amount=-2
+kerning first=89 second=98 amount=2
+kerning first=89 second=116 amount=-2
+kerning first=89 second=103 amount=-5
+kerning first=89 second=121 amount=-1
+kerning first=89 second=59 amount=-4
+kerning first=89 second=122 amount=-5
+kerning first=89 second=110 amount=-2
+kerning first=89 second=120 amount=-2
+kerning first=89 second=114 amount=-2
+kerning first=89 second=117 amount=-2
+kerning first=89 second=109 amount=-3
+kerning first=89 second=97 amount=-4
+kerning first=89 second=111 amount=-4
+kerning first=89 second=101 amount=-5
+kerning first=89 second=99 amount=-5
+kerning first=89 second=115 amount=-5
+kerning first=89 second=58 amount=-5
+kerning first=89 second=35 amount=-3
+kerning first=89 second=34 amount=4
+kerning first=89 second=39 amount=4
+kerning first=89 second=44 amount=-8
+kerning first=89 second=45 amount=-6
+kerning first=89 second=46 amount=-8
+kerning first=65 second=87 amount=-3
+kerning first=65 second=84 amount=-4
+kerning first=65 second=102 amount=-3
+kerning first=65 second=93 amount=-1
+kerning first=65 second=88 amount=1
+kerning first=65 second=89 amount=-6
+kerning first=65 second=53 amount=-2
+kerning first=65 second=86 amount=-4
+kerning first=65 second=83 amount=1
+kerning first=65 second=63 amount=-3
+kerning first=65 second=56 amount=-2
+kerning first=65 second=108 amount=1
+kerning first=65 second=92 amount=-7
+kerning first=65 second=71 amount=1
+kerning first=65 second=51 amount=-3
+kerning first=65 second=49 amount=-7
+kerning first=65 second=54 amount=-1
+kerning first=65 second=57 amount=-1
+kerning first=65 second=67 amount=1
+kerning first=65 second=105 amount=1
+kerning first=65 second=100 amount=1
+kerning first=65 second=113 amount=1
+kerning first=65 second=116 amount=-3
+kerning first=65 second=103 amount=2
+kerning first=65 second=59 amount=2
+kerning first=65 second=122 amount=1
+kerning first=65 second=110 amount=1
+kerning first=65 second=120 amount=2
+kerning first=65 second=114 amount=1
+kerning first=65 second=117 amount=2
+kerning first=65 second=97 amount=2
+kerning first=65 second=111 amount=2
+kerning first=65 second=101 amount=1
+kerning first=65 second=99 amount=2
+kerning first=65 second=34 amount=-7
+kerning first=65 second=39 amount=-7
+kerning first=65 second=44 amount=2
+kerning first=65 second=46 amount=2
+kerning first=75 second=106 amount=2
+kerning first=75 second=77 amount=1
+kerning first=75 second=84 amount=-2
+kerning first=75 second=104 amount=2
+kerning first=75 second=102 amount=-1
+kerning first=75 second=90 amount=3
+kerning first=75 second=88 amount=3
+kerning first=75 second=65 amount=2
+kerning first=75 second=75 amount=2
+kerning first=75 second=78 amount=2
+kerning first=75 second=53 amount=2
+kerning first=75 second=72 amount=1
+kerning first=75 second=76 amount=1
+kerning first=75 second=74 amount=-1
+kerning first=75 second=63 amount=-3
+kerning first=75 second=69 amount=2
+kerning first=75 second=108 amount=3
+kerning first=75 second=82 amount=2
+kerning first=75 second=52 amount=-5
+kerning first=75 second=50 amount=2
+kerning first=75 second=47 amount=2
+kerning first=75 second=55 amount=2
+kerning first=75 second=107 amount=2
+kerning first=75 second=66 amount=2
+kerning first=75 second=80 amount=2
+kerning first=75 second=70 amount=2
+kerning first=75 second=49 amount=-5
+kerning first=75 second=40 amount=1
+kerning first=75 second=41 amount=3
+kerning first=75 second=73 amount=2
+kerning first=75 second=33 amount=2
+kerning first=75 second=54 amount=-1
+kerning first=75 second=67 amount=2
+kerning first=75 second=105 amount=2
+kerning first=75 second=100 amount=2
+kerning first=75 second=113 amount=1
+kerning first=75 second=112 amount=2
+kerning first=75 second=98 amount=2
+kerning first=75 second=116 amount=-2
+kerning first=75 second=103 amount=2
+kerning first=75 second=121 amount=-2
+kerning first=75 second=59 amount=2
+kerning first=75 second=122 amount=3
+kerning first=75 second=110 amount=2
+kerning first=75 second=120 amount=4
+kerning first=75 second=114 amount=2
+kerning first=75 second=117 amount=2
+kerning first=75 second=97 amount=3
+kerning first=75 second=111 amount=2
+kerning first=75 second=101 amount=2
+kerning first=75 second=99 amount=2
+kerning first=75 second=115 amount=3
+kerning first=75 second=58 amount=2
+kerning first=75 second=35 amount=-7
+kerning first=75 second=44 amount=3
+kerning first=75 second=45 amount=-7
+kerning first=75 second=46 amount=4
+kerning first=78 second=106 amount=2
+kerning first=78 second=87 amount=2
+kerning first=78 second=104 amount=1
+kerning first=78 second=102 amount=1
+kerning first=78 second=93 amount=1
+kerning first=78 second=90 amount=2
+kerning first=78 second=88 amount=2
+kerning first=78 second=65 amount=1
+kerning first=78 second=75 amount=2
+kerning first=78 second=86 amount=2
+kerning first=78 second=85 amount=1
+kerning first=78 second=83 amount=1
+kerning first=78 second=48 amount=-1
+kerning first=78 second=76 amount=2
+kerning first=78 second=69 amount=1
+kerning first=78 second=108 amount=2
+kerning first=78 second=82 amount=2
+kerning first=78 second=92 amount=1
+kerning first=78 second=47 amount=2
+kerning first=78 second=107 amount=2
+kerning first=78 second=66 amount=2
+kerning first=78 second=80 amount=2
+kerning first=78 second=49 amount=-4
+kerning first=78 second=41 amount=2
+kerning first=78 second=73 amount=2
+kerning first=78 second=33 amount=2
+kerning first=78 second=54 amount=-1
+kerning first=78 second=57 amount=-1
+kerning first=78 second=105 amount=2
+kerning first=78 second=112 amount=1
+kerning first=78 second=98 amount=2
+kerning first=78 second=116 amount=2
+kerning first=78 second=103 amount=1
+kerning first=78 second=121 amount=2
+kerning first=78 second=59 amount=2
+kerning first=78 second=119 amount=3
+kerning first=78 second=118 amount=2
+kerning first=78 second=122 amount=2
+kerning first=78 second=110 amount=2
+kerning first=78 second=120 amount=3
+kerning first=78 second=114 amount=2
+kerning first=78 second=117 amount=1
+kerning first=78 second=97 amount=3
+kerning first=78 second=111 amount=1
+kerning first=78 second=99 amount=1
+kerning first=78 second=115 amount=2
+kerning first=78 second=58 amount=2
+kerning first=78 second=34 amount=2
+kerning first=78 second=39 amount=2
+kerning first=78 second=46 amount=2
+kerning first=53 second=81 amount=-2
+kerning first=53 second=90 amount=-2
+kerning first=53 second=65 amount=-5
+kerning first=53 second=86 amount=1
+kerning first=53 second=83 amount=-2
+kerning first=53 second=74 amount=-3
+kerning first=53 second=63 amount=-1
+kerning first=53 second=47 amount=-7
+kerning first=53 second=71 amount=-1
+kerning first=53 second=64 amount=-3
+kerning first=53 second=79 amount=-2
+kerning first=53 second=100 amount=-2
+kerning first=53 second=113 amount=-2
+kerning first=53 second=112 amount=-2
+kerning first=53 second=103 amount=-2
+kerning first=53 second=59 amount=-2
+kerning first=53 second=122 amount=-3
+kerning first=53 second=110 amount=-1
+kerning first=53 second=120 amount=-1
+kerning first=53 second=114 amount=-2
+kerning first=53 second=117 amount=-1
+kerning first=53 second=109 amount=-2
+kerning first=53 second=97 amount=-1
+kerning first=53 second=111 amount=-1
+kerning first=53 second=101 amount=-2
+kerning first=53 second=99 amount=-2
+kerning first=53 second=115 amount=-2
+kerning first=53 second=58 amount=-3
+kerning first=53 second=35 amount=-2
+kerning first=53 second=34 amount=1
+kerning first=53 second=39 amount=1
+kerning first=53 second=44 amount=-8
+kerning first=53 second=45 amount=-2
+kerning first=53 second=46 amount=-6
+kerning first=86 second=87 amount=2
+kerning first=86 second=81 amount=-2
+kerning first=86 second=104 amount=1
+kerning first=86 second=102 amount=-2
+kerning first=86 second=93 amount=2
+kerning first=86 second=90 amount=-1
+kerning first=86 second=88 amount=2
+kerning first=86 second=89 amount=1
+kerning first=86 second=65 amount=-7
+kerning first=86 second=75 amount=2
+kerning first=86 second=78 amount=1
+kerning first=86 second=53 amount=-1
+kerning first=86 second=86 amount=2
+kerning first=86 second=85 amount=2
+kerning first=86 second=83 amount=-1
+kerning first=86 second=48 amount=-3
+kerning first=86 second=68 amount=1
+kerning first=86 second=76 amount=2
+kerning first=86 second=74 amount=-5
+kerning first=86 second=56 amount=-3
+kerning first=86 second=69 amount=1
+kerning first=86 second=108 amount=2
+kerning first=86 second=82 amount=2
+kerning first=86 second=52 amount=-4
+kerning first=86 second=50 amount=-4
+kerning first=86 second=92 amount=2
+kerning first=86 second=47 amount=-6
+kerning first=86 second=51 amount=-3
+kerning first=86 second=107 amount=2
+kerning first=86 second=66 amount=2
+kerning first=86 second=80 amount=2
+kerning first=86 second=49 amount=-4
+kerning first=86 second=41 amount=2
+kerning first=86 second=73 amount=2
+kerning first=86 second=33 amount=2
+kerning first=86 second=64 amount=-5
+kerning first=86 second=54 amount=-3
+kerning first=86 second=57 amount=-3
+kerning first=86 second=105 amount=1
+kerning first=86 second=100 amount=-4
+kerning first=86 second=113 amount=-4
+kerning first=86 second=112 amount=-2
+kerning first=86 second=98 amount=2
+kerning first=86 second=103 amount=-4
+kerning first=86 second=59 amount=-3
+kerning first=86 second=122 amount=-4
+kerning first=86 second=110 amount=-2
+kerning first=86 second=120 amount=-2
+kerning first=86 second=114 amount=-2
+kerning first=86 second=117 amount=-2
+kerning first=86 second=109 amount=-2
+kerning first=86 second=97 amount=-3
+kerning first=86 second=111 amount=-3
+kerning first=86 second=101 amount=-4
+kerning first=86 second=99 amount=-4
+kerning first=86 second=115 amount=-4
+kerning first=86 second=58 amount=-4
+kerning first=86 second=35 amount=-2
+kerning first=86 second=34 amount=3
+kerning first=86 second=39 amount=3
+kerning first=86 second=44 amount=-7
+kerning first=86 second=45 amount=-4
+kerning first=86 second=46 amount=-7
+kerning first=85 second=106 amount=1
+kerning first=85 second=87 amount=2
+kerning first=85 second=84 amount=1
+kerning first=85 second=102 amount=2
+kerning first=85 second=93 amount=1
+kerning first=85 second=88 amount=2
+kerning first=85 second=89 amount=1
+kerning first=85 second=65 amount=-3
+kerning first=85 second=75 amount=2
+kerning first=85 second=86 amount=2
+kerning first=85 second=85 amount=2
+kerning first=85 second=68 amount=1
+kerning first=85 second=76 amount=2
+kerning first=85 second=63 amount=1
+kerning first=85 second=56 amount=-1
+kerning first=85 second=108 amount=2
+kerning first=85 second=82 amount=2
+kerning first=85 second=50 amount=-2
+kerning first=85 second=92 amount=2
+kerning first=85 second=47 amount=-2
+kerning first=85 second=71 amount=1
+kerning first=85 second=51 amount=-1
+kerning first=85 second=107 amount=2
+kerning first=85 second=66 amount=2
+kerning first=85 second=80 amount=1
+kerning first=85 second=49 amount=-4
+kerning first=85 second=40 amount=1
+kerning first=85 second=41 amount=1
+kerning first=85 second=73 amount=2
+kerning first=85 second=33 amount=2
+kerning first=85 second=54 amount=-1
+kerning first=85 second=57 amount=-1
+kerning first=85 second=67 amount=1
+kerning first=85 second=105 amount=1
+kerning first=85 second=112 amount=1
+kerning first=85 second=98 amount=2
+kerning first=85 second=116 amount=3
+kerning first=85 second=121 amount=2
+kerning first=85 second=119 amount=3
+kerning first=85 second=118 amount=3
+kerning first=85 second=110 amount=1
+kerning first=85 second=120 amount=2
+kerning first=85 second=114 amount=1
+kerning first=85 second=117 amount=1
+kerning first=85 second=97 amount=1
+kerning first=85 second=34 amount=2
+kerning first=85 second=39 amount=3
+kerning first=85 second=44 amount=-4
+kerning first=85 second=46 amount=-2
+kerning first=83 second=106 amount=1
+kerning first=83 second=104 amount=1
+kerning first=83 second=90 amount=2
+kerning first=83 second=88 amount=1
+kerning first=83 second=89 amount=-2
+kerning first=83 second=53 amount=1
+kerning first=83 second=83 amount=2
+kerning first=83 second=74 amount=1
+kerning first=83 second=108 amount=2
+kerning first=83 second=71 amount=1
+kerning first=83 second=107 amount=2
+kerning first=83 second=49 amount=-5
+kerning first=83 second=40 amount=1
+kerning first=83 second=41 amount=1
+kerning first=83 second=33 amount=2
+kerning first=83 second=67 amount=2
+kerning first=83 second=105 amount=2
+kerning first=83 second=100 amount=2
+kerning first=83 second=113 amount=2
+kerning first=83 second=112 amount=1
+kerning first=83 second=98 amount=1
+kerning first=83 second=116 amount=-1
+kerning first=83 second=103 amount=2
+kerning first=83 second=121 amount=2
+kerning first=83 second=119 amount=3
+kerning first=83 second=118 amount=3
+kerning first=83 second=122 amount=1
+kerning first=83 second=110 amount=2
+kerning first=83 second=120 amount=2
+kerning first=83 second=114 amount=2
+kerning first=83 second=117 amount=2
+kerning first=83 second=97 amount=3
+kerning first=83 second=111 amount=2
+kerning first=83 second=101 amount=2
+kerning first=83 second=99 amount=2
+kerning first=83 second=115 amount=2
+kerning first=83 second=46 amount=2
+kerning first=72 second=106 amount=2
+kerning first=72 second=87 amount=1
+kerning first=72 second=81 amount=2
+kerning first=72 second=104 amount=2
+kerning first=72 second=102 amount=2
+kerning first=72 second=93 amount=1
+kerning first=72 second=88 amount=2
+kerning first=72 second=75 amount=2
+kerning first=72 second=86 amount=2
+kerning first=72 second=85 amount=1
+kerning first=72 second=72 amount=2
+kerning first=72 second=76 amount=2
+kerning first=72 second=56 amount=-2
+kerning first=72 second=69 amount=1
+kerning first=72 second=108 amount=2
+kerning first=72 second=82 amount=2
+kerning first=72 second=52 amount=1
+kerning first=72 second=92 amount=1
+kerning first=72 second=71 amount=2
+kerning first=72 second=51 amount=-2
+kerning first=72 second=107 amount=2
+kerning first=72 second=66 amount=2
+kerning first=72 second=80 amount=1
+kerning first=72 second=49 amount=-5
+kerning first=72 second=40 amount=2
+kerning first=72 second=41 amount=1
+kerning first=72 second=73 amount=2
+kerning first=72 second=33 amount=2
+kerning first=72 second=79 amount=2
+kerning first=72 second=57 amount=-1
+kerning first=72 second=67 amount=2
+kerning first=72 second=105 amount=2
+kerning first=72 second=100 amount=2
+kerning first=72 second=113 amount=2
+kerning first=72 second=112 amount=1
+kerning first=72 second=98 amount=2
+kerning first=72 second=116 amount=3
+kerning first=72 second=103 amount=2
+kerning first=72 second=121 amount=1
+kerning first=72 second=59 amount=1
+kerning first=72 second=119 amount=3
+kerning first=72 second=118 amount=2
+kerning first=72 second=110 amount=2
+kerning first=72 second=120 amount=2
+kerning first=72 second=114 amount=2
+kerning first=72 second=117 amount=2
+kerning first=72 second=97 amount=2
+kerning first=72 second=111 amount=2
+kerning first=72 second=101 amount=2
+kerning first=72 second=99 amount=2
+kerning first=72 second=115 amount=1
+kerning first=72 second=35 amount=2
+kerning first=72 second=34 amount=2
+kerning first=72 second=39 amount=2
+kerning first=72 second=45 amount=2
+kerning first=72 second=46 amount=1
+kerning first=48 second=87 amount=-3
+kerning first=48 second=77 amount=-3
+kerning first=48 second=84 amount=-2
+kerning first=48 second=104 amount=-1
+kerning first=48 second=93 amount=-3
+kerning first=48 second=90 amount=-2
+kerning first=48 second=88 amount=-3
+kerning first=48 second=89 amount=-5
+kerning first=48 second=65 amount=-4
+kerning first=48 second=75 amount=-2
+kerning first=48 second=78 amount=-2
+kerning first=48 second=86 amount=-3
+kerning first=48 second=85 amount=-1
+kerning first=48 second=68 amount=-2
+kerning first=48 second=76 amount=-2
+kerning first=48 second=74 amount=-1
+kerning first=48 second=63 amount=-1
+kerning first=48 second=69 amount=-1
+kerning first=48 second=82 amount=-2
+kerning first=48 second=92 amount=-4
+kerning first=48 second=47 amount=-3
+kerning first=48 second=66 amount=-1
+kerning first=48 second=80 amount=-1
+kerning first=48 second=70 amount=-2
+kerning first=48 second=41 amount=-3
+kerning first=48 second=73 amount=-1
+kerning first=48 second=64 amount=-2
+kerning first=48 second=98 amount=-1
+kerning first=48 second=116 amount=1
+kerning first=48 second=119 amount=2
+kerning first=48 second=118 amount=1
+kerning first=48 second=122 amount=-2
+kerning first=48 second=109 amount=-1
+kerning first=48 second=115 amount=-1
+kerning first=48 second=58 amount=-2
+kerning first=48 second=34 amount=-1
+kerning first=48 second=39 amount=-1
+kerning first=48 second=44 amount=-4
+kerning first=48 second=46 amount=-2
+kerning first=68 second=106 amount=1
+kerning first=68 second=87 amount=1
+kerning first=68 second=84 amount=2
+kerning first=68 second=104 amount=1
+kerning first=68 second=102 amount=1
+kerning first=68 second=90 amount=-2
+kerning first=68 second=65 amount=-4
+kerning first=68 second=75 amount=1
+kerning first=68 second=53 amount=-1
+kerning first=68 second=86 amount=1
+kerning first=68 second=85 amount=1
+kerning first=68 second=76 amount=1
+kerning first=68 second=74 amount=-2
+kerning first=68 second=63 amount=2
+kerning first=68 second=108 amount=2
+kerning first=68 second=82 amount=1
+kerning first=68 second=52 amount=-1
+kerning first=68 second=50 amount=-2
+kerning first=68 second=47 amount=-6
+kerning first=68 second=107 amount=2
+kerning first=68 second=66 amount=1
+kerning first=68 second=80 amount=1
+kerning first=68 second=49 amount=-3
+kerning first=68 second=40 amount=1
+kerning first=68 second=73 amount=1
+kerning first=68 second=33 amount=2
+kerning first=68 second=64 amount=-2
+kerning first=68 second=54 amount=-1
+kerning first=68 second=67 amount=1
+kerning first=68 second=105 amount=2
+kerning first=68 second=112 amount=1
+kerning first=68 second=98 amount=2
+kerning first=68 second=116 amount=2
+kerning first=68 second=121 amount=2
+kerning first=68 second=119 amount=3
+kerning first=68 second=118 amount=3
+kerning first=68 second=110 amount=1
+kerning first=68 second=120 amount=1
+kerning first=68 second=114 amount=1
+kerning first=68 second=117 amount=1
+kerning first=68 second=101 amount=-1
+kerning first=68 second=34 amount=3
+kerning first=68 second=39 amount=3
+kerning first=68 second=44 amount=-8
+kerning first=68 second=46 amount=-6
+kerning first=76 second=106 amount=2
+kerning first=76 second=87 amount=-4
+kerning first=76 second=84 amount=-4
+kerning first=76 second=104 amount=1
+kerning first=76 second=102 amount=-2
+kerning first=76 second=90 amount=2
+kerning first=76 second=88 amount=2
+kerning first=76 second=89 amount=-6
+kerning first=76 second=53 amount=1
+kerning first=76 second=86 amount=-4
+kerning first=76 second=83 amount=2
+kerning first=76 second=63 amount=-3
+kerning first=76 second=108 amount=2
+kerning first=76 second=52 amount=-3
+kerning first=76 second=92 amount=-7
+kerning first=76 second=47 amount=1
+kerning first=76 second=107 amount=2
+kerning first=76 second=49 amount=-6
+kerning first=76 second=41 amount=1
+kerning first=76 second=33 amount=2
+kerning first=76 second=54 amount=-1
+kerning first=76 second=67 amount=1
+kerning first=76 second=105 amount=2
+kerning first=76 second=100 amount=1
+kerning first=76 second=113 amount=2
+kerning first=76 second=112 amount=2
+kerning first=76 second=98 amount=1
+kerning first=76 second=116 amount=-2
+kerning first=76 second=103 amount=2
+kerning first=76 second=121 amount=-2
+kerning first=76 second=59 amount=1
+kerning first=76 second=122 amount=2
+kerning first=76 second=110 amount=2
+kerning first=76 second=120 amount=3
+kerning first=76 second=114 amount=2
+kerning first=76 second=117 amount=2
+kerning first=76 second=97 amount=3
+kerning first=76 second=111 amount=2
+kerning first=76 second=101 amount=2
+kerning first=76 second=99 amount=2
+kerning first=76 second=115 amount=3
+kerning first=76 second=58 amount=1
+kerning first=76 second=35 amount=-7
+kerning first=76 second=34 amount=-7
+kerning first=76 second=39 amount=-7
+kerning first=76 second=44 amount=1
+kerning first=76 second=45 amount=-7
+kerning first=76 second=46 amount=3
+kerning first=74 second=106 amount=1
+kerning first=74 second=87 amount=3
+kerning first=74 second=77 amount=1
+kerning first=74 second=84 amount=1
+kerning first=74 second=104 amount=2
+kerning first=74 second=102 amount=1
+kerning first=74 second=93 amount=2
+kerning first=74 second=88 amount=3
+kerning first=74 second=89 amount=2
+kerning first=74 second=75 amount=2
+kerning first=74 second=78 amount=2
+kerning first=74 second=86 amount=3
+kerning first=74 second=85 amount=2
+kerning first=74 second=72 amount=1
+kerning first=74 second=68 amount=2
+kerning first=74 second=76 amount=2
+kerning first=74 second=63 amount=1
+kerning first=74 second=56 amount=-2
+kerning first=74 second=69 amount=2
+kerning first=74 second=108 amount=2
+kerning first=74 second=82 amount=2
+kerning first=74 second=92 amount=2
+kerning first=74 second=71 amount=1
+kerning first=74 second=51 amount=-2
+kerning first=74 second=107 amount=2
+kerning first=74 second=66 amount=3
+kerning first=74 second=80 amount=2
+kerning first=74 second=49 amount=-3
+kerning first=74 second=41 amount=2
+kerning first=74 second=73 amount=2
+kerning first=74 second=33 amount=2
+kerning first=74 second=54 amount=-1
+kerning first=74 second=57 amount=-1
+kerning first=74 second=67 amount=1
+kerning first=74 second=105 amount=2
+kerning first=74 second=98 amount=2
+kerning first=74 second=116 amount=3
+kerning first=74 second=121 amount=2
+kerning first=74 second=119 amount=3
+kerning first=74 second=118 amount=3
+kerning first=74 second=120 amount=1
+kerning first=74 second=114 amount=1
+kerning first=74 second=97 amount=1
+kerning first=74 second=111 amount=1
+kerning first=74 second=115 amount=1
+kerning first=74 second=34 amount=3
+kerning first=74 second=39 amount=3
+kerning first=63 second=87 amount=2
+kerning first=63 second=84 amount=2
+kerning first=63 second=102 amount=-1
+kerning first=63 second=93 amount=1
+kerning first=63 second=90 amount=-2
+kerning first=63 second=88 amount=1
+kerning first=63 second=65 amount=-4
+kerning first=63 second=75 amount=1
+kerning first=63 second=53 amount=-2
+kerning first=63 second=86 amount=2
+kerning first=63 second=85 amount=1
+kerning first=63 second=48 amount=-2
+kerning first=63 second=74 amount=-5
+kerning first=63 second=63 amount=2
+kerning first=63 second=56 amount=-1
+kerning first=63 second=108 amount=2
+kerning first=63 second=82 amount=1
+kerning first=63 second=52 amount=-5
+kerning first=63 second=50 amount=-2
+kerning first=63 second=92 amount=1
+kerning first=63 second=47 amount=-3
+kerning first=63 second=51 amount=-1
+kerning first=63 second=107 amount=1
+kerning first=63 second=66 amount=2
+kerning first=63 second=80 amount=1
+kerning first=63 second=49 amount=-3
+kerning first=63 second=73 amount=1
+kerning first=63 second=33 amount=2
+kerning first=63 second=64 amount=-6
+kerning first=63 second=54 amount=-2
+kerning first=63 second=57 amount=-2
+kerning first=63 second=105 amount=2
+kerning first=63 second=100 amount=-3
+kerning first=63 second=113 amount=-3
+kerning first=63 second=98 amount=2
+kerning first=63 second=103 amount=-3
+kerning first=63 second=59 amount=-2
+kerning first=63 second=119 amount=2
+kerning first=63 second=118 amount=1
+kerning first=63 second=122 amount=-3
+kerning first=63 second=97 amount=-2
+kerning first=63 second=111 amount=-3
+kerning first=63 second=101 amount=-4
+kerning first=63 second=99 amount=-4
+kerning first=63 second=115 amount=-3
+kerning first=63 second=58 amount=-3
+kerning first=63 second=35 amount=-1
+kerning first=63 second=34 amount=2
+kerning first=63 second=39 amount=3
+kerning first=63 second=44 amount=-2
+kerning first=63 second=45 amount=-5
+kerning first=63 second=46 amount=-3
+kerning first=56 second=106 amount=-2
+kerning first=56 second=87 amount=-3
+kerning first=56 second=81 amount=-3
+kerning first=56 second=77 amount=-4
+kerning first=56 second=84 amount=-3
+kerning first=56 second=104 amount=-2
+kerning first=56 second=102 amount=-5
+kerning first=56 second=93 amount=-3
+kerning first=56 second=90 amount=-3
+kerning first=56 second=88 amount=-3
+kerning first=56 second=89 amount=-4
+kerning first=56 second=65 amount=-4
+kerning first=56 second=75 amount=-3
+kerning first=56 second=78 amount=-3
+kerning first=56 second=86 amount=-2
+kerning first=56 second=85 amount=-3
+kerning first=56 second=83 amount=-2
+kerning first=56 second=72 amount=-3
+kerning first=56 second=68 amount=-3
+kerning first=56 second=76 amount=-3
+kerning first=56 second=74 amount=-2
+kerning first=56 second=63 amount=-2
+kerning first=56 second=69 amount=-3
+kerning first=56 second=108 amount=-2
+kerning first=56 second=82 amount=-3
+kerning first=56 second=92 amount=-3
+kerning first=56 second=47 amount=-4
+kerning first=56 second=71 amount=-2
+kerning first=56 second=107 amount=-2
+kerning first=56 second=66 amount=-3
+kerning first=56 second=80 amount=-3
+kerning first=56 second=70 amount=-3
+kerning first=56 second=40 amount=-2
+kerning first=56 second=41 amount=-3
+kerning first=56 second=73 amount=-3
+kerning first=56 second=33 amount=-2
+kerning first=56 second=64 amount=-3
+kerning first=56 second=79 amount=-3
+kerning first=56 second=67 amount=-2
+kerning first=56 second=105 amount=-2
+kerning first=56 second=100 amount=-2
+kerning first=56 second=113 amount=-2
+kerning first=56 second=112 amount=-3
+kerning first=56 second=98 amount=-2
+kerning first=56 second=116 amount=-4
+kerning first=56 second=103 amount=-2
+kerning first=56 second=121 amount=-2
+kerning first=56 second=59 amount=-5
+kerning first=56 second=119 amount=-2
+kerning first=56 second=118 amount=-2
+kerning first=56 second=122 amount=-4
+kerning first=56 second=110 amount=-2
+kerning first=56 second=120 amount=-3
+kerning first=56 second=114 amount=-2
+kerning first=56 second=117 amount=-2
+kerning first=56 second=109 amount=-3
+kerning first=56 second=97 amount=-1
+kerning first=56 second=111 amount=-2
+kerning first=56 second=101 amount=-2
+kerning first=56 second=99 amount=-2
+kerning first=56 second=115 amount=-2
+kerning first=56 second=58 amount=-4
+kerning first=56 second=35 amount=-3
+kerning first=56 second=34 amount=-2
+kerning first=56 second=39 amount=-2
+kerning first=56 second=44 amount=-6
+kerning first=56 second=45 amount=-3
+kerning first=56 second=46 amount=-3
+kerning first=69 second=87 amount=2
+kerning first=69 second=81 amount=-1
+kerning first=69 second=102 amount=-2
+kerning first=69 second=93 amount=1
+kerning first=69 second=90 amount=1
+kerning first=69 second=88 amount=2
+kerning first=69 second=75 amount=2
+kerning first=69 second=86 amount=2
+kerning first=69 second=85 amount=1
+kerning first=69 second=48 amount=-2
+kerning first=69 second=76 amount=2
+kerning first=69 second=74 amount=-3
+kerning first=69 second=63 amount=-1
+kerning first=69 second=56 amount=-2
+kerning first=69 second=108 amount=2
+kerning first=69 second=82 amount=2
+kerning first=69 second=52 amount=-1
+kerning first=69 second=92 amount=1
+kerning first=69 second=51 amount=-1
+kerning first=69 second=107 amount=1
+kerning first=69 second=66 amount=2
+kerning first=69 second=80 amount=1
+kerning first=69 second=49 amount=-4
+kerning first=69 second=41 amount=1
+kerning first=69 second=73 amount=2
+kerning first=69 second=33 amount=2
+kerning first=69 second=64 amount=-1
+kerning first=69 second=54 amount=-3
+kerning first=69 second=57 amount=-2
+kerning first=69 second=105 amount=1
+kerning first=69 second=98 amount=1
+kerning first=69 second=121 amount=-2
+kerning first=69 second=118 amount=-1
+kerning first=69 second=120 amount=2
+kerning first=69 second=97 amount=1
+kerning first=69 second=35 amount=-1
+kerning first=69 second=34 amount=2
+kerning first=69 second=39 amount=2
+kerning first=69 second=46 amount=1
+kerning first=108 second=106 amount=2
+kerning first=108 second=104 amount=1
+kerning first=108 second=102 amount=2
+kerning first=108 second=93 amount=2
+kerning first=108 second=63 amount=2
+kerning first=108 second=108 amount=3
+kerning first=108 second=50 amount=1
+kerning first=108 second=92 amount=2
+kerning first=108 second=47 amount=2
+kerning first=108 second=107 amount=2
+kerning first=108 second=49 amount=-4
+kerning first=108 second=40 amount=1
+kerning first=108 second=41 amount=2
+kerning first=108 second=33 amount=2
+kerning first=108 second=105 amount=2
+kerning first=108 second=100 amount=1
+kerning first=108 second=113 amount=1
+kerning first=108 second=112 amount=2
+kerning first=108 second=98 amount=2
+kerning first=108 second=116 amount=3
+kerning first=108 second=103 amount=2
+kerning first=108 second=121 amount=3
+kerning first=108 second=59 amount=3
+kerning first=108 second=119 amount=4
+kerning first=108 second=118 amount=3
+kerning first=108 second=122 amount=2
+kerning first=108 second=110 amount=2
+kerning first=108 second=120 amount=3
+kerning first=108 second=114 amount=2
+kerning first=108 second=117 amount=2
+kerning first=108 second=97 amount=2
+kerning first=108 second=111 amount=2
+kerning first=108 second=101 amount=1
+kerning first=108 second=99 amount=2
+kerning first=108 second=115 amount=2
+kerning first=108 second=58 amount=2
+kerning first=108 second=35 amount=1
+kerning first=108 second=34 amount=3
+kerning first=108 second=39 amount=3
+kerning first=108 second=44 amount=3
+kerning first=108 second=45 amount=1
+kerning first=108 second=46 amount=3
+kerning first=82 second=106 amount=3
+kerning first=82 second=77 amount=2
+kerning first=82 second=104 amount=2
+kerning first=82 second=93 amount=1
+kerning first=82 second=90 amount=3
+kerning first=82 second=88 amount=4
+kerning first=82 second=89 amount=-2
+kerning first=82 second=65 amount=2
+kerning first=82 second=75 amount=2
+kerning first=82 second=78 amount=2
+kerning first=82 second=53 amount=1
+kerning first=82 second=72 amount=2
+kerning first=82 second=68 amount=1
+kerning first=82 second=76 amount=2
+kerning first=82 second=74 amount=-2
+kerning first=82 second=63 amount=-1
+kerning first=82 second=69 amount=2
+kerning first=82 second=108 amount=3
+kerning first=82 second=82 amount=2
+kerning first=82 second=52 amount=-7
+kerning first=82 second=50 amount=2
+kerning first=82 second=92 amount=-1
+kerning first=82 second=47 amount=3
+kerning first=82 second=55 amount=2
+kerning first=82 second=107 amount=3
+kerning first=82 second=66 amount=2
+kerning first=82 second=80 amount=3
+kerning first=82 second=70 amount=2
+kerning first=82 second=49 amount=-5
+kerning first=82 second=40 amount=1
+kerning first=82 second=41 amount=3
+kerning first=82 second=73 amount=3
+kerning first=82 second=33 amount=3
+kerning first=82 second=54 amount=-2
+kerning first=82 second=57 amount=-1
+kerning first=82 second=67 amount=2
+kerning first=82 second=105 amount=3
+kerning first=82 second=100 amount=2
+kerning first=82 second=113 amount=1
+kerning first=82 second=112 amount=2
+kerning first=82 second=98 amount=3
+kerning first=82 second=103 amount=2
+kerning first=82 second=121 amount=-2
+kerning first=82 second=59 amount=3
+kerning first=82 second=122 amount=3
+kerning first=82 second=110 amount=3
+kerning first=82 second=120 amount=4
+kerning first=82 second=114 amount=3
+kerning first=82 second=117 amount=2
+kerning first=82 second=97 amount=4
+kerning first=82 second=111 amount=2
+kerning first=82 second=101 amount=2
+kerning first=82 second=99 amount=2
+kerning first=82 second=115 amount=3
+kerning first=82 second=58 amount=3
+kerning first=82 second=35 amount=-5
+kerning first=82 second=44 amount=4
+kerning first=82 second=45 amount=-9
+kerning first=82 second=46 amount=5
+kerning first=52 second=106 amount=2
+kerning first=52 second=87 amount=-2
+kerning first=52 second=81 amount=2
+kerning first=52 second=84 amount=-3
+kerning first=52 second=104 amount=1
+kerning first=52 second=102 amount=1
+kerning first=52 second=93 amount=-3
+kerning first=52 second=90 amount=-4
+kerning first=52 second=88 amount=-3
+kerning first=52 second=89 amount=-4
+kerning first=52 second=65 amount=-2
+kerning first=52 second=86 amount=-2
+kerning first=52 second=85 amount=1
+kerning first=52 second=83 amount=-2
+kerning first=52 second=72 amount=2
+kerning first=52 second=63 amount=-2
+kerning first=52 second=69 amount=1
+kerning first=52 second=108 amount=2
+kerning first=52 second=92 amount=-3
+kerning first=52 second=47 amount=-4
+kerning first=52 second=71 amount=2
+kerning first=52 second=107 amount=2
+kerning first=52 second=66 amount=1
+kerning first=52 second=80 amount=1
+kerning first=52 second=40 amount=2
+kerning first=52 second=41 amount=-1
+kerning first=52 second=73 amount=1
+kerning first=52 second=33 amount=2
+kerning first=52 second=79 amount=1
+kerning first=52 second=67 amount=2
+kerning first=52 second=105 amount=2
+kerning first=52 second=100 amount=2
+kerning first=52 second=113 amount=2
+kerning first=52 second=112 amount=1
+kerning first=52 second=98 amount=1
+kerning first=52 second=116 amount=2
+kerning first=52 second=103 amount=2
+kerning first=52 second=121 amount=1
+kerning first=52 second=119 amount=3
+kerning first=52 second=118 amount=2
+kerning first=52 second=122 amount=-2
+kerning first=52 second=110 amount=2
+kerning first=52 second=114 amount=2
+kerning first=52 second=117 amount=2
+kerning first=52 second=97 amount=2
+kerning first=52 second=111 amount=2
+kerning first=52 second=101 amount=2
+kerning first=52 second=99 amount=2
+kerning first=52 second=115 amount=1
+kerning first=52 second=35 amount=2
+kerning first=52 second=34 amount=-3
+kerning first=52 second=39 amount=-3
+kerning first=52 second=44 amount=-4
+kerning first=52 second=45 amount=3
+kerning first=52 second=46 amount=-4
+kerning first=50 second=106 amount=1
+kerning first=50 second=81 amount=-1
+kerning first=50 second=90 amount=2
+kerning first=50 second=88 amount=2
+kerning first=50 second=74 amount=-3
+kerning first=50 second=108 amount=1
+kerning first=50 second=47 amount=1
+kerning first=50 second=107 amount=1
+kerning first=50 second=41 amount=1
+kerning first=50 second=105 amount=1
+kerning first=50 second=98 amount=1
+kerning first=50 second=119 amount=2
+kerning first=50 second=118 amount=2
+kerning first=50 second=122 amount=1
+kerning first=50 second=110 amount=1
+kerning first=50 second=120 amount=2
+kerning first=50 second=97 amount=2
+kerning first=50 second=115 amount=1
+kerning first=50 second=35 amount=-1
+kerning first=50 second=34 amount=1
+kerning first=50 second=39 amount=2
+kerning first=50 second=45 amount=-4
+kerning first=50 second=46 amount=2
+kerning first=92 second=87 amount=-5
+kerning first=92 second=81 amount=-2
+kerning first=92 second=84 amount=-4
+kerning first=92 second=102 amount=-3
+kerning first=92 second=93 amount=-1
+kerning first=92 second=88 amount=1
+kerning first=92 second=89 amount=-6
+kerning first=92 second=86 amount=-5
+kerning first=92 second=85 amount=-3
+kerning first=92 second=83 amount=-1
+kerning first=92 second=48 amount=-3
+kerning first=92 second=74 amount=-3
+kerning first=92 second=63 amount=-5
+kerning first=92 second=56 amount=-2
+kerning first=92 second=108 amount=1
+kerning first=92 second=52 amount=-4
+kerning first=92 second=92 amount=-9
+kerning first=92 second=71 amount=-2
+kerning first=92 second=51 amount=-2
+kerning first=92 second=49 amount=-7
+kerning first=92 second=64 amount=-1
+kerning first=92 second=79 amount=-3
+kerning first=92 second=54 amount=-4
+kerning first=92 second=57 amount=-3
+kerning first=92 second=116 amount=-3
+kerning first=92 second=121 amount=-4
+kerning first=92 second=59 amount=1
+kerning first=92 second=119 amount=-1
+kerning first=92 second=118 amount=-2
+kerning first=92 second=122 amount=2
+kerning first=92 second=110 amount=1
+kerning first=92 second=120 amount=3
+kerning first=92 second=114 amount=1
+kerning first=92 second=97 amount=2
+kerning first=92 second=115 amount=1
+kerning first=92 second=58 amount=1
+kerning first=92 second=35 amount=-5
+kerning first=92 second=34 amount=-12
+kerning first=92 second=39 amount=-9
+kerning first=92 second=44 amount=2
+kerning first=92 second=45 amount=-4
+kerning first=92 second=46 amount=3
+kerning first=47 second=87 amount=1
+kerning first=47 second=81 amount=-3
+kerning first=47 second=102 amount=-4
+kerning first=47 second=90 amount=-2
+kerning first=47 second=88 amount=1
+kerning first=47 second=65 amount=-8
+kerning first=47 second=75 amount=1
+kerning first=47 second=53 amount=-2
+kerning first=47 second=86 amount=1
+kerning first=47 second=83 amount=-2
+kerning first=47 second=48 amount=-4
+kerning first=47 second=76 amount=1
+kerning first=47 second=74 amount=-9
+kerning first=47 second=63 amount=-2
+kerning first=47 second=56 amount=-4
+kerning first=47 second=52 amount=-9
+kerning first=47 second=50 amount=-6
+kerning first=47 second=47 amount=-12
+kerning first=47 second=71 amount=-2
+kerning first=47 second=55 amount=-1
+kerning first=47 second=51 amount=-5
+kerning first=47 second=66 amount=1
+kerning first=47 second=49 amount=-5
+kerning first=47 second=40 amount=-1
+kerning first=47 second=64 amount=-10
+kerning first=47 second=79 amount=-2
+kerning first=47 second=54 amount=-4
+kerning first=47 second=57 amount=-4
+kerning first=47 second=67 amount=-2
+kerning first=47 second=100 amount=-7
+kerning first=47 second=113 amount=-7
+kerning first=47 second=112 amount=-4
+kerning first=47 second=116 amount=-4
+kerning first=47 second=103 amount=-7
+kerning first=47 second=121 amount=-3
+kerning first=47 second=59 amount=-6
+kerning first=47 second=119 amount=-3
+kerning first=47 second=118 amount=-3
+kerning first=47 second=122 amount=-7
+kerning first=47 second=110 amount=-5
+kerning first=47 second=120 amount=-4
+kerning first=47 second=114 amount=-5
+kerning first=47 second=117 amount=-5
+kerning first=47 second=109 amount=-5
+kerning first=47 second=97 amount=-6
+kerning first=47 second=111 amount=-7
+kerning first=47 second=101 amount=-8
+kerning first=47 second=99 amount=-8
+kerning first=47 second=115 amount=-7
+kerning first=47 second=58 amount=-7
+kerning first=47 second=35 amount=-5
+kerning first=47 second=34 amount=3
+kerning first=47 second=39 amount=3
+kerning first=47 second=44 amount=-8
+kerning first=47 second=45 amount=-9
+kerning first=47 second=46 amount=-10
+kerning first=71 second=106 amount=2
+kerning first=71 second=81 amount=2
+kerning first=71 second=84 amount=-3
+kerning first=71 second=104 amount=2
+kerning first=71 second=102 amount=1
+kerning first=71 second=93 amount=-4
+kerning first=71 second=90 amount=-3
+kerning first=71 second=88 amount=-3
+kerning first=71 second=89 amount=-4
+kerning first=71 second=75 amount=1
+kerning first=71 second=78 amount=1
+kerning first=71 second=53 amount=-2
+kerning first=71 second=86 amount=-1
+kerning first=71 second=85 amount=2
+kerning first=71 second=83 amount=-2
+kerning first=71 second=72 amount=3
+kerning first=71 second=48 amount=1
+kerning first=71 second=68 amount=1
+kerning first=71 second=76 amount=1
+kerning first=71 second=74 amount=1
+kerning first=71 second=63 amount=-1
+kerning first=71 second=56 amount=-2
+kerning first=71 second=69 amount=2
+kerning first=71 second=108 amount=3
+kerning first=71 second=82 amount=1
+kerning first=71 second=52 amount=2
+kerning first=71 second=50 amount=-5
+kerning first=71 second=92 amount=-4
+kerning first=71 second=47 amount=-3
+kerning first=71 second=71 amount=3
+kerning first=71 second=55 amount=-4
+kerning first=71 second=51 amount=-3
+kerning first=71 second=107 amount=3
+kerning first=71 second=66 amount=2
+kerning first=71 second=80 amount=2
+kerning first=71 second=70 amount=1
+kerning first=71 second=49 amount=-6
+kerning first=71 second=40 amount=3
+kerning first=71 second=73 amount=2
+kerning first=71 second=33 amount=3
+kerning first=71 second=64 amount=2
+kerning first=71 second=79 amount=2
+kerning first=71 second=57 amount=-1
+kerning first=71 second=67 amount=3
+kerning first=71 second=105 amount=3
+kerning first=71 second=100 amount=3
+kerning first=71 second=113 amount=3
+kerning first=71 second=112 amount=2
+kerning first=71 second=98 amount=2
+kerning first=71 second=116 amount=3
+kerning first=71 second=103 amount=3
+kerning first=71 second=121 amount=2
+kerning first=71 second=119 amount=3
+kerning first=71 second=118 amount=2
+kerning first=71 second=122 amount=-3
+kerning first=71 second=110 amount=3
+kerning first=71 second=114 amount=2
+kerning first=71 second=117 amount=3
+kerning first=71 second=109 amount=2
+kerning first=71 second=97 amount=2
+kerning first=71 second=111 amount=3
+kerning first=71 second=101 amount=3
+kerning first=71 second=99 amount=3
+kerning first=71 second=115 amount=2
+kerning first=71 second=35 amount=3
+kerning first=71 second=34 amount=-2
+kerning first=71 second=39 amount=-2
+kerning first=71 second=44 amount=-5
+kerning first=71 second=45 amount=3
+kerning first=71 second=46 amount=-4
+kerning first=55 second=106 amount=-2
+kerning first=55 second=81 amount=-4
+kerning first=55 second=77 amount=-2
+kerning first=55 second=104 amount=-1
+kerning first=55 second=102 amount=-5
+kerning first=55 second=90 amount=-4
+kerning first=55 second=89 amount=-1
+kerning first=55 second=65 amount=-9
+kerning first=55 second=78 amount=-1
+kerning first=55 second=83 amount=-3
+kerning first=55 second=72 amount=-2
+kerning first=55 second=68 amount=-1
+kerning first=55 second=74 amount=-7
+kerning first=55 second=63 amount=-3
+kerning first=55 second=69 amount=-1
+kerning first=55 second=47 amount=-11
+kerning first=55 second=71 amount=-3
+kerning first=55 second=70 amount=-2
+kerning first=55 second=40 amount=-2
+kerning first=55 second=64 amount=-10
+kerning first=55 second=79 amount=-3
+kerning first=55 second=67 amount=-3
+kerning first=55 second=105 amount=-1
+kerning first=55 second=100 amount=-8
+kerning first=55 second=113 amount=-8
+kerning first=55 second=112 amount=-6
+kerning first=55 second=116 amount=-5
+kerning first=55 second=103 amount=-8
+kerning first=55 second=121 amount=-4
+kerning first=55 second=59 amount=-7
+kerning first=55 second=119 amount=-4
+kerning first=55 second=118 amount=-4
+kerning first=55 second=122 amount=-8
+kerning first=55 second=110 amount=-6
+kerning first=55 second=120 amount=-5
+kerning first=55 second=114 amount=-6
+kerning first=55 second=117 amount=-6
+kerning first=55 second=109 amount=-6
+kerning first=55 second=97 amount=-7
+kerning first=55 second=111 amount=-8
+kerning first=55 second=101 amount=-9
+kerning first=55 second=99 amount=-8
+kerning first=55 second=115 amount=-8
+kerning first=55 second=58 amount=-8
+kerning first=55 second=35 amount=-5
+kerning first=55 second=39 amount=1
+kerning first=55 second=44 amount=-10
+kerning first=55 second=45 amount=-9
+kerning first=55 second=46 amount=-12
+kerning first=51 second=77 amount=-2
+kerning first=51 second=84 amount=-1
+kerning first=51 second=93 amount=-1
+kerning first=51 second=90 amount=-4
+kerning first=51 second=89 amount=-2
+kerning first=51 second=65 amount=-4
+kerning first=51 second=75 amount=-1
+kerning first=51 second=78 amount=-2
+kerning first=51 second=83 amount=-2
+kerning first=51 second=68 amount=-2
+kerning first=51 second=76 amount=-1
+kerning first=51 second=74 amount=-1
+kerning first=51 second=63 amount=-1
+kerning first=51 second=92 amount=-1
+kerning first=51 second=47 amount=-6
+kerning first=51 second=70 amount=-1
+kerning first=51 second=41 amount=-2
+kerning first=51 second=64 amount=-2
+kerning first=51 second=59 amount=-1
+kerning first=51 second=122 amount=-4
+kerning first=51 second=120 amount=-2
+kerning first=51 second=109 amount=-1
+kerning first=51 second=58 amount=-2
+kerning first=51 second=44 amount=-8
+kerning first=51 second=46 amount=-5
+kerning first=107 second=106 amount=3
+kerning first=107 second=104 amount=2
+kerning first=107 second=102 amount=2
+kerning first=107 second=53 amount=1
+kerning first=107 second=108 amount=3
+kerning first=107 second=52 amount=-3
+kerning first=107 second=50 amount=2
+kerning first=107 second=92 amount=-4
+kerning first=107 second=47 amount=3
+kerning first=107 second=55 amount=2
+kerning first=107 second=107 amount=3
+kerning first=107 second=49 amount=-5
+kerning first=107 second=40 amount=2
+kerning first=107 second=41 amount=3
+kerning first=107 second=33 amount=2
+kerning first=107 second=105 amount=3
+kerning first=107 second=100 amount=2
+kerning first=107 second=113 amount=2
+kerning first=107 second=112 amount=3
+kerning first=107 second=98 amount=3
+kerning first=107 second=116 amount=3
+kerning first=107 second=103 amount=3
+kerning first=107 second=121 amount=4
+kerning first=107 second=59 amount=3
+kerning first=107 second=119 amount=5
+kerning first=107 second=118 amount=5
+kerning first=107 second=122 amount=4
+kerning first=107 second=110 amount=3
+kerning first=107 second=120 amount=5
+kerning first=107 second=114 amount=3
+kerning first=107 second=117 amount=3
+kerning first=107 second=109 amount=2
+kerning first=107 second=97 amount=4
+kerning first=107 second=111 amount=3
+kerning first=107 second=101 amount=2
+kerning first=107 second=99 amount=3
+kerning first=107 second=115 amount=3
+kerning first=107 second=58 amount=3
+kerning first=107 second=35 amount=1
+kerning first=107 second=34 amount=-2
+kerning first=107 second=39 amount=-2
+kerning first=107 second=44 amount=4
+kerning first=107 second=45 amount=-3
+kerning first=107 second=46 amount=4
+kerning first=66 second=90 amount=-3
+kerning first=66 second=89 amount=-2
+kerning first=66 second=65 amount=-2
+kerning first=66 second=53 amount=-2
+kerning first=66 second=72 amount=1
+kerning first=66 second=56 amount=-3
+kerning first=66 second=108 amount=1
+kerning first=66 second=50 amount=-5
+kerning first=66 second=47 amount=-4
+kerning first=66 second=71 amount=2
+kerning first=66 second=55 amount=-2
+kerning first=66 second=51 amount=-4
+kerning first=66 second=107 amount=1
+kerning first=66 second=49 amount=-5
+kerning first=66 second=40 amount=1
+kerning first=66 second=41 amount=-1
+kerning first=66 second=33 amount=1
+kerning first=66 second=57 amount=-2
+kerning first=66 second=67 amount=2
+kerning first=66 second=105 amount=1
+kerning first=66 second=100 amount=1
+kerning first=66 second=113 amount=1
+kerning first=66 second=116 amount=2
+kerning first=66 second=103 amount=2
+kerning first=66 second=119 amount=2
+kerning first=66 second=122 amount=-2
+kerning first=66 second=110 amount=1
+kerning first=66 second=114 amount=1
+kerning first=66 second=117 amount=2
+kerning first=66 second=111 amount=2
+kerning first=66 second=101 amount=1
+kerning first=66 second=99 amount=1
+kerning first=66 second=35 amount=2
+kerning first=66 second=44 amount=-7
+kerning first=66 second=45 amount=2
+kerning first=66 second=46 amount=-4
+kerning first=80 second=106 amount=1
+kerning first=80 second=87 amount=3
+kerning first=80 second=77 amount=1
+kerning first=80 second=84 amount=3
+kerning first=80 second=104 amount=2
+kerning first=80 second=93 amount=2
+kerning first=80 second=88 amount=3
+kerning first=80 second=89 amount=2
+kerning first=80 second=65 amount=-5
+kerning first=80 second=75 amount=3
+kerning first=80 second=78 amount=2
+kerning first=80 second=86 amount=3
+kerning first=80 second=85 amount=3
+kerning first=80 second=72 amount=1
+kerning first=80 second=68 amount=2
+kerning first=80 second=76 amount=2
+kerning first=80 second=74 amount=-5
+kerning first=80 second=63 amount=2
+kerning first=80 second=69 amount=2
+kerning first=80 second=108 amount=3
+kerning first=80 second=82 amount=3
+kerning first=80 second=52 amount=-4
+kerning first=80 second=50 amount=-2
+kerning first=80 second=92 amount=2
+kerning first=80 second=47 amount=-8
+kerning first=80 second=71 amount=1
+kerning first=80 second=107 amount=3
+kerning first=80 second=66 amount=3
+kerning first=80 second=80 amount=2
+kerning first=80 second=70 amount=1
+kerning first=80 second=49 amount=-2
+kerning first=80 second=40 amount=1
+kerning first=80 second=41 amount=2
+kerning first=80 second=73 amount=3
+kerning first=80 second=33 amount=3
+kerning first=80 second=64 amount=-4
+kerning first=80 second=79 amount=1
+kerning first=80 second=54 amount=-1
+kerning first=80 second=67 amount=1
+kerning first=80 second=105 amount=3
+kerning first=80 second=100 amount=-2
+kerning first=80 second=113 amount=-2
+kerning first=80 second=98 amount=3
+kerning first=80 second=116 amount=1
+kerning first=80 second=103 amount=-2
+kerning first=80 second=121 amount=2
+kerning first=80 second=119 amount=3
+kerning first=80 second=118 amount=3
+kerning first=80 second=122 amount=-2
+kerning first=80 second=111 amount=-2
+kerning first=80 second=101 amount=-3
+kerning first=80 second=99 amount=-2
+kerning first=80 second=115 amount=-2
+kerning first=80 second=58 amount=-2
+kerning first=80 second=34 amount=4
+kerning first=80 second=39 amount=4
+kerning first=80 second=44 amount=-9
+kerning first=80 second=45 amount=-3
+kerning first=80 second=46 amount=-9
+kerning first=123 second=32 amount=2
+kerning first=125 second=112 amount=1
+kerning first=125 second=110 amount=1
+kerning first=125 second=109 amount=2
+kerning first=125 second=111 amount=2
+kerning first=70 second=87 amount=2
+kerning first=70 second=93 amount=1
+kerning first=70 second=90 amount=-2
+kerning first=70 second=88 amount=2
+kerning first=70 second=65 amount=-4
+kerning first=70 second=75 amount=2
+kerning first=70 second=53 amount=-2
+kerning first=70 second=86 amount=2
+kerning first=70 second=85 amount=2
+kerning first=70 second=83 amount=-1
+kerning first=70 second=48 amount=-1
+kerning first=70 second=76 amount=2
+kerning first=70 second=74 amount=-5
+kerning first=70 second=63 amount=-1
+kerning first=70 second=56 amount=-3
+kerning first=70 second=108 amount=2
+kerning first=70 second=82 amount=2
+kerning first=70 second=50 amount=-5
+kerning first=70 second=92 amount=1
+kerning first=70 second=47 amount=-6
+kerning first=70 second=51 amount=-5
+kerning first=70 second=107 amount=1
+kerning first=70 second=66 amount=2
+kerning first=70 second=80 amount=1
+kerning first=70 second=49 amount=-4
+kerning first=70 second=41 amount=1
+kerning first=70 second=73 amount=2
+kerning first=70 second=33 amount=2
+kerning first=70 second=64 amount=-1
+kerning first=70 second=54 amount=-2
+kerning first=70 second=57 amount=-3
+kerning first=70 second=105 amount=1
+kerning first=70 second=98 amount=2
+kerning first=70 second=59 amount=-1
+kerning first=70 second=122 amount=-4
+kerning first=70 second=120 amount=-2
+kerning first=70 second=109 amount=-1
+kerning first=70 second=58 amount=-2
+kerning first=70 second=34 amount=2
+kerning first=70 second=39 amount=3
+kerning first=70 second=44 amount=-7
+kerning first=70 second=46 amount=-7
+kerning first=49 second=106 amount=-6
+kerning first=49 second=87 amount=-7
+kerning first=49 second=81 amount=-8
+kerning first=49 second=77 amount=-8
+kerning first=49 second=84 amount=-8
+kerning first=49 second=104 amount=-7
+kerning first=49 second=102 amount=-7
+kerning first=49 second=93 amount=-8
+kerning first=49 second=90 amount=-6
+kerning first=49 second=88 amount=-5
+kerning first=49 second=89 amount=-8
+kerning first=49 second=65 amount=-7
+kerning first=49 second=75 amount=-7
+kerning first=49 second=78 amount=-7
+kerning first=49 second=86 amount=-7
+kerning first=49 second=85 amount=-7
+kerning first=49 second=83 amount=-7
+kerning first=49 second=72 amount=-7
+kerning first=49 second=68 amount=-8
+kerning first=49 second=76 amount=-7
+kerning first=49 second=74 amount=-8
+kerning first=49 second=63 amount=-8
+kerning first=49 second=69 amount=-7
+kerning first=49 second=108 amount=-6
+kerning first=49 second=82 amount=-7
+kerning first=49 second=92 amount=-7
+kerning first=49 second=47 amount=-6
+kerning first=49 second=71 amount=-7
+kerning first=49 second=107 amount=-6
+kerning first=49 second=66 amount=-7
+kerning first=49 second=80 amount=-6
+kerning first=49 second=70 amount=-7
+kerning first=49 second=40 amount=-8
+kerning first=49 second=41 amount=-6
+kerning first=49 second=73 amount=-6
+kerning first=49 second=33 amount=-6
+kerning first=49 second=64 amount=-9
+kerning first=49 second=79 amount=-8
+kerning first=49 second=67 amount=-7
+kerning first=49 second=105 amount=-6
+kerning first=49 second=100 amount=-7
+kerning first=49 second=113 amount=-7
+kerning first=49 second=112 amount=-7
+kerning first=49 second=98 amount=-6
+kerning first=49 second=116 amount=-6
+kerning first=49 second=103 amount=-7
+kerning first=49 second=121 amount=-7
+kerning first=49 second=59 amount=-6
+kerning first=49 second=119 amount=-6
+kerning first=49 second=118 amount=-6
+kerning first=49 second=122 amount=-6
+kerning first=49 second=110 amount=-6
+kerning first=49 second=120 amount=-5
+kerning first=49 second=114 amount=-6
+kerning first=49 second=117 amount=-7
+kerning first=49 second=109 amount=-8
+kerning first=49 second=97 amount=-5
+kerning first=49 second=111 amount=-7
+kerning first=49 second=101 amount=-7
+kerning first=49 second=99 amount=-7
+kerning first=49 second=115 amount=-6
+kerning first=49 second=58 amount=-6
+kerning first=49 second=35 amount=-8
+kerning first=49 second=34 amount=-7
+kerning first=49 second=39 amount=-7
+kerning first=49 second=44 amount=-6
+kerning first=49 second=45 amount=-8
+kerning first=49 second=46 amount=-5
+kerning first=40 second=106 amount=2
+kerning first=40 second=87 amount=2
+kerning first=40 second=81 amount=-2
+kerning first=40 second=104 amount=1
+kerning first=40 second=93 amount=2
+kerning first=40 second=90 amount=2
+kerning first=40 second=88 amount=2
+kerning first=40 second=89 amount=1
+kerning first=40 second=65 amount=1
+kerning first=40 second=75 amount=2
+kerning first=40 second=78 amount=1
+kerning first=40 second=86 amount=3
+kerning first=40 second=85 amount=2
+kerning first=40 second=48 amount=-2
+kerning first=40 second=68 amount=1
+kerning first=40 second=76 amount=2
+kerning first=40 second=74 amount=-1
+kerning first=40 second=56 amount=-2
+kerning first=40 second=69 amount=1
+kerning first=40 second=108 amount=2
+kerning first=40 second=82 amount=2
+kerning first=40 second=52 amount=-2
+kerning first=40 second=92 amount=2
+kerning first=40 second=47 amount=2
+kerning first=40 second=51 amount=-2
+kerning first=40 second=107 amount=2
+kerning first=40 second=66 amount=2
+kerning first=40 second=80 amount=2
+kerning first=40 second=49 amount=-4
+kerning first=40 second=41 amount=2
+kerning first=40 second=73 amount=2
+kerning first=40 second=33 amount=2
+kerning first=40 second=64 amount=-2
+kerning first=40 second=54 amount=-3
+kerning first=40 second=57 amount=-2
+kerning first=40 second=105 amount=1
+kerning first=40 second=112 amount=1
+kerning first=40 second=98 amount=2
+kerning first=40 second=59 amount=2
+kerning first=40 second=122 amount=2
+kerning first=40 second=110 amount=2
+kerning first=40 second=120 amount=3
+kerning first=40 second=114 amount=2
+kerning first=40 second=97 amount=2
+kerning first=40 second=58 amount=1
+kerning first=40 second=35 amount=-2
+kerning first=40 second=34 amount=3
+kerning first=40 second=39 amount=3
+kerning first=40 second=44 amount=2
+kerning first=40 second=45 amount=-2
+kerning first=40 second=46 amount=2
+kerning first=41 second=106 amount=2
+kerning first=41 second=81 amount=2
+kerning first=41 second=104 amount=1
+kerning first=41 second=102 amount=2
+kerning first=41 second=85 amount=1
+kerning first=41 second=83 amount=1
+kerning first=41 second=72 amount=2
+kerning first=41 second=74 amount=1
+kerning first=41 second=63 amount=2
+kerning first=41 second=56 amount=-1
+kerning first=41 second=69 amount=1
+kerning first=41 second=108 amount=2
+kerning first=41 second=52 amount=1
+kerning first=41 second=50 amount=-1
+kerning first=41 second=71 amount=2
+kerning first=41 second=55 amount=-1
+kerning first=41 second=107 amount=2
+kerning first=41 second=66 amount=1
+kerning first=41 second=80 amount=1
+kerning first=41 second=49 amount=-4
+kerning first=41 second=40 amount=2
+kerning first=41 second=73 amount=1
+kerning first=41 second=33 amount=2
+kerning first=41 second=79 amount=2
+kerning first=41 second=67 amount=2
+kerning first=41 second=105 amount=2
+kerning first=41 second=100 amount=2
+kerning first=41 second=113 amount=2
+kerning first=41 second=112 amount=2
+kerning first=41 second=98 amount=1
+kerning first=41 second=116 amount=4
+kerning first=41 second=103 amount=2
+kerning first=41 second=121 amount=3
+kerning first=41 second=59 amount=2
+kerning first=41 second=119 amount=4
+kerning first=41 second=118 amount=4
+kerning first=41 second=110 amount=2
+kerning first=41 second=120 amount=2
+kerning first=41 second=114 amount=2
+kerning first=41 second=117 amount=2
+kerning first=41 second=109 amount=1
+kerning first=41 second=97 amount=2
+kerning first=41 second=111 amount=2
+kerning first=41 second=101 amount=2
+kerning first=41 second=99 amount=2
+kerning first=41 second=115 amount=1
+kerning first=41 second=35 amount=2
+kerning first=41 second=34 amount=2
+kerning first=41 second=39 amount=2
+kerning first=41 second=44 amount=-1
+kerning first=41 second=45 amount=2
+kerning first=73 second=106 amount=2
+kerning first=73 second=87 amount=2
+kerning first=73 second=104 amount=1
+kerning first=73 second=102 amount=1
+kerning first=73 second=93 amount=1
+kerning first=73 second=90 amount=2
+kerning first=73 second=88 amount=2
+kerning first=73 second=65 amount=1
+kerning first=73 second=75 amount=2
+kerning first=73 second=86 amount=2
+kerning first=73 second=85 amount=2
+kerning first=73 second=83 amount=1
+kerning first=73 second=72 amount=1
+kerning first=73 second=76 amount=2
+kerning first=73 second=63 amount=1
+kerning first=73 second=56 amount=-1
+kerning first=73 second=108 amount=2
+kerning first=73 second=82 amount=2
+kerning first=73 second=92 amount=1
+kerning first=73 second=47 amount=2
+kerning first=73 second=71 amount=1
+kerning first=73 second=107 amount=2
+kerning first=73 second=66 amount=2
+kerning first=73 second=80 amount=2
+kerning first=73 second=49 amount=-4
+kerning first=73 second=41 amount=2
+kerning first=73 second=73 amount=2
+kerning first=73 second=33 amount=2
+kerning first=73 second=54 amount=-1
+kerning first=73 second=67 amount=1
+kerning first=73 second=105 amount=2
+kerning first=73 second=113 amount=1
+kerning first=73 second=112 amount=1
+kerning first=73 second=98 amount=2
+kerning first=73 second=116 amount=3
+kerning first=73 second=103 amount=1
+kerning first=73 second=121 amount=2
+kerning first=73 second=59 amount=3
+kerning first=73 second=119 amount=3
+kerning first=73 second=118 amount=3
+kerning first=73 second=122 amount=2
+kerning first=73 second=110 amount=2
+kerning first=73 second=120 amount=3
+kerning first=73 second=114 amount=2
+kerning first=73 second=117 amount=1
+kerning first=73 second=97 amount=2
+kerning first=73 second=111 amount=2
+kerning first=73 second=99 amount=1
+kerning first=73 second=115 amount=2
+kerning first=73 second=58 amount=2
+kerning first=73 second=34 amount=2
+kerning first=73 second=39 amount=2
+kerning first=73 second=44 amount=2
+kerning first=73 second=46 amount=2
+kerning first=33 second=106 amount=2
+kerning first=33 second=87 amount=2
+kerning first=33 second=81 amount=1
+kerning first=33 second=84 amount=1
+kerning first=33 second=104 amount=1
+kerning first=33 second=102 amount=2
+kerning first=33 second=93 amount=3
+kerning first=33 second=90 amount=2
+kerning first=33 second=88 amount=2
+kerning first=33 second=89 amount=1
+kerning first=33 second=65 amount=1
+kerning first=33 second=75 amount=2
+kerning first=33 second=78 amount=1
+kerning first=33 second=53 amount=4
+kerning first=33 second=86 amount=3
+kerning first=33 second=85 amount=2
+kerning first=33 second=83 amount=3
+kerning first=33 second=72 amount=1
+kerning first=33 second=68 amount=1
+kerning first=33 second=76 amount=2
+kerning first=33 second=74 amount=2
+kerning first=33 second=63 amount=2
+kerning first=33 second=69 amount=1
+kerning first=33 second=108 amount=2
+kerning first=33 second=82 amount=2
+kerning first=33 second=52 amount=2
+kerning first=33 second=92 amount=2
+kerning first=33 second=47 amount=2
+kerning first=33 second=71 amount=2
+kerning first=33 second=107 amount=2
+kerning first=33 second=66 amount=2
+kerning first=33 second=80 amount=2
+kerning first=33 second=49 amount=-4
+kerning first=33 second=40 amount=2
+kerning first=33 second=41 amount=2
+kerning first=33 second=73 amount=4
+kerning first=33 second=33 amount=2
+kerning first=33 second=79 amount=1
+kerning first=33 second=67 amount=2
+kerning first=33 second=105 amount=2
+kerning first=33 second=100 amount=2
+kerning first=33 second=113 amount=2
+kerning first=33 second=112 amount=1
+kerning first=33 second=98 amount=2
+kerning first=33 second=116 amount=3
+kerning first=33 second=103 amount=2
+kerning first=33 second=121 amount=3
+kerning first=33 second=59 amount=3
+kerning first=33 second=119 amount=4
+kerning first=33 second=118 amount=3
+kerning first=33 second=122 amount=2
+kerning first=33 second=110 amount=2
+kerning first=33 second=120 amount=3
+kerning first=33 second=114 amount=2
+kerning first=33 second=117 amount=2
+kerning first=33 second=97 amount=3
+kerning first=33 second=111 amount=2
+kerning first=33 second=101 amount=2
+kerning first=33 second=99 amount=2
+kerning first=33 second=115 amount=3
+kerning first=33 second=58 amount=2
+kerning first=33 second=35 amount=1
+kerning first=33 second=43 amount=2
+kerning first=33 second=34 amount=2
+kerning first=33 second=39 amount=3
+kerning first=33 second=44 amount=3
+kerning first=33 second=45 amount=2
+kerning first=33 second=46 amount=2
+kerning first=64 second=106 amount=1
+kerning first=64 second=87 amount=-2
+kerning first=64 second=81 amount=1
+kerning first=64 second=84 amount=-4
+kerning first=64 second=102 amount=2
+kerning first=64 second=93 amount=-7
+kerning first=64 second=90 amount=-3
+kerning first=64 second=88 amount=-3
+kerning first=64 second=89 amount=-5
+kerning first=64 second=65 amount=-2
+kerning first=64 second=86 amount=-2
+kerning first=64 second=72 amount=2
+kerning first=64 second=74 amount=1
+kerning first=64 second=63 amount=-3
+kerning first=64 second=56 amount=-2
+kerning first=64 second=108 amount=1
+kerning first=64 second=52 amount=1
+kerning first=64 second=50 amount=-6
+kerning first=64 second=92 amount=-7
+kerning first=64 second=47 amount=-3
+kerning first=64 second=71 amount=2
+kerning first=64 second=55 amount=-4
+kerning first=64 second=51 amount=-3
+kerning first=64 second=107 amount=1
+kerning first=64 second=49 amount=-8
+kerning first=64 second=40 amount=2
+kerning first=64 second=41 amount=-2
+kerning first=64 second=33 amount=1
+kerning first=64 second=79 amount=1
+kerning first=64 second=57 amount=-2
+kerning first=64 second=67 amount=2
+kerning first=64 second=105 amount=1
+kerning first=64 second=100 amount=2
+kerning first=64 second=113 amount=2
+kerning first=64 second=116 amount=3
+kerning first=64 second=103 amount=2
+kerning first=64 second=121 amount=1
+kerning first=64 second=119 amount=3
+kerning first=64 second=118 amount=2
+kerning first=64 second=122 amount=-1
+kerning first=64 second=110 amount=1
+kerning first=64 second=114 amount=1
+kerning first=64 second=117 amount=2
+kerning first=64 second=97 amount=1
+kerning first=64 second=111 amount=2
+kerning first=64 second=101 amount=1
+kerning first=64 second=99 amount=2
+kerning first=64 second=35 amount=2
+kerning first=64 second=34 amount=-5
+kerning first=64 second=39 amount=-5
+kerning first=64 second=44 amount=-7
+kerning first=64 second=45 amount=2
+kerning first=64 second=46 amount=-4
+kerning first=79 second=106 amount=1
+kerning first=79 second=81 amount=1
+kerning first=79 second=102 amount=2
+kerning first=79 second=93 amount=-1
+kerning first=79 second=88 amount=-1
+kerning first=79 second=89 amount=-3
+kerning first=79 second=65 amount=-2
+kerning first=79 second=72 amount=2
+kerning first=79 second=56 amount=-2
+kerning first=79 second=108 amount=1
+kerning first=79 second=50 amount=-3
+kerning first=79 second=92 amount=-2
+kerning first=79 second=47 amount=-2
+kerning first=79 second=71 amount=2
+kerning first=79 second=55 amount=-2
+kerning first=79 second=51 amount=-2
+kerning first=79 second=107 amount=1
+kerning first=79 second=49 amount=-5
+kerning first=79 second=40 amount=1
+kerning first=79 second=41 amount=-1
+kerning first=79 second=33 amount=2
+kerning first=79 second=79 amount=1
+kerning first=79 second=57 amount=-1
+kerning first=79 second=67 amount=2
+kerning first=79 second=105 amount=1
+kerning first=79 second=100 amount=1
+kerning first=79 second=113 amount=2
+kerning first=79 second=112 amount=1
+kerning first=79 second=98 amount=1
+kerning first=79 second=116 amount=3
+kerning first=79 second=103 amount=2
+kerning first=79 second=121 amount=3
+kerning first=79 second=59 amount=1
+kerning first=79 second=119 amount=4
+kerning first=79 second=118 amount=3
+kerning first=79 second=110 amount=2
+kerning first=79 second=120 amount=2
+kerning first=79 second=114 amount=2
+kerning first=79 second=117 amount=2
+kerning first=79 second=97 amount=2
+kerning first=79 second=111 amount=2
+kerning first=79 second=101 amount=1
+kerning first=79 second=99 amount=2
+kerning first=79 second=35 amount=2
+kerning first=79 second=44 amount=-3
+kerning first=79 second=45 amount=2
+kerning first=54 second=106 amount=-2
+kerning first=54 second=87 amount=-2
+kerning first=54 second=81 amount=-2
+kerning first=54 second=77 amount=-3
+kerning first=54 second=104 amount=-1
+kerning first=54 second=102 amount=-2
+kerning first=54 second=93 amount=-3
+kerning first=54 second=90 amount=-2
+kerning first=54 second=88 amount=-3
+kerning first=54 second=89 amount=-3
+kerning first=54 second=65 amount=-4
+kerning first=54 second=75 amount=-1
+kerning first=54 second=78 amount=-2
+kerning first=54 second=86 amount=-2
+kerning first=54 second=83 amount=-1
+kerning first=54 second=72 amount=-2
+kerning first=54 second=68 amount=-2
+kerning first=54 second=76 amount=-1
+kerning first=54 second=74 amount=-1
+kerning first=54 second=69 amount=-1
+kerning first=54 second=82 amount=-1
+kerning first=54 second=92 amount=-3
+kerning first=54 second=47 amount=-3
+kerning first=54 second=66 amount=-1
+kerning first=54 second=80 amount=-1
+kerning first=54 second=70 amount=-2
+kerning first=54 second=40 amount=-1
+kerning first=54 second=41 amount=-3
+kerning first=54 second=73 amount=-1
+kerning first=54 second=64 amount=-2
+kerning first=54 second=79 amount=-2
+kerning first=54 second=100 amount=-1
+kerning first=54 second=113 amount=-1
+kerning first=54 second=112 amount=-2
+kerning first=54 second=98 amount=-1
+kerning first=54 second=121 amount=-1
+kerning first=54 second=59 amount=-3
+kerning first=54 second=118 amount=-2
+kerning first=54 second=122 amount=-3
+kerning first=54 second=110 amount=-1
+kerning first=54 second=120 amount=-2
+kerning first=54 second=114 amount=-2
+kerning first=54 second=109 amount=-2
+kerning first=54 second=97 amount=-1
+kerning first=54 second=101 amount=-1
+kerning first=54 second=115 amount=-2
+kerning first=54 second=58 amount=-3
+kerning first=54 second=35 amount=-1
+kerning first=54 second=44 amount=-5
+kerning first=54 second=45 amount=-1
+kerning first=54 second=46 amount=-3
+kerning first=57 second=87 amount=-3
+kerning first=57 second=81 amount=-1
+kerning first=57 second=77 amount=-3
+kerning first=57 second=84 amount=-2
+kerning first=57 second=104 amount=-1
+kerning first=57 second=93 amount=-4
+kerning first=57 second=90 amount=-3
+kerning first=57 second=88 amount=-4
+kerning first=57 second=89 amount=-5
+kerning first=57 second=65 amount=-4
+kerning first=57 second=75 amount=-2
+kerning first=57 second=78 amount=-2
+kerning first=57 second=86 amount=-3
+kerning first=57 second=85 amount=-1
+kerning first=57 second=83 amount=-2
+kerning first=57 second=68 amount=-2
+kerning first=57 second=76 amount=-2
+kerning first=57 second=74 amount=-2
+kerning first=57 second=63 amount=-1
+kerning first=57 second=69 amount=-2
+kerning first=57 second=82 amount=-2
+kerning first=57 second=92 amount=-4
+kerning first=57 second=47 amount=-4
+kerning first=57 second=66 amount=-2
+kerning first=57 second=80 amount=-2
+kerning first=57 second=70 amount=-2
+kerning first=57 second=41 amount=-4
+kerning first=57 second=73 amount=-2
+kerning first=57 second=64 amount=-2
+kerning first=57 second=79 amount=-1
+kerning first=57 second=100 amount=-1
+kerning first=57 second=98 amount=-1
+kerning first=57 second=116 amount=1
+kerning first=57 second=59 amount=-1
+kerning first=57 second=119 amount=1
+kerning first=57 second=118 amount=1
+kerning first=57 second=122 amount=-2
+kerning first=57 second=109 amount=-1
+kerning first=57 second=101 amount=-1
+kerning first=57 second=115 amount=-1
+kerning first=57 second=58 amount=-2
+kerning first=57 second=34 amount=-1
+kerning first=57 second=44 amount=-5
+kerning first=57 second=46 amount=-3
+kerning first=67 second=106 amount=2
+kerning first=67 second=81 amount=2
+kerning first=67 second=104 amount=2
+kerning first=67 second=102 amount=2
+kerning first=67 second=93 amount=-1
+kerning first=67 second=88 amount=-1
+kerning first=67 second=89 amount=-2
+kerning first=67 second=85 amount=1
+kerning first=67 second=83 amount=2
+kerning first=67 second=74 amount=2
+kerning first=67 second=56 amount=-1
+kerning first=67 second=69 amount=1
+kerning first=67 second=108 amount=2
+kerning first=67 second=52 amount=2
+kerning first=67 second=50 amount=-3
+kerning first=67 second=92 amount=-1
+kerning first=67 second=47 amount=-1
+kerning first=67 second=71 amount=2
+kerning first=67 second=55 amount=-2
+kerning first=67 second=51 amount=-2
+kerning first=67 second=107 amount=2
+kerning first=67 second=66 amount=1
+kerning first=67 second=80 amount=1
+kerning first=67 second=49 amount=-5
+kerning first=67 second=40 amount=2
+kerning first=67 second=73 amount=1
+kerning first=67 second=33 amount=2
+kerning first=67 second=64 amount=1
+kerning first=67 second=79 amount=1
+kerning first=67 second=67 amount=3
+kerning first=67 second=105 amount=2
+kerning first=67 second=100 amount=2
+kerning first=67 second=113 amount=2
+kerning first=67 second=112 amount=2
+kerning first=67 second=98 amount=2
+kerning first=67 second=116 amount=3
+kerning first=67 second=103 amount=3
+kerning first=67 second=121 amount=3
+kerning first=67 second=119 amount=4
+kerning first=67 second=118 amount=4
+kerning first=67 second=110 amount=2
+kerning first=67 second=120 amount=2
+kerning first=67 second=114 amount=2
+kerning first=67 second=117 amount=3
+kerning first=67 second=109 amount=1
+kerning first=67 second=97 amount=2
+kerning first=67 second=111 amount=3
+kerning first=67 second=101 amount=2
+kerning first=67 second=99 amount=2
+kerning first=67 second=35 amount=1
+kerning first=67 second=34 amount=1
+kerning first=67 second=39 amount=1
+kerning first=67 second=44 amount=-2
+kerning first=105 second=106 amount=2
+kerning first=105 second=104 amount=2
+kerning first=105 second=102 amount=2
+kerning first=105 second=93 amount=2
+kerning first=105 second=63 amount=2
+kerning first=105 second=108 amount=2
+kerning first=105 second=50 amount=1
+kerning first=105 second=92 amount=2
+kerning first=105 second=47 amount=2
+kerning first=105 second=107 amount=2
+kerning first=105 second=49 amount=-4
+kerning first=105 second=40 amount=2
+kerning first=105 second=41 amount=2
+kerning first=105 second=33 amount=3
+kerning first=105 second=105 amount=2
+kerning first=105 second=100 amount=1
+kerning first=105 second=113 amount=1
+kerning first=105 second=112 amount=2
+kerning first=105 second=98 amount=2
+kerning first=105 second=116 amount=3
+kerning first=105 second=103 amount=1
+kerning first=105 second=121 amount=4
+kerning first=105 second=59 amount=3
+kerning first=105 second=119 amount=5
+kerning first=105 second=118 amount=4
+kerning first=105 second=122 amount=2
+kerning first=105 second=110 amount=2
+kerning first=105 second=120 amount=3
+kerning first=105 second=114 amount=3
+kerning first=105 second=117 amount=2
+kerning first=105 second=109 amount=2
+kerning first=105 second=97 amount=2
+kerning first=105 second=111 amount=2
+kerning first=105 second=101 amount=1
+kerning first=105 second=99 amount=1
+kerning first=105 second=115 amount=2
+kerning first=105 second=58 amount=2
+kerning first=105 second=35 amount=2
+kerning first=105 second=34 amount=2
+kerning first=105 second=39 amount=2
+kerning first=105 second=44 amount=3
+kerning first=105 second=46 amount=3
+kerning first=100 second=106 amount=1
+kerning first=100 second=102 amount=2
+kerning first=100 second=93 amount=1
+kerning first=100 second=63 amount=1
+kerning first=100 second=56 amount=-1
+kerning first=100 second=108 amount=2
+kerning first=100 second=92 amount=1
+kerning first=100 second=47 amount=2
+kerning first=100 second=107 amount=2
+kerning first=100 second=49 amount=-4
+kerning first=100 second=41 amount=1
+kerning first=100 second=33 amount=2
+kerning first=100 second=105 amount=1
+kerning first=100 second=113 amount=1
+kerning first=100 second=112 amount=1
+kerning first=100 second=98 amount=2
+kerning first=100 second=116 amount=3
+kerning first=100 second=103 amount=1
+kerning first=100 second=121 amount=2
+kerning first=100 second=59 amount=2
+kerning first=100 second=119 amount=3
+kerning first=100 second=118 amount=3
+kerning first=100 second=122 amount=2
+kerning first=100 second=110 amount=1
+kerning first=100 second=120 amount=3
+kerning first=100 second=114 amount=1
+kerning first=100 second=117 amount=1
+kerning first=100 second=97 amount=2
+kerning first=100 second=111 amount=1
+kerning first=100 second=99 amount=1
+kerning first=100 second=115 amount=2
+kerning first=100 second=58 amount=1
+kerning first=100 second=34 amount=2
+kerning first=100 second=39 amount=2
+kerning first=100 second=44 amount=2
+kerning first=100 second=46 amount=2
+kerning first=113 second=106 amount=6
+kerning first=113 second=104 amount=1
+kerning first=113 second=102 amount=2
+kerning first=113 second=108 amount=2
+kerning first=113 second=52 amount=1
+kerning first=113 second=92 amount=-4
+kerning first=113 second=47 amount=2
+kerning first=113 second=107 amount=2
+kerning first=113 second=49 amount=-7
+kerning first=113 second=40 amount=2
+kerning first=113 second=41 amount=1
+kerning first=113 second=33 amount=2
+kerning first=113 second=105 amount=2
+kerning first=113 second=100 amount=2
+kerning first=113 second=112 amount=2
+kerning first=113 second=98 amount=1
+kerning first=113 second=116 amount=3
+kerning first=113 second=103 amount=1
+kerning first=113 second=121 amount=3
+kerning first=113 second=59 amount=4
+kerning first=113 second=119 amount=4
+kerning first=113 second=118 amount=4
+kerning first=113 second=122 amount=2
+kerning first=113 second=110 amount=2
+kerning first=113 second=120 amount=2
+kerning first=113 second=114 amount=2
+kerning first=113 second=117 amount=2
+kerning first=113 second=109 amount=1
+kerning first=113 second=97 amount=2
+kerning first=113 second=111 amount=2
+kerning first=113 second=101 amount=1
+kerning first=113 second=99 amount=2
+kerning first=113 second=115 amount=2
+kerning first=113 second=58 amount=1
+kerning first=113 second=35 amount=1
+kerning first=113 second=44 amount=4
+kerning first=113 second=45 amount=1
+kerning first=113 second=46 amount=2
+kerning first=112 second=106 amount=1
+kerning first=112 second=104 amount=1
+kerning first=112 second=102 amount=2
+kerning first=112 second=93 amount=-2
+kerning first=112 second=63 amount=-2
+kerning first=112 second=108 amount=2
+kerning first=112 second=52 amount=2
+kerning first=112 second=50 amount=-1
+kerning first=112 second=92 amount=-6
+kerning first=112 second=107 amount=2
+kerning first=112 second=49 amount=-7
+kerning first=112 second=40 amount=2
+kerning first=112 second=33 amount=2
+kerning first=112 second=64 amount=1
+kerning first=112 second=105 amount=2
+kerning first=112 second=100 amount=2
+kerning first=112 second=113 amount=1
+kerning first=112 second=98 amount=1
+kerning first=112 second=116 amount=3
+kerning first=112 second=103 amount=2
+kerning first=112 second=59 amount=1
+kerning first=112 second=119 amount=3
+kerning first=112 second=118 amount=2
+kerning first=112 second=110 amount=2
+kerning first=112 second=120 amount=1
+kerning first=112 second=114 amount=2
+kerning first=112 second=117 amount=2
+kerning first=112 second=97 amount=2
+kerning first=112 second=111 amount=2
+kerning first=112 second=101 amount=2
+kerning first=112 second=99 amount=2
+kerning first=112 second=115 amount=2
+kerning first=112 second=35 amount=2
+kerning first=112 second=34 amount=-5
+kerning first=112 second=39 amount=-5
+kerning first=112 second=44 amount=-2
+kerning first=112 second=45 amount=2
+kerning first=98 second=102 amount=1
+kerning first=98 second=93 amount=-2
+kerning first=98 second=63 amount=-2
+kerning first=98 second=56 amount=-1
+kerning first=98 second=108 amount=1
+kerning first=98 second=52 amount=1
+kerning first=98 second=92 amount=-7
+kerning first=98 second=107 amount=1
+kerning first=98 second=49 amount=-7
+kerning first=98 second=40 amount=1
+kerning first=98 second=33 amount=1
+kerning first=98 second=105 amount=1
+kerning first=98 second=100 amount=1
+kerning first=98 second=113 amount=2
+kerning first=98 second=112 amount=1
+kerning first=98 second=116 amount=2
+kerning first=98 second=103 amount=2
+kerning first=98 second=119 amount=2
+kerning first=98 second=118 amount=2
+kerning first=98 second=110 amount=2
+kerning first=98 second=120 amount=2
+kerning first=98 second=114 amount=2
+kerning first=98 second=117 amount=2
+kerning first=98 second=97 amount=3
+kerning first=98 second=111 amount=2
+kerning first=98 second=101 amount=2
+kerning first=98 second=99 amount=2
+kerning first=98 second=115 amount=2
+kerning first=98 second=35 amount=1
+kerning first=98 second=34 amount=-6
+kerning first=98 second=39 amount=-6
+kerning first=98 second=45 amount=2
+kerning first=98 second=46 amount=1
+kerning first=116 second=106 amount=3
+kerning first=116 second=104 amount=3
+kerning first=116 second=102 amount=4
+kerning first=116 second=93 amount=-3
+kerning first=116 second=48 amount=2
+kerning first=116 second=63 amount=2
+kerning first=116 second=108 amount=3
+kerning first=116 second=52 amount=-1
+kerning first=116 second=50 amount=-1
+kerning first=116 second=92 amount=-2
+kerning first=116 second=55 amount=-2
+kerning first=116 second=107 amount=3
+kerning first=116 second=49 amount=-5
+kerning first=116 second=40 amount=3
+kerning first=116 second=33 amount=4
+kerning first=116 second=54 amount=1
+kerning first=116 second=57 amount=1
+kerning first=116 second=105 amount=3
+kerning first=116 second=100 amount=1
+kerning first=116 second=113 amount=2
+kerning first=116 second=112 amount=3
+kerning first=116 second=98 amount=3
+kerning first=116 second=116 amount=4
+kerning first=116 second=103 amount=2
+kerning first=116 second=121 amount=5
+kerning first=116 second=59 amount=2
+kerning first=116 second=119 amount=6
+kerning first=116 second=118 amount=5
+kerning first=116 second=122 amount=2
+kerning first=116 second=110 amount=3
+kerning first=116 second=120 amount=4
+kerning first=116 second=114 amount=4
+kerning first=116 second=117 amount=3
+kerning first=116 second=109 amount=3
+kerning first=116 second=97 amount=3
+kerning first=116 second=111 amount=2
+kerning first=116 second=101 amount=1
+kerning first=116 second=99 amount=1
+kerning first=116 second=115 amount=2
+kerning first=116 second=58 amount=1
+kerning first=116 second=35 amount=3
+kerning first=116 second=34 amount=2
+kerning first=116 second=39 amount=2
+kerning first=116 second=45 amount=-3
+kerning first=116 second=32 amount=2
+kerning first=103 second=106 amount=5
+kerning first=103 second=104 amount=1
+kerning first=103 second=102 amount=2
+kerning first=103 second=53 amount=1
+kerning first=103 second=108 amount=2
+kerning first=103 second=52 amount=1
+kerning first=103 second=92 amount=-4
+kerning first=103 second=47 amount=2
+kerning first=103 second=107 amount=2
+kerning first=103 second=49 amount=-6
+kerning first=103 second=40 amount=1
+kerning first=103 second=41 amount=2
+kerning first=103 second=33 amount=1
+kerning first=103 second=105 amount=2
+kerning first=103 second=100 amount=2
+kerning first=103 second=113 amount=1
+kerning first=103 second=112 amount=1
+kerning first=103 second=98 amount=2
+kerning first=103 second=116 amount=3
+kerning first=103 second=103 amount=2
+kerning first=103 second=121 amount=2
+kerning first=103 second=59 amount=5
+kerning first=103 second=119 amount=3
+kerning first=103 second=118 amount=3
+kerning first=103 second=122 amount=2
+kerning first=103 second=110 amount=2
+kerning first=103 second=120 amount=3
+kerning first=103 second=114 amount=2
+kerning first=103 second=117 amount=2
+kerning first=103 second=97 amount=3
+kerning first=103 second=111 amount=2
+kerning first=103 second=101 amount=2
+kerning first=103 second=99 amount=2
+kerning first=103 second=115 amount=2
+kerning first=103 second=58 amount=2
+kerning first=103 second=35 amount=1
+kerning first=103 second=34 amount=-1
+kerning first=103 second=44 amount=4
+kerning first=103 second=45 amount=1
+kerning first=103 second=46 amount=2
+kerning first=121 second=106 amount=2
+kerning first=121 second=104 amount=2
+kerning first=121 second=102 amount=3
+kerning first=121 second=93 amount=-6
+kerning first=121 second=108 amount=2
+kerning first=121 second=50 amount=-3
+kerning first=121 second=92 amount=-4
+kerning first=121 second=47 amount=-4
+kerning first=121 second=55 amount=-5
+kerning first=121 second=51 amount=-2
+kerning first=121 second=107 amount=2
+kerning first=121 second=49 amount=-7
+kerning first=121 second=40 amount=2
+kerning first=121 second=41 amount=-1
+kerning first=121 second=33 amount=2
+kerning first=121 second=64 amount=-1
+kerning first=121 second=105 amount=2
+kerning first=121 second=112 amount=2
+kerning first=121 second=98 amount=2
+kerning first=121 second=116 amount=4
+kerning first=121 second=121 amount=3
+kerning first=121 second=59 amount=1
+kerning first=121 second=119 amount=4
+kerning first=121 second=118 amount=4
+kerning first=121 second=110 amount=2
+kerning first=121 second=120 amount=3
+kerning first=121 second=114 amount=3
+kerning first=121 second=117 amount=2
+kerning first=121 second=109 amount=2
+kerning first=121 second=97 amount=2
+kerning first=121 second=111 amount=1
+kerning first=121 second=35 amount=2
+kerning first=121 second=44 amount=-4
+kerning first=121 second=46 amount=-4
+kerning first=121 second=32 amount=3
+kerning first=59 second=106 amount=1
+kerning first=59 second=87 amount=-1
+kerning first=59 second=84 amount=-4
+kerning first=59 second=102 amount=1
+kerning first=59 second=93 amount=-2
+kerning first=59 second=89 amount=-4
+kerning first=59 second=53 amount=-1
+kerning first=59 second=86 amount=-2
+kerning first=59 second=74 amount=-5
+kerning first=59 second=63 amount=-2
+kerning first=59 second=56 amount=-2
+kerning first=59 second=52 amount=-2
+kerning first=59 second=92 amount=-5
+kerning first=59 second=71 amount=1
+kerning first=59 second=51 amount=-3
+kerning first=59 second=49 amount=-8
+kerning first=59 second=33 amount=1
+kerning first=59 second=64 amount=-2
+kerning first=59 second=54 amount=-1
+kerning first=59 second=57 amount=-1
+kerning first=59 second=67 amount=1
+kerning first=59 second=105 amount=1
+kerning first=59 second=112 amount=1
+kerning first=59 second=116 amount=2
+kerning first=59 second=121 amount=2
+kerning first=59 second=59 amount=1
+kerning first=59 second=119 amount=3
+kerning first=59 second=118 amount=3
+kerning first=59 second=110 amount=1
+kerning first=59 second=120 amount=1
+kerning first=59 second=114 amount=2
+kerning first=59 second=117 amount=1
+kerning first=59 second=34 amount=-2
+kerning first=59 second=39 amount=-1
+kerning first=59 second=44 amount=2
+kerning first=59 second=45 amount=-3
+kerning first=119 second=106 amount=3
+kerning first=119 second=104 amount=2
+kerning first=119 second=102 amount=2
+kerning first=119 second=93 amount=-6
+kerning first=119 second=63 amount=2
+kerning first=119 second=108 amount=3
+kerning first=119 second=50 amount=-2
+kerning first=119 second=92 amount=-3
+kerning first=119 second=47 amount=-3
+kerning first=119 second=55 amount=-5
+kerning first=119 second=107 amount=3
+kerning first=119 second=49 amount=-6
+kerning first=119 second=40 amount=2
+kerning first=119 second=33 amount=3
+kerning first=119 second=64 amount=-2
+kerning first=119 second=105 amount=3
+kerning first=119 second=112 amount=3
+kerning first=119 second=98 amount=2
+kerning first=119 second=116 amount=3
+kerning first=119 second=121 amount=4
+kerning first=119 second=59 amount=2
+kerning first=119 second=119 amount=5
+kerning first=119 second=118 amount=5
+kerning first=119 second=110 amount=3
+kerning first=119 second=120 amount=3
+kerning first=119 second=114 amount=3
+kerning first=119 second=117 amount=3
+kerning first=119 second=109 amount=2
+kerning first=119 second=35 amount=2
+kerning first=119 second=34 amount=2
+kerning first=119 second=39 amount=2
+kerning first=119 second=44 amount=-4
+kerning first=119 second=46 amount=-4
+kerning first=118 second=106 amount=4
+kerning first=118 second=104 amount=3
+kerning first=118 second=102 amount=4
+kerning first=118 second=93 amount=-5
+kerning first=118 second=48 amount=2
+kerning first=118 second=63 amount=2
+kerning first=118 second=108 amount=3
+kerning first=118 second=50 amount=-1
+kerning first=118 second=92 amount=-2
+kerning first=118 second=47 amount=-2
+kerning first=118 second=55 amount=-4
+kerning first=118 second=107 amount=3
+kerning first=118 second=49 amount=-5
+kerning first=118 second=40 amount=3
+kerning first=118 second=33 amount=4
+kerning first=118 second=54 amount=1
+kerning first=118 second=57 amount=1
+kerning first=118 second=105 amount=4
+kerning first=118 second=100 amount=2
+kerning first=118 second=113 amount=2
+kerning first=118 second=112 amount=4
+kerning first=118 second=98 amount=3
+kerning first=118 second=116 amount=4
+kerning first=118 second=103 amount=2
+kerning first=118 second=121 amount=5
+kerning first=118 second=59 amount=3
+kerning first=118 second=119 amount=6
+kerning first=118 second=118 amount=6
+kerning first=118 second=122 amount=2
+kerning first=118 second=110 amount=4
+kerning first=118 second=120 amount=4
+kerning first=118 second=114 amount=4
+kerning first=118 second=117 amount=4
+kerning first=118 second=109 amount=3
+kerning first=118 second=97 amount=3
+kerning first=118 second=111 amount=2
+kerning first=118 second=101 amount=1
+kerning first=118 second=99 amount=1
+kerning first=118 second=115 amount=2
+kerning first=118 second=58 amount=2
+kerning first=118 second=35 amount=3
+kerning first=118 second=34 amount=2
+kerning first=118 second=39 amount=3
+kerning first=118 second=44 amount=-4
+kerning first=118 second=46 amount=-3
+kerning first=118 second=32 amount=2
+kerning first=122 second=106 amount=2
+kerning first=122 second=104 amount=1
+kerning first=122 second=102 amount=3
+kerning first=122 second=108 amount=2
+kerning first=122 second=52 amount=-2
+kerning first=122 second=50 amount=1
+kerning first=122 second=92 amount=-4
+kerning first=122 second=47 amount=3
+kerning first=122 second=107 amount=2
+kerning first=122 second=49 amount=-6
+kerning first=122 second=40 amount=2
+kerning first=122 second=41 amount=2
+kerning first=122 second=33 amount=2
+kerning first=122 second=105 amount=2
+kerning first=122 second=100 amount=1
+kerning first=122 second=113 amount=1
+kerning first=122 second=112 amount=2
+kerning first=122 second=98 amount=2
+kerning first=122 second=116 amount=4
+kerning first=122 second=103 amount=1
+kerning first=122 second=121 amount=3
+kerning first=122 second=59 amount=2
+kerning first=122 second=119 amount=4
+kerning first=122 second=118 amount=4
+kerning first=122 second=122 amount=2
+kerning first=122 second=110 amount=2
+kerning first=122 second=120 amount=3
+kerning first=122 second=114 amount=2
+kerning first=122 second=117 amount=2
+kerning first=122 second=109 amount=1
+kerning first=122 second=97 amount=3
+kerning first=122 second=111 amount=1
+kerning first=122 second=99 amount=1
+kerning first=122 second=115 amount=2
+kerning first=122 second=58 amount=2
+kerning first=122 second=35 amount=2
+kerning first=122 second=44 amount=1
+kerning first=122 second=45 amount=-2
+kerning first=122 second=46 amount=3
+kerning first=122 second=32 amount=2
+kerning first=110 second=106 amount=2
+kerning first=110 second=104 amount=1
+kerning first=110 second=102 amount=2
+kerning first=110 second=63 amount=-3
+kerning first=110 second=108 amount=2
+kerning first=110 second=52 amount=1
+kerning first=110 second=50 amount=1
+kerning first=110 second=92 amount=-6
+kerning first=110 second=47 amount=3
+kerning first=110 second=55 amount=1
+kerning first=110 second=107 amount=2
+kerning first=110 second=49 amount=-6
+kerning first=110 second=40 amount=1
+kerning first=110 second=41 amount=2
+kerning first=110 second=33 amount=2
+kerning first=110 second=105 amount=2
+kerning first=110 second=100 amount=2
+kerning first=110 second=113 amount=1
+kerning first=110 second=112 amount=2
+kerning first=110 second=98 amount=2
+kerning first=110 second=116 amount=3
+kerning first=110 second=103 amount=2
+kerning first=110 second=121 amount=2
+kerning first=110 second=59 amount=2
+kerning first=110 second=119 amount=3
+kerning first=110 second=118 amount=3
+kerning first=110 second=122 amount=2
+kerning first=110 second=110 amount=2
+kerning first=110 second=120 amount=3
+kerning first=110 second=114 amount=2
+kerning first=110 second=117 amount=2
+kerning first=110 second=97 amount=3
+kerning first=110 second=111 amount=2
+kerning first=110 second=101 amount=1
+kerning first=110 second=99 amount=2
+kerning first=110 second=115 amount=2
+kerning first=110 second=58 amount=2
+kerning first=110 second=35 amount=1
+kerning first=110 second=34 amount=-2
+kerning first=110 second=39 amount=-3
+kerning first=110 second=45 amount=2
+kerning first=110 second=46 amount=3
+kerning first=120 second=106 amount=3
+kerning first=120 second=104 amount=2
+kerning first=120 second=102 amount=1
+kerning first=120 second=93 amount=-1
+kerning first=120 second=53 amount=-1
+kerning first=120 second=63 amount=1
+kerning first=120 second=108 amount=3
+kerning first=120 second=52 amount=-3
+kerning first=120 second=92 amount=-3
+kerning first=120 second=47 amount=2
+kerning first=120 second=107 amount=3
+kerning first=120 second=49 amount=-6
+kerning first=120 second=40 amount=2
+kerning first=120 second=33 amount=3
+kerning first=120 second=64 amount=-3
+kerning first=120 second=105 amount=3
+kerning first=120 second=112 amount=3
+kerning first=120 second=98 amount=2
+kerning first=120 second=116 amount=2
+kerning first=120 second=121 amount=4
+kerning first=120 second=59 amount=2
+kerning first=120 second=119 amount=5
+kerning first=120 second=118 amount=5
+kerning first=120 second=122 amount=1
+kerning first=120 second=110 amount=3
+kerning first=120 second=120 amount=3
+kerning first=120 second=114 amount=3
+kerning first=120 second=117 amount=3
+kerning first=120 second=109 amount=2
+kerning first=120 second=97 amount=1
+kerning first=120 second=35 amount=2
+kerning first=120 second=34 amount=1
+kerning first=120 second=39 amount=2
+kerning first=120 second=44 amount=2
+kerning first=120 second=45 amount=-3
+kerning first=120 second=46 amount=2
+kerning first=120 second=32 amount=2
+kerning first=114 second=106 amount=3
+kerning first=114 second=104 amount=2
+kerning first=114 second=102 amount=2
+kerning first=114 second=93 amount=-5
+kerning first=114 second=48 amount=1
+kerning first=114 second=63 amount=2
+kerning first=114 second=108 amount=3
+kerning first=114 second=52 amount=-2
+kerning first=114 second=50 amount=-2
+kerning first=114 second=92 amount=-3
+kerning first=114 second=47 amount=-6
+kerning first=114 second=55 amount=-4
+kerning first=114 second=107 amount=3
+kerning first=114 second=49 amount=-6
+kerning first=114 second=40 amount=3
+kerning first=114 second=33 amount=3
+kerning first=114 second=64 amount=-2
+kerning first=114 second=105 amount=3
+kerning first=114 second=113 amount=1
+kerning first=114 second=112 amount=3
+kerning first=114 second=98 amount=2
+kerning first=114 second=116 amount=2
+kerning first=114 second=103 amount=1
+kerning first=114 second=121 amount=4
+kerning first=114 second=59 amount=2
+kerning first=114 second=119 amount=5
+kerning first=114 second=118 amount=5
+kerning first=114 second=122 amount=1
+kerning first=114 second=110 amount=3
+kerning first=114 second=120 amount=3
+kerning first=114 second=114 amount=3
+kerning first=114 second=117 amount=3
+kerning first=114 second=109 amount=3
+kerning first=114 second=97 amount=1
+kerning first=114 second=111 amount=1
+kerning first=114 second=35 amount=3
+kerning first=114 second=34 amount=3
+kerning first=114 second=39 amount=3
+kerning first=114 second=44 amount=-7
+kerning first=114 second=45 amount=-4
+kerning first=114 second=46 amount=-6
+kerning first=117 second=106 amount=2
+kerning first=117 second=104 amount=1
+kerning first=117 second=102 amount=2
+kerning first=117 second=93 amount=-2
+kerning first=117 second=63 amount=-2
+kerning first=117 second=56 amount=-1
+kerning first=117 second=108 amount=2
+kerning first=117 second=52 amount=1
+kerning first=117 second=50 amount=-1
+kerning first=117 second=92 amount=-4
+kerning first=117 second=51 amount=-1
+kerning first=117 second=107 amount=2
+kerning first=117 second=49 amount=-7
+kerning first=117 second=40 amount=2
+kerning first=117 second=33 amount=2
+kerning first=117 second=105 amount=2
+kerning first=117 second=100 amount=2
+kerning first=117 second=113 amount=1
+kerning first=117 second=112 amount=2
+kerning first=117 second=98 amount=1
+kerning first=117 second=116 amount=4
+kerning first=117 second=103 amount=1
+kerning first=117 second=121 amount=3
+kerning first=117 second=59 amount=1
+kerning first=117 second=119 amount=4
+kerning first=117 second=118 amount=4
+kerning first=117 second=110 amount=2
+kerning first=117 second=120 amount=2
+kerning first=117 second=114 amount=2
+kerning first=117 second=117 amount=2
+kerning first=117 second=109 amount=1
+kerning first=117 second=97 amount=2
+kerning first=117 second=111 amount=2
+kerning first=117 second=101 amount=1
+kerning first=117 second=99 amount=1
+kerning first=117 second=115 amount=1
+kerning first=117 second=35 amount=2
+kerning first=117 second=34 amount=-4
+kerning first=117 second=39 amount=-4
+kerning first=117 second=44 amount=-1
+kerning first=117 second=45 amount=1
+kerning first=109 second=106 amount=2
+kerning first=109 second=104 amount=1
+kerning first=109 second=102 amount=1
+kerning first=109 second=63 amount=-3
+kerning first=109 second=56 amount=-2
+kerning first=109 second=108 amount=3
+kerning first=109 second=50 amount=1
+kerning first=109 second=92 amount=-6
+kerning first=109 second=47 amount=3
+kerning first=109 second=55 amount=1
+kerning first=109 second=51 amount=-1
+kerning first=109 second=107 amount=2
+kerning first=109 second=49 amount=-6
+kerning first=109 second=41 amount=2
+kerning first=109 second=33 amount=2
+kerning first=109 second=54 amount=-1
+kerning first=109 second=57 amount=-1
+kerning first=109 second=105 amount=2
+kerning first=109 second=100 amount=1
+kerning first=109 second=112 amount=2
+kerning first=109 second=98 amount=2
+kerning first=109 second=116 amount=3
+kerning first=109 second=121 amount=2
+kerning first=109 second=59 amount=4
+kerning first=109 second=119 amount=3
+kerning first=109 second=118 amount=3
+kerning first=109 second=122 amount=2
+kerning first=109 second=110 amount=2
+kerning first=109 second=120 amount=3
+kerning first=109 second=114 amount=2
+kerning first=109 second=97 amount=3
+kerning first=109 second=111 amount=1
+kerning first=109 second=115 amount=1
+kerning first=109 second=58 amount=2
+kerning first=109 second=34 amount=-1
+kerning first=109 second=39 amount=-2
+kerning first=109 second=44 amount=3
+kerning first=109 second=46 amount=3
+kerning first=97 second=106 amount=2
+kerning first=97 second=104 amount=1
+kerning first=97 second=48 amount=-2
+kerning first=97 second=63 amount=-4
+kerning first=97 second=108 amount=2
+kerning first=97 second=50 amount=1
+kerning first=97 second=92 amount=-7
+kerning first=97 second=47 amount=3
+kerning first=97 second=55 amount=1
+kerning first=97 second=107 amount=2
+kerning first=97 second=49 amount=-6
+kerning first=97 second=41 amount=2
+kerning first=97 second=33 amount=2
+kerning first=97 second=54 amount=-2
+kerning first=97 second=57 amount=-1
+kerning first=97 second=105 amount=2
+kerning first=97 second=100 amount=1
+kerning first=97 second=112 amount=2
+kerning first=97 second=98 amount=2
+kerning first=97 second=116 amount=1
+kerning first=97 second=103 amount=1
+kerning first=97 second=59 amount=2
+kerning first=97 second=119 amount=1
+kerning first=97 second=118 amount=1
+kerning first=97 second=122 amount=2
+kerning first=97 second=110 amount=2
+kerning first=97 second=120 amount=3
+kerning first=97 second=114 amount=2
+kerning first=97 second=117 amount=1
+kerning first=97 second=97 amount=3
+kerning first=97 second=111 amount=1
+kerning first=97 second=99 amount=1
+kerning first=97 second=115 amount=2
+kerning first=97 second=58 amount=2
+kerning first=97 second=34 amount=-5
+kerning first=97 second=39 amount=-5
+kerning first=97 second=44 amount=2
+kerning first=97 second=46 amount=3
+kerning first=111 second=106 amount=2
+kerning first=111 second=104 amount=2
+kerning first=111 second=102 amount=2
+kerning first=111 second=93 amount=-1
+kerning first=111 second=53 amount=1
+kerning first=111 second=63 amount=-2
+kerning first=111 second=108 amount=2
+kerning first=111 second=52 amount=2
+kerning first=111 second=92 amount=-6
+kerning first=111 second=47 amount=1
+kerning first=111 second=107 amount=2
+kerning first=111 second=49 amount=-7
+kerning first=111 second=40 amount=2
+kerning first=111 second=33 amount=2
+kerning first=111 second=64 amount=1
+kerning first=111 second=105 amount=2
+kerning first=111 second=100 amount=3
+kerning first=111 second=113 amount=2
+kerning first=111 second=112 amount=2
+kerning first=111 second=98 amount=2
+kerning first=111 second=116 amount=4
+kerning first=111 second=103 amount=3
+kerning first=111 second=121 amount=2
+kerning first=111 second=59 amount=1
+kerning first=111 second=119 amount=3
+kerning first=111 second=118 amount=3
+kerning first=111 second=110 amount=2
+kerning first=111 second=120 amount=2
+kerning first=111 second=114 amount=2
+kerning first=111 second=117 amount=3
+kerning first=111 second=109 amount=1
+kerning first=111 second=97 amount=3
+kerning first=111 second=111 amount=3
+kerning first=111 second=101 amount=2
+kerning first=111 second=99 amount=2
+kerning first=111 second=115 amount=2
+kerning first=111 second=35 amount=2
+kerning first=111 second=34 amount=-5
+kerning first=111 second=39 amount=-4
+kerning first=111 second=45 amount=2
+kerning first=111 second=46 amount=1
+kerning first=101 second=106 amount=3
+kerning first=101 second=104 amount=3
+kerning first=101 second=102 amount=3
+kerning first=101 second=53 amount=3
+kerning first=101 second=63 amount=-1
+kerning first=101 second=56 amount=1
+kerning first=101 second=108 amount=3
+kerning first=101 second=52 amount=2
+kerning first=101 second=50 amount=2
+kerning first=101 second=92 amount=-5
+kerning first=101 second=47 amount=4
+kerning first=101 second=55 amount=2
+kerning first=101 second=51 amount=1
+kerning first=101 second=107 amount=3
+kerning first=101 second=49 amount=-5
+kerning first=101 second=40 amount=2
+kerning first=101 second=41 amount=3
+kerning first=101 second=33 amount=3
+kerning first=101 second=64 amount=2
+kerning first=101 second=57 amount=1
+kerning first=101 second=105 amount=3
+kerning first=101 second=100 amount=3
+kerning first=101 second=113 amount=2
+kerning first=101 second=112 amount=3
+kerning first=101 second=98 amount=3
+kerning first=101 second=116 amount=4
+kerning first=101 second=103 amount=3
+kerning first=101 second=121 amount=3
+kerning first=101 second=59 amount=3
+kerning first=101 second=119 amount=4
+kerning first=101 second=118 amount=4
+kerning first=101 second=122 amount=3
+kerning first=101 second=110 amount=3
+kerning first=101 second=120 amount=4
+kerning first=101 second=114 amount=3
+kerning first=101 second=117 amount=3
+kerning first=101 second=109 amount=2
+kerning first=101 second=97 amount=4
+kerning first=101 second=111 amount=3
+kerning first=101 second=101 amount=3
+kerning first=101 second=99 amount=3
+kerning first=101 second=115 amount=4
+kerning first=101 second=58 amount=3
+kerning first=101 second=35 amount=2
+kerning first=101 second=34 amount=-2
+kerning first=101 second=39 amount=-2
+kerning first=101 second=44 amount=2
+kerning first=101 second=45 amount=2
+kerning first=101 second=46 amount=3
+kerning first=99 second=106 amount=2
+kerning first=99 second=104 amount=2
+kerning first=99 second=102 amount=2
+kerning first=99 second=93 amount=-2
+kerning first=99 second=53 amount=2
+kerning first=99 second=63 amount=-3
+kerning first=99 second=108 amount=2
+kerning first=99 second=52 amount=1
+kerning first=99 second=50 amount=-1
+kerning first=99 second=92 amount=-7
+kerning first=99 second=107 amount=2
+kerning first=99 second=49 amount=-7
+kerning first=99 second=40 amount=1
+kerning first=99 second=33 amount=2
+kerning first=99 second=105 amount=2
+kerning first=99 second=100 amount=2
+kerning first=99 second=113 amount=2
+kerning first=99 second=112 amount=2
+kerning first=99 second=98 amount=2
+kerning first=99 second=116 amount=3
+kerning first=99 second=103 amount=2
+kerning first=99 second=121 amount=1
+kerning first=99 second=119 amount=2
+kerning first=99 second=118 amount=2
+kerning first=99 second=110 amount=2
+kerning first=99 second=120 amount=1
+kerning first=99 second=114 amount=2
+kerning first=99 second=117 amount=2
+kerning first=99 second=97 amount=3
+kerning first=99 second=111 amount=2
+kerning first=99 second=101 amount=2
+kerning first=99 second=99 amount=2
+kerning first=99 second=115 amount=3
+kerning first=99 second=58 amount=1
+kerning first=99 second=35 amount=1
+kerning first=99 second=34 amount=-4
+kerning first=99 second=39 amount=-4
+kerning first=99 second=45 amount=1
+kerning first=99 second=46 amount=2
+kerning first=115 second=106 amount=2
+kerning first=115 second=104 amount=1
+kerning first=115 second=102 amount=2
+kerning first=115 second=53 amount=2
+kerning first=115 second=63 amount=-2
+kerning first=115 second=108 amount=2
+kerning first=115 second=92 amount=-6
+kerning first=115 second=47 amount=2
+kerning first=115 second=107 amount=2
+kerning first=115 second=49 amount=-6
+kerning first=115 second=40 amount=2
+kerning first=115 second=41 amount=2
+kerning first=115 second=33 amount=2
+kerning first=115 second=105 amount=2
+kerning first=115 second=100 amount=2
+kerning first=115 second=113 amount=2
+kerning first=115 second=112 amount=2
+kerning first=115 second=98 amount=2
+kerning first=115 second=116 amount=3
+kerning first=115 second=103 amount=2
+kerning first=115 second=121 amount=2
+kerning first=115 second=59 amount=1
+kerning first=115 second=119 amount=3
+kerning first=115 second=118 amount=3
+kerning first=115 second=122 amount=2
+kerning first=115 second=110 amount=2
+kerning first=115 second=120 amount=3
+kerning first=115 second=114 amount=2
+kerning first=115 second=117 amount=2
+kerning first=115 second=109 amount=2
+kerning first=115 second=97 amount=3
+kerning first=115 second=111 amount=2
+kerning first=115 second=101 amount=2
+kerning first=115 second=99 amount=2
+kerning first=115 second=115 amount=3
+kerning first=115 second=58 amount=1
+kerning first=115 second=35 amount=1
+kerning first=115 second=34 amount=-4
+kerning first=115 second=39 amount=-3
+kerning first=115 second=46 amount=2
+kerning first=58 second=87 amount=-2
+kerning first=58 second=77 amount=-1
+kerning first=58 second=84 amount=-5
+kerning first=58 second=93 amount=-3
+kerning first=58 second=89 amount=-4
+kerning first=58 second=65 amount=-1
+kerning first=58 second=53 amount=-1
+kerning first=58 second=86 amount=-2
+kerning first=58 second=48 amount=-1
+kerning first=58 second=74 amount=-4
+kerning first=58 second=63 amount=-3
+kerning first=58 second=56 amount=-2
+kerning first=58 second=52 amount=-2
+kerning first=58 second=50 amount=-2
+kerning first=58 second=92 amount=-6
+kerning first=58 second=55 amount=-2
+kerning first=58 second=51 amount=-3
+kerning first=58 second=49 amount=-8
+kerning first=58 second=64 amount=-2
+kerning first=58 second=54 amount=-2
+kerning first=58 second=57 amount=-2
+kerning first=58 second=116 amount=2
+kerning first=58 second=121 amount=2
+kerning first=58 second=119 amount=3
+kerning first=58 second=118 amount=3
+kerning first=58 second=120 amount=1
+kerning first=58 second=114 amount=1
+kerning first=58 second=58 amount=-1
+kerning first=58 second=34 amount=-5
+kerning first=58 second=39 amount=-1
+kerning first=58 second=45 amount=-3
+kerning first=35 second=106 amount=1
+kerning first=35 second=81 amount=1
+kerning first=35 second=102 amount=2
+kerning first=35 second=93 amount=-5
+kerning first=35 second=90 amount=-5
+kerning first=35 second=88 amount=-3
+kerning first=35 second=89 amount=-2
+kerning first=35 second=65 amount=-3
+kerning first=35 second=53 amount=-1
+kerning first=35 second=85 amount=1
+kerning first=35 second=72 amount=1
+kerning first=35 second=74 amount=-2
+kerning first=35 second=63 amount=2
+kerning first=35 second=56 amount=-1
+kerning first=35 second=108 amount=1
+kerning first=35 second=50 amount=-3
+kerning first=35 second=92 amount=-3
+kerning first=35 second=47 amount=-5
+kerning first=35 second=71 amount=2
+kerning first=35 second=55 amount=-3
+kerning first=35 second=51 amount=-1
+kerning first=35 second=107 amount=1
+kerning first=35 second=49 amount=-7
+kerning first=35 second=40 amount=1
+kerning first=35 second=41 amount=-2
+kerning first=35 second=33 amount=2
+kerning first=35 second=79 amount=1
+kerning first=35 second=57 amount=-1
+kerning first=35 second=67 amount=2
+kerning first=35 second=105 amount=1
+kerning first=35 second=113 amount=1
+kerning first=35 second=112 amount=1
+kerning first=35 second=116 amount=3
+kerning first=35 second=103 amount=1
+kerning first=35 second=121 amount=3
+kerning first=35 second=119 amount=3
+kerning first=35 second=118 amount=3
+kerning first=35 second=122 amount=-1
+kerning first=35 second=110 amount=1
+kerning first=35 second=120 amount=2
+kerning first=35 second=114 amount=1
+kerning first=35 second=117 amount=2
+kerning first=35 second=109 amount=1
+kerning first=35 second=97 amount=1
+kerning first=35 second=111 amount=1
+kerning first=35 second=99 amount=1
+kerning first=35 second=34 amount=1
+kerning first=35 second=39 amount=1
+kerning first=35 second=44 amount=-10
+kerning first=35 second=46 amount=-5
+kerning first=42 second=93 amount=2
+kerning first=42 second=83 amount=3
+kerning first=42 second=113 amount=2
+kerning first=42 second=103 amount=2
+kerning first=34 second=106 amount=1
+kerning first=34 second=87 amount=2
+kerning first=34 second=84 amount=1
+kerning first=34 second=102 amount=-3
+kerning first=34 second=93 amount=2
+kerning first=34 second=90 amount=-2
+kerning first=34 second=88 amount=2
+kerning first=34 second=89 amount=1
+kerning first=34 second=65 amount=-6
+kerning first=34 second=75 amount=2
+kerning first=34 second=53 amount=-2
+kerning first=34 second=86 amount=3
+kerning first=34 second=85 amount=2
+kerning first=34 second=48 amount=-1
+kerning first=34 second=76 amount=2
+kerning first=34 second=74 amount=-9
+kerning first=34 second=63 amount=2
+kerning first=34 second=56 amount=-1
+kerning first=34 second=108 amount=2
+kerning first=34 second=82 amount=2
+kerning first=34 second=52 amount=-5
+kerning first=34 second=50 amount=-2
+kerning first=34 second=92 amount=3
+kerning first=34 second=47 amount=-3
+kerning first=34 second=51 amount=-1
+kerning first=34 second=107 amount=1
+kerning first=34 second=66 amount=2
+kerning first=34 second=80 amount=1
+kerning first=34 second=49 amount=-3
+kerning first=34 second=41 amount=1
+kerning first=34 second=73 amount=2
+kerning first=34 second=33 amount=2
+kerning first=34 second=64 amount=-7
+kerning first=34 second=54 amount=-2
+kerning first=34 second=57 amount=-1
+kerning first=34 second=105 amount=1
+kerning first=34 second=100 amount=-4
+kerning first=34 second=113 amount=-3
+kerning first=34 second=112 amount=1
+kerning first=34 second=98 amount=2
+kerning first=34 second=116 amount=-3
+kerning first=34 second=103 amount=-3
+kerning first=34 second=121 amount=3
+kerning first=34 second=119 amount=2
+kerning first=34 second=118 amount=3
+kerning first=34 second=122 amount=-2
+kerning first=34 second=110 amount=1
+kerning first=34 second=120 amount=2
+kerning first=34 second=117 amount=1
+kerning first=34 second=109 amount=1
+kerning first=34 second=97 amount=-3
+kerning first=34 second=111 amount=-2
+kerning first=34 second=101 amount=-4
+kerning first=34 second=99 amount=-3
+kerning first=34 second=115 amount=-3
+kerning first=34 second=35 amount=-3
+kerning first=34 second=34 amount=2
+kerning first=34 second=39 amount=2
+kerning first=34 second=44 amount=-5
+kerning first=34 second=45 amount=-3
+kerning first=34 second=46 amount=-4
+kerning first=39 second=87 amount=3
+kerning first=39 second=84 amount=2
+kerning first=39 second=104 amount=1
+kerning first=39 second=102 amount=-2
+kerning first=39 second=93 amount=2
+kerning first=39 second=90 amount=-2
+kerning first=39 second=88 amount=3
+kerning first=39 second=89 amount=2
+kerning first=39 second=65 amount=-6
+kerning first=39 second=75 amount=2
+kerning first=39 second=78 amount=1
+kerning first=39 second=53 amount=-1
+kerning first=39 second=86 amount=3
+kerning first=39 second=85 amount=2
+kerning first=39 second=68 amount=1
+kerning first=39 second=76 amount=2
+kerning first=39 second=74 amount=-9
+kerning first=39 second=63 amount=3
+kerning first=39 second=69 amount=1
+kerning first=39 second=108 amount=2
+kerning first=39 second=82 amount=2
+kerning first=39 second=52 amount=-4
+kerning first=39 second=50 amount=-2
+kerning first=39 second=92 amount=3
+kerning first=39 second=47 amount=-9
+kerning first=39 second=107 amount=2
+kerning first=39 second=66 amount=2
+kerning first=39 second=80 amount=2
+kerning first=39 second=49 amount=-3
+kerning first=39 second=41 amount=2
+kerning first=39 second=73 amount=2
+kerning first=39 second=33 amount=2
+kerning first=39 second=64 amount=-10
+kerning first=39 second=54 amount=-1
+kerning first=39 second=105 amount=2
+kerning first=39 second=100 amount=-4
+kerning first=39 second=113 amount=-4
+kerning first=39 second=98 amount=2
+kerning first=39 second=116 amount=-3
+kerning first=39 second=103 amount=-1
+kerning first=39 second=121 amount=3
+kerning first=39 second=59 amount=-2
+kerning first=39 second=118 amount=1
+kerning first=39 second=122 amount=-1
+kerning first=39 second=114 amount=-2
+kerning first=39 second=97 amount=-3
+kerning first=39 second=111 amount=-4
+kerning first=39 second=101 amount=-4
+kerning first=39 second=99 amount=-4
+kerning first=39 second=115 amount=-4
+kerning first=39 second=58 amount=-2
+kerning first=39 second=35 amount=-2
+kerning first=39 second=34 amount=2
+kerning first=39 second=39 amount=3
+kerning first=39 second=44 amount=-6
+kerning first=39 second=45 amount=-4
+kerning first=39 second=46 amount=-2
+kerning first=44 second=106 amount=3
+kerning first=44 second=87 amount=-5
+kerning first=44 second=81 amount=-4
+kerning first=44 second=84 amount=-3
+kerning first=44 second=102 amount=-2
+kerning first=44 second=90 amount=3
+kerning first=44 second=88 amount=3
+kerning first=44 second=89 amount=-6
+kerning first=44 second=65 amount=2
+kerning first=44 second=86 amount=-5
+kerning first=44 second=85 amount=-3
+kerning first=44 second=83 amount=-2
+kerning first=44 second=48 amount=-3
+kerning first=44 second=74 amount=-3
+kerning first=44 second=63 amount=-4
+kerning first=44 second=56 amount=-2
+kerning first=44 second=108 amount=2
+kerning first=44 second=52 amount=-5
+kerning first=44 second=50 amount=2
+kerning first=44 second=92 amount=-9
+kerning first=44 second=47 amount=3
+kerning first=44 second=71 amount=-3
+kerning first=44 second=55 amount=2
+kerning first=44 second=51 amount=-2
+kerning first=44 second=107 amount=2
+kerning first=44 second=80 amount=2
+kerning first=44 second=70 amount=1
+kerning first=44 second=49 amount=-6
+kerning first=44 second=41 amount=2
+kerning first=44 second=73 amount=1
+kerning first=44 second=33 amount=1
+kerning first=44 second=64 amount=-2
+kerning first=44 second=79 amount=-3
+kerning first=44 second=54 amount=-4
+kerning first=44 second=57 amount=-3
+kerning first=44 second=105 amount=1
+kerning first=44 second=113 amount=-2
+kerning first=44 second=98 amount=2
+kerning first=44 second=116 amount=-3
+kerning first=44 second=121 amount=-4
+kerning first=44 second=59 amount=4
+kerning first=44 second=119 amount=-1
+kerning first=44 second=118 amount=-3
+kerning first=44 second=122 amount=3
+kerning first=44 second=110 amount=1
+kerning first=44 second=120 amount=3
+kerning first=44 second=114 amount=2
+kerning first=44 second=109 amount=-2
+kerning first=44 second=97 amount=2
+kerning first=44 second=58 amount=2
+kerning first=44 second=35 amount=-5
+kerning first=44 second=34 amount=-5
+kerning first=44 second=39 amount=-8
+kerning first=44 second=44 amount=2
+kerning first=44 second=45 amount=-5
+kerning first=44 second=46 amount=2
+kerning first=45 second=87 amount=-2
+kerning first=45 second=81 amount=2
+kerning first=45 second=84 amount=-4
+kerning first=45 second=93 amount=-8
+kerning first=45 second=90 amount=-5
+kerning first=45 second=88 amount=-5
+kerning first=45 second=89 amount=-6
+kerning first=45 second=65 amount=-2
+kerning first=45 second=53 amount=-3
+kerning first=45 second=86 amount=-2
+kerning first=45 second=83 amount=-3
+kerning first=45 second=72 amount=2
+kerning first=45 second=63 amount=-2
+kerning first=45 second=56 amount=-4
+kerning first=45 second=108 amount=1
+kerning first=45 second=52 amount=2
+kerning first=45 second=50 amount=-9
+kerning first=45 second=92 amount=-8
+kerning first=45 second=47 amount=-4
+kerning first=45 second=71 amount=2
+kerning first=45 second=55 amount=-5
+kerning first=45 second=51 amount=-4
+kerning first=45 second=107 amount=1
+kerning first=45 second=49 amount=-8
+kerning first=45 second=40 amount=2
+kerning first=45 second=41 amount=-2
+kerning first=45 second=33 amount=1
+kerning first=45 second=79 amount=1
+kerning first=45 second=57 amount=-3
+kerning first=45 second=67 amount=2
+kerning first=45 second=105 amount=1
+kerning first=45 second=100 amount=2
+kerning first=45 second=113 amount=2
+kerning first=45 second=116 amount=2
+kerning first=45 second=103 amount=2
+kerning first=45 second=119 amount=2
+kerning first=45 second=118 amount=1
+kerning first=45 second=122 amount=-4
+kerning first=45 second=110 amount=1
+kerning first=45 second=120 amount=-1
+kerning first=45 second=114 amount=1
+kerning first=45 second=117 amount=2
+kerning first=45 second=111 amount=2
+kerning first=45 second=101 amount=1
+kerning first=45 second=99 amount=2
+kerning first=45 second=58 amount=-1
+kerning first=45 second=35 amount=2
+kerning first=45 second=34 amount=-3
+kerning first=45 second=39 amount=-2
+kerning first=45 second=44 amount=-6
+kerning first=45 second=45 amount=1
+kerning first=45 second=46 amount=-6
+kerning first=46 second=106 amount=1
+kerning first=46 second=87 amount=-4
+kerning first=46 second=84 amount=-3
+kerning first=46 second=104 amount=1
+kerning first=46 second=102 amount=-2
+kerning first=46 second=90 amount=3
+kerning first=46 second=88 amount=3
+kerning first=46 second=89 amount=-5
+kerning first=46 second=65 amount=2
+kerning first=46 second=53 amount=2
+kerning first=46 second=86 amount=-2
+kerning first=46 second=85 amount=-1
+kerning first=46 second=48 amount=-2
+kerning first=46 second=74 amount=-1
+kerning first=46 second=63 amount=-4
+kerning first=46 second=108 amount=2
+kerning first=46 second=52 amount=-6
+kerning first=46 second=50 amount=2
+kerning first=46 second=92 amount=-11
+kerning first=46 second=47 amount=3
+kerning first=46 second=55 amount=2
+kerning first=46 second=107 amount=2
+kerning first=46 second=80 amount=1
+kerning first=46 second=49 amount=-6
+kerning first=46 second=41 amount=2
+kerning first=46 second=73 amount=1
+kerning first=46 second=33 amount=1
+kerning first=46 second=79 amount=-1
+kerning first=46 second=54 amount=-2
+kerning first=46 second=105 amount=2
+kerning first=46 second=100 amount=2
+kerning first=46 second=112 amount=1
+kerning first=46 second=98 amount=1
+kerning first=46 second=116 amount=-3
+kerning first=46 second=103 amount=1
+kerning first=46 second=121 amount=-3
+kerning first=46 second=59 amount=2
+kerning first=46 second=118 amount=-2
+kerning first=46 second=122 amount=2
+kerning first=46 second=110 amount=2
+kerning first=46 second=120 amount=3
+kerning first=46 second=114 amount=2
+kerning first=46 second=117 amount=1
+kerning first=46 second=97 amount=3
+kerning first=46 second=111 amount=1
+kerning first=46 second=101 amount=1
+kerning first=46 second=99 amount=2
+kerning first=46 second=115 amount=3
+kerning first=46 second=58 amount=2
+kerning first=46 second=35 amount=-9
+kerning first=46 second=34 amount=-9
+kerning first=46 second=39 amount=-2
+kerning first=46 second=44 amount=1
+kerning first=46 second=45 amount=-4
+kerning first=46 second=46 amount=2
+kerning first=126 second=33 amount=-2
+kerning first=126 second=32 amount=-3
+kerning first=32 second=53 amount=-2
+kerning first=32 second=83 amount=1
+kerning first=32 second=123 amount=2
diff --git a/tests/cpp-tests/Resources/hd/fonts/markerFelt.png b/tests/cpp-tests/Resources/hd/fonts/markerFelt.png
new file mode 100755
index 0000000000..3988cfdf65
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/fonts/markerFelt.png differ
diff --git a/tests/cpp-tests/Resources/hd/fonts/tuffy_bold_italic-charmap.plist b/tests/cpp-tests/Resources/hd/fonts/tuffy_bold_italic-charmap.plist
new file mode 100755
index 0000000000..55cdc2176b
--- /dev/null
+++ b/tests/cpp-tests/Resources/hd/fonts/tuffy_bold_italic-charmap.plist
@@ -0,0 +1,16 @@
+
+
+
+
+ version
+ 1
+ textureFilename
+ tuffy_bold_italic-charmap.png
+ itemHeight
+ 128
+ itemWidth
+ 96
+ firstChar
+ 32
+
+
diff --git a/tests/cpp-tests/Resources/hd/fonts/tuffy_bold_italic-charmap.png b/tests/cpp-tests/Resources/hd/fonts/tuffy_bold_italic-charmap.png
new file mode 100755
index 0000000000..8167faf6c4
Binary files /dev/null and b/tests/cpp-tests/Resources/hd/fonts/tuffy_bold_italic-charmap.png differ
diff --git a/tests/cpp-tests/Resources/music.mid b/tests/cpp-tests/Resources/music.mid
new file mode 100755
index 0000000000..f03070495d
Binary files /dev/null and b/tests/cpp-tests/Resources/music.mid differ
diff --git a/tests/cpp-tests/Resources/pew-pew-lei.wav b/tests/cpp-tests/Resources/pew-pew-lei.wav
new file mode 100755
index 0000000000..143c127d6e
Binary files /dev/null and b/tests/cpp-tests/Resources/pew-pew-lei.wav differ
diff --git a/tests/cpp-tests/Resources/spine/goblins.atlas b/tests/cpp-tests/Resources/spine/goblins.atlas
new file mode 100755
index 0000000000..ce74602e5c
--- /dev/null
+++ b/tests/cpp-tests/Resources/spine/goblins.atlas
@@ -0,0 +1,285 @@
+
+goblins.png
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+spear
+ rotate: true
+ xy: 2, 104
+ size: 22, 368
+ orig: 22, 368
+ offset: 0, 0
+ index: -1
+goblingirl/head
+ rotate: false
+ xy: 2, 23
+ size: 103, 79
+ orig: 103, 81
+ offset: 0, 2
+ index: -1
+goblin/head
+ rotate: false
+ xy: 107, 38
+ size: 103, 64
+ orig: 103, 66
+ offset: 0, 0
+ index: -1
+goblin/torso
+ rotate: true
+ xy: 212, 34
+ size: 68, 96
+ orig: 68, 96
+ offset: 0, 0
+ index: -1
+goblin/right-upper-leg
+ rotate: true
+ xy: 107, 2
+ size: 34, 63
+ orig: 34, 63
+ offset: 0, 0
+ index: -1
+goblin/left-lower-leg
+ rotate: true
+ xy: 172, 2
+ size: 30, 70
+ orig: 33, 70
+ offset: 2, 0
+ index: -1
+goblingirl/left-lower-leg
+ rotate: true
+ xy: 244, 2
+ size: 30, 70
+ orig: 33, 70
+ offset: 2, 0
+ index: -1
+goblin/undie-straps
+ rotate: false
+ xy: 2, 2
+ size: 55, 19
+ orig: 55, 19
+ offset: 0, 0
+ index: -1
+dagger
+ rotate: true
+ xy: 372, 100
+ size: 26, 108
+ orig: 156, 238
+ offset: 100, 30
+ index: -1
+goblingirl/torso
+ rotate: true
+ xy: 482, 60
+ size: 66, 96
+ orig: 68, 96
+ offset: 0, 0
+ index: -1
+goblin/right-lower-leg
+ rotate: true
+ xy: 580, 91
+ size: 35, 76
+ orig: 36, 76
+ offset: 1, 0
+ index: -1
+goblingirl/right-lower-leg
+ rotate: true
+ xy: 658, 91
+ size: 35, 76
+ orig: 36, 76
+ offset: 1, 0
+ index: -1
+goblin/left-upper-leg
+ rotate: true
+ xy: 736, 93
+ size: 33, 73
+ orig: 33, 73
+ offset: 0, 0
+ index: -1
+goblin/pelvis
+ rotate: true
+ xy: 310, 40
+ size: 62, 43
+ orig: 62, 43
+ offset: 0, 0
+ index: -1
+goblin/left-hand
+ rotate: true
+ xy: 316, 2
+ size: 36, 41
+ orig: 36, 41
+ offset: 0, 0
+ index: -1
+goblingirl/left-upper-leg
+ rotate: true
+ xy: 811, 93
+ size: 33, 70
+ orig: 33, 70
+ offset: 0, 0
+ index: -1
+goblin/left-foot
+ rotate: false
+ xy: 883, 95
+ size: 65, 31
+ orig: 65, 31
+ offset: 0, 0
+ index: -1
+goblingirl/left-foot
+ rotate: false
+ xy: 950, 95
+ size: 65, 31
+ orig: 65, 31
+ offset: 0, 0
+ index: -1
+goblin/right-foot
+ rotate: false
+ xy: 580, 56
+ size: 63, 33
+ orig: 63, 33
+ offset: 0, 0
+ index: -1
+goblingirl/right-foot
+ rotate: false
+ xy: 645, 56
+ size: 63, 33
+ orig: 63, 33
+ offset: 0, 0
+ index: -1
+goblingirl/pelvis
+ rotate: false
+ xy: 355, 55
+ size: 59, 43
+ orig: 62, 43
+ offset: 1, 0
+ index: -1
+goblingirl/right-upper-leg
+ rotate: true
+ xy: 416, 64
+ size: 34, 63
+ orig: 34, 63
+ offset: 0, 0
+ index: -1
+goblin/right-shoulder
+ rotate: false
+ xy: 359, 11
+ size: 39, 42
+ orig: 39, 45
+ offset: 0, 0
+ index: -1
+goblingirl/undie-straps
+ rotate: false
+ xy: 416, 43
+ size: 55, 19
+ orig: 55, 19
+ offset: 0, 0
+ index: -1
+goblingirl/right-shoulder
+ rotate: true
+ xy: 400, 2
+ size: 39, 42
+ orig: 39, 45
+ offset: 0, 0
+ index: -1
+goblin/left-arm
+ rotate: true
+ xy: 444, 4
+ size: 37, 35
+ orig: 37, 35
+ offset: 0, 0
+ index: -1
+goblin/neck
+ rotate: false
+ xy: 481, 17
+ size: 36, 41
+ orig: 36, 41
+ offset: 0, 0
+ index: -1
+goblingirl/left-hand
+ rotate: false
+ xy: 519, 18
+ size: 35, 40
+ orig: 35, 40
+ offset: 0, 0
+ index: -1
+goblingirl/right-arm
+ rotate: false
+ xy: 556, 8
+ size: 22, 50
+ orig: 28, 50
+ offset: 3, 0
+ index: -1
+goblingirl/neck
+ rotate: false
+ xy: 580, 13
+ size: 33, 41
+ orig: 35, 41
+ offset: 0, 0
+ index: -1
+goblin/left-shoulder
+ rotate: true
+ xy: 615, 25
+ size: 29, 44
+ orig: 29, 44
+ offset: 0, 0
+ index: -1
+goblingirl/left-shoulder
+ rotate: true
+ xy: 661, 26
+ size: 28, 45
+ orig: 28, 46
+ offset: 0, 1
+ index: -1
+goblingirl/left-arm
+ rotate: false
+ xy: 710, 54
+ size: 37, 35
+ orig: 37, 35
+ offset: 0, 0
+ index: -1
+goblin/right-arm
+ rotate: false
+ xy: 708, 2
+ size: 23, 50
+ orig: 23, 50
+ offset: 0, 0
+ index: -1
+goblin/right-hand
+ rotate: false
+ xy: 749, 54
+ size: 36, 37
+ orig: 36, 37
+ offset: 0, 0
+ index: -1
+goblingirl/right-hand
+ rotate: false
+ xy: 733, 15
+ size: 35, 37
+ orig: 36, 37
+ offset: 1, 0
+ index: -1
+goblin/undies
+ rotate: false
+ xy: 787, 62
+ size: 36, 29
+ orig: 36, 29
+ offset: 0, 0
+ index: -1
+goblingirl/undies
+ rotate: false
+ xy: 825, 62
+ size: 36, 29
+ orig: 36, 29
+ offset: 0, 0
+ index: -1
+goblingirl/eyes-closed
+ rotate: false
+ xy: 59, 6
+ size: 37, 15
+ orig: 37, 21
+ offset: 0, 0
+ index: -1
+goblin/eyes-closed
+ rotate: true
+ xy: 770, 18
+ size: 34, 12
+ orig: 34, 12
+ offset: 0, 0
+ index: -1
diff --git a/tests/cpp-tests/Resources/spine/goblins.json b/tests/cpp-tests/Resources/spine/goblins.json
new file mode 100755
index 0000000000..95313ebe61
--- /dev/null
+++ b/tests/cpp-tests/Resources/spine/goblins.json
@@ -0,0 +1,499 @@
+{
+"bones": [
+ { "name": "root" },
+ { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 },
+ { "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 },
+ { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 },
+ { "name": "right upper leg", "parent": "hip", "length": 42.45, "x": -20.07, "y": -6.83, "rotation": -97.49 },
+ { "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 93.92 },
+ { "name": "left lower leg", "parent": "left upper leg", "length": 49.89, "x": 56.34, "y": 0.98, "rotation": -16.65 },
+ { "name": "left shoulder", "parent": "torso", "length": 35.43, "x": 74.04, "y": -20.38, "rotation": -156.96 },
+ { "name": "neck", "parent": "torso", "length": 18.38, "x": 81.67, "y": -6.34, "rotation": -1.51 },
+ { "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 42.99, "y": -0.61, "rotation": -14.34 },
+ { "name": "right shoulder", "parent": "torso", "length": 37.24, "x": 76.02, "y": 18.14, "rotation": 133.88 },
+ { "name": "head", "parent": "neck", "length": 68.28, "x": 20.93, "y": 11.59, "rotation": -13.92 },
+ { "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 37.85, "y": -2.34, "rotation": 28.16 },
+ { "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 58.94, "y": -7.61, "rotation": 102.43 },
+ { "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 37.6, "y": 0.31, "rotation": 36.32 },
+ { "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 },
+ { "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 },
+ { "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }
+],
+"slots": [
+ { "name": "left shoulder", "bone": "left shoulder", "attachment": "left shoulder" },
+ { "name": "left arm", "bone": "left arm", "attachment": "left arm" },
+ { "name": "left hand item", "bone": "left hand", "attachment": "dagger" },
+ { "name": "left hand", "bone": "left hand", "attachment": "left hand" },
+ { "name": "left foot", "bone": "left foot", "attachment": "left foot" },
+ { "name": "left lower leg", "bone": "left lower leg", "attachment": "left lower leg" },
+ { "name": "left upper leg", "bone": "left upper leg", "attachment": "left upper leg" },
+ { "name": "neck", "bone": "neck", "attachment": "neck" },
+ { "name": "torso", "bone": "torso", "attachment": "torso" },
+ { "name": "pelvis", "bone": "pelvis", "attachment": "pelvis" },
+ { "name": "right foot", "bone": "right foot", "attachment": "right foot" },
+ { "name": "right lower leg", "bone": "right lower leg", "attachment": "right lower leg" },
+ { "name": "undie straps", "bone": "pelvis", "attachment": "undie straps" },
+ { "name": "undies", "bone": "pelvis", "attachment": "undies" },
+ { "name": "right upper leg", "bone": "right upper leg", "attachment": "right upper leg" },
+ { "name": "head", "bone": "head", "attachment": "head" },
+ { "name": "eyes", "bone": "head" },
+ { "name": "right shoulder", "bone": "right shoulder", "attachment": "right shoulder" },
+ { "name": "right arm", "bone": "right arm", "attachment": "right arm" },
+ { "name": "right hand item", "bone": "right hand", "attachment": "dagger" },
+ { "name": "right hand", "bone": "right hand", "attachment": "right hand" }
+],
+"skins": {
+ "default": {
+ "left hand item": {
+ "dagger": { "x": -35.5, "y": 3.85, "rotation": 10.47, "width": 156, "height": 238 },
+ "spear": { "x": -4.55, "y": 39.2, "rotation": 13.04, "width": 22, "height": 368 }
+ },
+ "right hand item": {
+ "dagger": { "x": -21.57, "y": 15.8, "rotation": -8.06, "width": 156, "height": 238 }
+ }
+ },
+ "goblin": {
+ "neck": {
+ "neck": { "name": "goblin/neck", "x": 10.1, "y": 0.42, "rotation": -93.69, "width": 36, "height": 41 }
+ },
+ "undies": {
+ "undies": { "name": "goblin/undies", "x": 6.3, "y": 0.12, "rotation": 0.91, "width": 36, "height": 29 }
+ },
+ "right hand": {
+ "right hand": { "name": "goblin/right-hand", "x": 7.88, "y": 2.78, "rotation": 91.96, "width": 36, "height": 37 }
+ },
+ "right arm": {
+ "right arm": { "name": "goblin/right-arm", "x": 16.44, "y": -1.04, "rotation": 94.32, "width": 23, "height": 50 }
+ },
+ "head": {
+ "head": { "name": "goblin/head", "x": 25.73, "y": 2.33, "rotation": -92.29, "width": 103, "height": 66 }
+ },
+ "left shoulder": {
+ "left shoulder": { "name": "goblin/left-shoulder", "x": 15.56, "y": -2.26, "rotation": 62.01, "width": 29, "height": 44 }
+ },
+ "left arm": {
+ "left arm": {
+ "name": "goblin/left-arm",
+ "x": 16.7,
+ "y": -1.69,
+ "scaleX": 1.057,
+ "scaleY": 1.057,
+ "rotation": 33.84,
+ "width": 37,
+ "height": 35
+ }
+ },
+ "left hand": {
+ "left hand": {
+ "name": "goblin/left-hand",
+ "x": 3.47,
+ "y": 3.41,
+ "scaleX": 0.892,
+ "scaleY": 0.892,
+ "rotation": 31.14,
+ "width": 36,
+ "height": 41
+ }
+ },
+ "right lower leg": {
+ "right lower leg": { "name": "goblin/right-lower-leg", "x": 25.68, "y": -3.15, "rotation": 111.83, "width": 36, "height": 76 }
+ },
+ "right upper leg": {
+ "right upper leg": { "name": "goblin/right-upper-leg", "x": 20.35, "y": 1.47, "rotation": 97.49, "width": 34, "height": 63 }
+ },
+ "pelvis": {
+ "pelvis": { "name": "goblin/pelvis", "x": -5.61, "y": 0.76, "width": 62, "height": 43 }
+ },
+ "left lower leg": {
+ "left lower leg": { "name": "goblin/left-lower-leg", "x": 23.58, "y": -2.06, "rotation": 105.75, "width": 33, "height": 70 }
+ },
+ "left upper leg": {
+ "left upper leg": { "name": "goblin/left-upper-leg", "x": 29.68, "y": -3.87, "rotation": 89.09, "width": 33, "height": 73 }
+ },
+ "torso": {
+ "torso": { "name": "goblin/torso", "x": 38.09, "y": -3.87, "rotation": -94.95, "width": 68, "height": 96 }
+ },
+ "right shoulder": {
+ "right shoulder": { "name": "goblin/right-shoulder", "x": 15.68, "y": -1.03, "rotation": 130.65, "width": 39, "height": 45 }
+ },
+ "right foot": {
+ "right foot": { "name": "goblin/right-foot", "x": 23.56, "y": 9.8, "rotation": 1.52, "width": 63, "height": 33 }
+ },
+ "left foot": {
+ "left foot": { "name": "goblin/left-foot", "x": 24.85, "y": 8.74, "rotation": 3.32, "width": 65, "height": 31 }
+ },
+ "undie straps": {
+ "undie straps": { "name": "goblin/undie-straps", "x": -3.87, "y": 13.1, "scaleX": 1.089, "width": 55, "height": 19 }
+ },
+ "eyes": {
+ "eyes closed": { "name": "goblin/eyes-closed", "x": 32.21, "y": -21.27, "rotation": -88.92, "width": 34, "height": 12 }
+ }
+ },
+ "goblingirl": {
+ "left upper leg": {
+ "left upper leg": { "name": "goblingirl/left-upper-leg", "x": 30.21, "y": -2.95, "rotation": 89.09, "width": 33, "height": 70 }
+ },
+ "left lower leg": {
+ "left lower leg": { "name": "goblingirl/left-lower-leg", "x": 25.02, "y": -0.6, "rotation": 105.75, "width": 33, "height": 70 }
+ },
+ "left foot": {
+ "left foot": { "name": "goblingirl/left-foot", "x": 25.17, "y": 7.92, "rotation": 3.32, "width": 65, "height": 31 }
+ },
+ "right upper leg": {
+ "right upper leg": { "name": "goblingirl/right-upper-leg", "x": 19.69, "y": 2.13, "rotation": 97.49, "width": 34, "height": 63 }
+ },
+ "right lower leg": {
+ "right lower leg": { "name": "goblingirl/right-lower-leg", "x": 26.15, "y": -3.27, "rotation": 111.83, "width": 36, "height": 76 }
+ },
+ "right foot": {
+ "right foot": { "name": "goblingirl/right-foot", "x": 23.46, "y": 9.66, "rotation": 1.52, "width": 63, "height": 33 }
+ },
+ "torso": {
+ "torso": { "name": "goblingirl/torso", "x": 36.28, "y": -5.14, "rotation": -95.74, "width": 68, "height": 96 }
+ },
+ "left shoulder": {
+ "left shoulder": { "name": "goblingirl/left-shoulder", "x": 19.8, "y": -0.42, "rotation": 61.21, "width": 28, "height": 46 }
+ },
+ "left arm": {
+ "left arm": { "name": "goblingirl/left-arm", "x": 19.64, "y": -2.42, "rotation": 33.05, "width": 37, "height": 35 }
+ },
+ "left hand": {
+ "left hand": {
+ "name": "goblingirl/left-hand",
+ "x": 4.34,
+ "y": 2.39,
+ "scaleX": 0.896,
+ "scaleY": 0.896,
+ "rotation": 30.34,
+ "width": 35,
+ "height": 40
+ }
+ },
+ "neck": {
+ "neck": { "name": "goblingirl/neck", "x": 6.16, "y": -3.14, "rotation": -98.86, "width": 35, "height": 41 }
+ },
+ "head": {
+ "head": { "name": "goblingirl/head", "x": 27.71, "y": -4.32, "rotation": -85.58, "width": 103, "height": 81 }
+ },
+ "right shoulder": {
+ "right shoulder": { "name": "goblingirl/right-shoulder", "x": 14.46, "y": 0.45, "rotation": 129.85, "width": 39, "height": 45 }
+ },
+ "right arm": {
+ "right arm": { "name": "goblingirl/right-arm", "x": 16.85, "y": -0.66, "rotation": 93.52, "width": 28, "height": 50 }
+ },
+ "right hand": {
+ "right hand": { "name": "goblingirl/right-hand", "x": 7.21, "y": 3.43, "rotation": 91.16, "width": 36, "height": 37 }
+ },
+ "pelvis": {
+ "pelvis": { "name": "goblingirl/pelvis", "x": -3.87, "y": 3.18, "width": 62, "height": 43 }
+ },
+ "undie straps": {
+ "undie straps": { "name": "goblingirl/undie-straps", "x": -1.51, "y": 14.18, "width": 55, "height": 19 }
+ },
+ "undies": {
+ "undies": { "name": "goblingirl/undies", "x": 5.4, "y": 1.7, "width": 36, "height": 29 }
+ },
+ "eyes": {
+ "eyes closed": { "name": "goblingirl/eyes-closed", "x": 28, "y": -25.54, "rotation": -87.04, "width": 37, "height": 21 }
+ }
+ }
+},
+"animations": {
+ "walk": {
+ "bones": {
+ "left upper leg": {
+ "rotate": [
+ { "time": 0, "angle": -26.55 },
+ { "time": 0.1333, "angle": -8.78 },
+ { "time": 0.2333, "angle": 9.51 },
+ { "time": 0.3666, "angle": 30.74 },
+ { "time": 0.5, "angle": 25.33 },
+ { "time": 0.6333, "angle": 26.11 },
+ { "time": 0.7333, "angle": -7.7 },
+ { "time": 0.8666, "angle": -21.19 },
+ { "time": 1, "angle": -26.55 }
+ ],
+ "translate": [
+ { "time": 0, "x": -1.32, "y": 1.7 },
+ { "time": 0.3666, "x": -0.06, "y": 2.42 },
+ { "time": 1, "x": -1.32, "y": 1.7 }
+ ]
+ },
+ "right upper leg": {
+ "rotate": [
+ { "time": 0, "angle": 42.45 },
+ { "time": 0.1333, "angle": 52.1 },
+ { "time": 0.2333, "angle": 8.53 },
+ { "time": 0.5, "angle": -16.93 },
+ { "time": 0.6333, "angle": 1.89 },
+ {
+ "time": 0.7333,
+ "angle": 28.06,
+ "curve": [ 0.462, 0.11, 1, 1 ]
+ },
+ {
+ "time": 0.8666,
+ "angle": 58.68,
+ "curve": [ 0.5, 0.02, 1, 1 ]
+ },
+ { "time": 1, "angle": 42.45 }
+ ],
+ "translate": [
+ { "time": 0, "x": 6.23, "y": 0 },
+ { "time": 0.2333, "x": 2.14, "y": 2.4 },
+ { "time": 0.5, "x": 2.44, "y": 4.8 },
+ { "time": 1, "x": 6.23, "y": 0 }
+ ]
+ },
+ "left lower leg": {
+ "rotate": [
+ { "time": 0, "angle": -22.98 },
+ { "time": 0.1333, "angle": -63.5 },
+ { "time": 0.2333, "angle": -73.76 },
+ { "time": 0.5, "angle": 5.11 },
+ { "time": 0.6333, "angle": -28.29 },
+ { "time": 0.7333, "angle": 4.08 },
+ { "time": 0.8666, "angle": 3.53 },
+ { "time": 1, "angle": -22.98 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0 },
+ { "time": 0.2333, "x": 2.55, "y": -0.47 },
+ { "time": 0.5, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1, "x": 0, "y": 0 }
+ ]
+ },
+ "left foot": {
+ "rotate": [
+ { "time": 0, "angle": -3.69 },
+ { "time": 0.1333, "angle": -10.42 },
+ { "time": 0.2333, "angle": -5.01 },
+ { "time": 0.3666, "angle": 3.87 },
+ { "time": 0.5, "angle": -3.87 },
+ { "time": 0.6333, "angle": 2.78 },
+ { "time": 0.7333, "angle": 1.68 },
+ { "time": 0.8666, "angle": -8.54 },
+ { "time": 1, "angle": -3.69 }
+ ]
+ },
+ "right shoulder": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 5.29,
+ "curve": [ 0.264, 0, 0.75, 1 ]
+ },
+ { "time": 0.6333, "angle": 6.65 },
+ { "time": 1, "angle": 5.29 }
+ ]
+ },
+ "right arm": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": -4.02,
+ "curve": [ 0.267, 0, 0.804, 0.99 ]
+ },
+ {
+ "time": 0.6333,
+ "angle": 19.78,
+ "curve": [ 0.307, 0, 0.787, 0.99 ]
+ },
+ { "time": 1, "angle": -4.02 }
+ ]
+ },
+ "right hand": {
+ "rotate": [
+ { "time": 0, "angle": 8.98 },
+ { "time": 0.6333, "angle": 0.51 },
+ { "time": 1, "angle": 8.98 }
+ ]
+ },
+ "left shoulder": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 6.25,
+ "curve": [ 0.339, 0, 0.683, 1 ]
+ },
+ {
+ "time": 0.5,
+ "angle": -11.78,
+ "curve": [ 0.281, 0, 0.686, 0.99 ]
+ },
+ { "time": 1, "angle": 6.25 }
+ ],
+ "translate": [
+ { "time": 0, "x": 1.15, "y": 0.23 }
+ ]
+ },
+ "left hand": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": -21.23,
+ "curve": [ 0.295, 0, 0.755, 0.98 ]
+ },
+ {
+ "time": 0.5,
+ "angle": -27.28,
+ "curve": [ 0.241, 0, 0.75, 0.97 ]
+ },
+ { "time": 1, "angle": -21.23 }
+ ]
+ },
+ "left arm": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 28.37,
+ "curve": [ 0.339, 0, 0.683, 1 ]
+ },
+ {
+ "time": 0.5,
+ "angle": 60.09,
+ "curve": [ 0.281, 0, 0.686, 0.99 ]
+ },
+ { "time": 1, "angle": 28.37 }
+ ]
+ },
+ "torso": {
+ "rotate": [
+ { "time": 0, "angle": -10.28 },
+ {
+ "time": 0.1333,
+ "angle": -15.38,
+ "curve": [ 0.545, 0, 0.818, 1 ]
+ },
+ {
+ "time": 0.3666,
+ "angle": -9.78,
+ "curve": [ 0.58, 0.17, 0.669, 0.99 ]
+ },
+ {
+ "time": 0.6333,
+ "angle": -15.75,
+ "curve": [ 0.235, 0.01, 0.795, 1 ]
+ },
+ {
+ "time": 0.8666,
+ "angle": -7.06,
+ "curve": [ 0.209, 0, 0.816, 0.98 ]
+ },
+ { "time": 1, "angle": -10.28 }
+ ],
+ "translate": [
+ { "time": 0, "x": -1.29, "y": 1.68 }
+ ]
+ },
+ "right foot": {
+ "rotate": [
+ { "time": 0, "angle": -5.25 },
+ { "time": 0.2333, "angle": -1.91 },
+ { "time": 0.3666, "angle": -6.45 },
+ { "time": 0.5, "angle": -5.39 },
+ { "time": 0.7333, "angle": -11.68 },
+ { "time": 0.8666, "angle": 0.46 },
+ { "time": 1, "angle": -5.25 }
+ ]
+ },
+ "right lower leg": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": -3.39,
+ "curve": [ 0.316, 0.01, 0.741, 0.98 ]
+ },
+ {
+ "time": 0.1333,
+ "angle": -45.53,
+ "curve": [ 0.229, 0, 0.738, 0.97 ]
+ },
+ { "time": 0.2333, "angle": -4.83 },
+ { "time": 0.5, "angle": -19.53 },
+ { "time": 0.6333, "angle": -64.8 },
+ {
+ "time": 0.7333,
+ "angle": -82.56,
+ "curve": [ 0.557, 0.18, 1, 1 ]
+ },
+ { "time": 1, "angle": -3.39 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.5, "x": 0, "y": 0 },
+ { "time": 0.6333, "x": 2.18, "y": 0.21 },
+ { "time": 1, "x": 0, "y": 0 }
+ ]
+ },
+ "hip": {
+ "rotate": [
+ { "time": 0, "angle": 0, "curve": "stepped" },
+ { "time": 1, "angle": 0 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": -4.16 },
+ {
+ "time": 0.1333,
+ "x": 0,
+ "y": -7.05,
+ "curve": [ 0.359, 0.47, 0.646, 0.74 ]
+ },
+ { "time": 0.3666, "x": 0, "y": 6.78 },
+ { "time": 0.5, "x": 0, "y": -6.13 },
+ {
+ "time": 0.6333,
+ "x": 0,
+ "y": -7.05,
+ "curve": [ 0.359, 0.47, 0.646, 0.74 ]
+ },
+ { "time": 0.8666, "x": 0, "y": 6.78 },
+ { "time": 1, "x": 0, "y": -4.16 }
+ ]
+ },
+ "neck": {
+ "rotate": [
+ { "time": 0, "angle": 3.6 },
+ { "time": 0.1333, "angle": 17.49 },
+ { "time": 0.2333, "angle": 6.1 },
+ { "time": 0.3666, "angle": 3.45 },
+ { "time": 0.5, "angle": 5.17 },
+ { "time": 0.6333, "angle": 18.36 },
+ { "time": 0.7333, "angle": 6.09 },
+ { "time": 0.8666, "angle": 2.28 },
+ { "time": 1, "angle": 3.6 }
+ ]
+ },
+ "head": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 3.6,
+ "curve": [ 0, 0, 0.704, 1.17 ]
+ },
+ { "time": 0.1333, "angle": -0.2 },
+ { "time": 0.2333, "angle": 6.1 },
+ { "time": 0.3666, "angle": 3.45 },
+ {
+ "time": 0.5,
+ "angle": 5.17,
+ "curve": [ 0, 0, 0.704, 1.61 ]
+ },
+ { "time": 0.6666, "angle": 1.1 },
+ { "time": 0.7333, "angle": 6.09 },
+ { "time": 0.8666, "angle": 2.28 },
+ { "time": 1, "angle": 3.6 }
+ ]
+ }
+ },
+ "slots": {
+ "eyes": {
+ "attachment": [
+ { "time": 0.7, "name": "eyes closed" },
+ { "time": 0.8, "name": null }
+ ]
+ }
+ }
+ }
+}
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/spine/goblins.png b/tests/cpp-tests/Resources/spine/goblins.png
new file mode 100755
index 0000000000..1d6f59e373
Binary files /dev/null and b/tests/cpp-tests/Resources/spine/goblins.png differ
diff --git a/tests/cpp-tests/Resources/spine/spineboy.atlas b/tests/cpp-tests/Resources/spine/spineboy.atlas
new file mode 100755
index 0000000000..1f482c0a1d
--- /dev/null
+++ b/tests/cpp-tests/Resources/spine/spineboy.atlas
@@ -0,0 +1,166 @@
+
+spineboy.png
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+head
+ rotate: false
+ xy: 1, 122
+ size: 121, 132
+ orig: 121, 132
+ offset: 0, 0
+ index: -1
+torso
+ rotate: false
+ xy: 1, 28
+ size: 68, 92
+ orig: 68, 92
+ offset: 0, 0
+ index: -1
+left-pant-bottom
+ rotate: false
+ xy: 1, 4
+ size: 44, 22
+ orig: 44, 22
+ offset: 0, 0
+ index: -1
+right-pant-bottom
+ rotate: false
+ xy: 47, 8
+ size: 46, 18
+ orig: 46, 18
+ offset: 0, 0
+ index: -1
+right-upper-leg
+ rotate: false
+ xy: 71, 50
+ size: 44, 70
+ orig: 44, 70
+ offset: 0, 0
+ index: -1
+pelvis
+ rotate: false
+ xy: 95, 1
+ size: 63, 47
+ orig: 63, 47
+ offset: 0, 0
+ index: -1
+left-upper-leg
+ rotate: false
+ xy: 117, 53
+ size: 33, 67
+ orig: 33, 67
+ offset: 0, 0
+ index: -1
+right-foot
+ rotate: false
+ xy: 160, 224
+ size: 67, 30
+ orig: 67, 30
+ offset: 0, 0
+ index: -1
+left-shoulder
+ rotate: false
+ xy: 124, 201
+ size: 34, 53
+ orig: 34, 53
+ offset: 0, 0
+ index: -1
+left-ankle
+ rotate: false
+ xy: 229, 222
+ size: 25, 32
+ orig: 25, 32
+ offset: 0, 0
+ index: -1
+left-foot
+ rotate: false
+ xy: 160, 192
+ size: 65, 30
+ orig: 65, 30
+ offset: 0, 0
+ index: -1
+neck
+ rotate: false
+ xy: 124, 171
+ size: 34, 28
+ orig: 34, 28
+ offset: 0, 0
+ index: -1
+right-arm
+ rotate: false
+ xy: 124, 124
+ size: 21, 45
+ orig: 21, 45
+ offset: 0, 0
+ index: -1
+right-ankle
+ rotate: false
+ xy: 227, 190
+ size: 25, 30
+ orig: 25, 30
+ offset: 0, 0
+ index: -1
+left-hand
+ rotate: false
+ xy: 147, 131
+ size: 35, 38
+ orig: 35, 38
+ offset: 0, 0
+ index: -1
+left-arm
+ rotate: false
+ xy: 184, 161
+ size: 35, 29
+ orig: 35, 29
+ offset: 0, 0
+ index: -1
+eyes-closed
+ rotate: false
+ xy: 221, 161
+ size: 34, 27
+ orig: 34, 27
+ offset: 0, 0
+ index: -1
+right-lower-leg
+ rotate: false
+ xy: 152, 65
+ size: 51, 64
+ orig: 51, 64
+ offset: 0, 0
+ index: -1
+right-foot-idle
+ rotate: false
+ xy: 184, 131
+ size: 53, 28
+ orig: 53, 28
+ offset: 0, 0
+ index: -1
+left-lower-leg
+ rotate: false
+ xy: 205, 65
+ size: 49, 64
+ orig: 49, 64
+ offset: 0, 0
+ index: -1
+right-shoulder
+ rotate: false
+ xy: 160, 12
+ size: 52, 51
+ orig: 52, 51
+ offset: 0, 0
+ index: -1
+eyes
+ rotate: false
+ xy: 214, 36
+ size: 34, 27
+ orig: 34, 27
+ offset: 0, 0
+ index: -1
+right-hand
+ rotate: false
+ xy: 214, 2
+ size: 32, 32
+ orig: 32, 32
+ offset: 0, 0
+ index: -1
diff --git a/tests/cpp-tests/Resources/spine/spineboy.json b/tests/cpp-tests/Resources/spine/spineboy.json
new file mode 100755
index 0000000000..113e72c335
--- /dev/null
+++ b/tests/cpp-tests/Resources/spine/spineboy.json
@@ -0,0 +1,1002 @@
+{
+"bones": [
+ { "name": "root" },
+ { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 },
+ { "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 },
+ { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 },
+ { "name": "right upper leg", "parent": "hip", "length": 45.76, "x": -18.27, "rotation": -101.13 },
+ { "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 94.95 },
+ { "name": "left lower leg", "parent": "left upper leg", "length": 56.45, "x": 51.78, "y": 3.46, "rotation": -16.65 },
+ { "name": "left shoulder", "parent": "torso", "length": 44.19, "x": 78.96, "y": -15.75, "rotation": -156.96 },
+ { "name": "neck", "parent": "torso", "length": 18.38, "x": 83.64, "y": -1.78, "rotation": 0.9 },
+ { "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 50.21, "y": 0.6, "rotation": -10.7 },
+ { "name": "right shoulder", "parent": "torso", "length": 49.95, "x": 81.9, "y": 6.79, "rotation": 130.6 },
+ { "name": "head", "parent": "neck", "length": 68.28, "x": 19.09, "y": 6.97, "rotation": -8.94 },
+ { "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 44.19, "y": -0.01, "rotation": 28.16 },
+ { "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 64.02, "y": -8.67, "rotation": 102.43 },
+ { "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 49.95, "y": -0.12, "rotation": 40.12 },
+ { "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 },
+ { "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 },
+ { "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }
+],
+"slots": [
+ { "name": "left shoulder", "bone": "left shoulder", "attachment": "left-shoulder" },
+ { "name": "left arm", "bone": "left arm", "attachment": "left-arm" },
+ { "name": "left hand", "bone": "left hand", "attachment": "left-hand" },
+ { "name": "left foot", "bone": "left foot", "attachment": "left-foot" },
+ { "name": "left lower leg", "bone": "left lower leg", "attachment": "left-lower-leg" },
+ { "name": "left upper leg", "bone": "left upper leg", "attachment": "left-upper-leg" },
+ { "name": "pelvis", "bone": "pelvis", "attachment": "pelvis" },
+ { "name": "right foot", "bone": "right foot", "attachment": "right-foot" },
+ { "name": "right lower leg", "bone": "right lower leg", "attachment": "right-lower-leg" },
+ { "name": "right upper leg", "bone": "right upper leg", "attachment": "right-upper-leg" },
+ { "name": "torso", "bone": "torso", "attachment": "torso" },
+ { "name": "neck", "bone": "neck", "attachment": "neck" },
+ { "name": "head", "bone": "head", "attachment": "head" },
+ { "name": "eyes", "bone": "head", "attachment": "eyes" },
+ { "name": "right shoulder", "bone": "right shoulder", "attachment": "right-shoulder", "additive": true },
+ { "name": "right arm", "bone": "right arm", "attachment": "right-arm" },
+ { "name": "right hand", "bone": "right hand", "attachment": "right-hand" },
+ { "name": "bb-head", "bone": "head", "attachment": "bb-head" }
+],
+"skins": {
+ "default": {
+ "bb-head": {
+ "bb-head": {
+ "type": "boundingbox",
+ "vertices": [
+ 55.69696,
+ -44.60648,
+ 8.2226715,
+ -47.609646,
+ -11.244263,
+ -32.942703,
+ -0.05206299,
+ 35.835804,
+ 61.018433,
+ 43.227512,
+ 90.35846,
+ -16.054127,
+ 115.41275,
+ -32.817406,
+ 78.29431,
+ -56.05409
+ ]
+ }
+ },
+ "eyes": {
+ "eyes": { "x": 28.94, "y": -32.92, "rotation": -86.9, "width": 34, "height": 27 },
+ "eyes-closed": { "x": 28.77, "y": -32.86, "rotation": -86.9, "width": 34, "height": 27 }
+ },
+ "head": {
+ "head": { "x": 53.94, "y": -5.75, "rotation": -86.9, "width": 121, "height": 132 }
+ },
+ "left arm": {
+ "left-arm": { "x": 15.11, "y": -0.44, "rotation": 33.84, "width": 35, "height": 29 }
+ },
+ "left foot": {
+ "left-foot": { "x": 24.35, "y": 8.88, "rotation": 3.32, "width": 65, "height": 30 }
+ },
+ "left hand": {
+ "left-hand": { "x": 0.75, "y": 1.86, "rotation": 31.14, "width": 35, "height": 38 }
+ },
+ "left lower leg": {
+ "left-lower-leg": { "x": 24.55, "y": -1.92, "rotation": 105.75, "width": 49, "height": 64 }
+ },
+ "left shoulder": {
+ "left-shoulder": { "x": 23.74, "y": 0.11, "rotation": 62.01, "width": 34, "height": 53 }
+ },
+ "left upper leg": {
+ "left-upper-leg": { "x": 26.12, "y": -1.85, "rotation": 89.09, "width": 33, "height": 67 }
+ },
+ "neck": {
+ "neck": { "x": 9.42, "y": -3.66, "rotation": -100.15, "width": 34, "height": 28 }
+ },
+ "pelvis": {
+ "pelvis": { "x": -4.83, "y": 10.62, "width": 63, "height": 47 }
+ },
+ "right arm": {
+ "right-arm": { "x": 18.34, "y": -2.64, "rotation": 94.32, "width": 21, "height": 45 }
+ },
+ "right foot": {
+ "right-foot": { "x": 19.02, "y": 8.47, "rotation": 1.52, "width": 67, "height": 30 }
+ },
+ "right hand": {
+ "right-hand": { "x": 6.82, "y": 1.25, "rotation": 91.96, "width": 32, "height": 32 }
+ },
+ "right lower leg": {
+ "right-lower-leg": { "x": 23.28, "y": -2.59, "rotation": 111.83, "width": 51, "height": 64 }
+ },
+ "right shoulder": {
+ "right-shoulder": { "x": 25.86, "y": 0.03, "rotation": 134.44, "width": 52, "height": 51 }
+ },
+ "right upper leg": {
+ "right-upper-leg": { "x": 23.03, "y": 0.25, "rotation": 101.13, "width": 44, "height": 70 }
+ },
+ "torso": {
+ "torso": { "x": 44.57, "y": -7.08, "rotation": -94.95, "width": 68, "height": 92 }
+ }
+ }
+},
+"events": {
+ "behind": {},
+ "headAttach": {},
+ "headPop": {}
+},
+"animations": {
+ "drawOrder": {
+ "bones": {
+ "head": {
+ "rotate": [
+ { "time": 0, "angle": 0 },
+ { "time": 0.4827, "angle": -23.11 },
+ { "time": 0.8965, "angle": -56.45 },
+ { "time": 1.3103, "angle": 1.38 },
+ { "time": 1.7931, "angle": 36.12 },
+ { "time": 2.1379, "angle": 1.24 },
+ { "time": 2.6206, "angle": -37.12 },
+ { "time": 2.9666, "angle": 2.07 },
+ { "time": 3.4666, "angle": 34.72 },
+ { "time": 3.9, "angle": 359.99 }
+ ],
+ "translate": [
+ {
+ "time": 0,
+ "x": 0,
+ "y": 0,
+ "curve": [ 0.19, 0.4, 0.586, 0.75 ]
+ },
+ {
+ "time": 0.2758,
+ "x": 57.88,
+ "y": -35.72,
+ "curve": [ 0.39, 0.54, 0.632, 0.72 ]
+ },
+ {
+ "time": 0.4827,
+ "x": 87.26,
+ "y": -87.89,
+ "curve": [ 0.325, 0.23, 0.587, 0.36 ]
+ },
+ {
+ "time": 0.6896,
+ "x": 28.89,
+ "y": -114.62,
+ "curve": [ 0.383, 0.23, 0.736, 0.55 ]
+ },
+ {
+ "time": 0.8965,
+ "x": -76.58,
+ "y": -124.98,
+ "curve": [ 0.129, 0.21, 0.547, 0.64 ]
+ },
+ {
+ "time": 1.1034,
+ "x": -154.37,
+ "y": -77.13,
+ "curve": [ 0.354, 0.48, 0.729, 0.9 ]
+ },
+ {
+ "time": 1.3103,
+ "x": -181.02,
+ "y": 18.56,
+ "curve": [ 0.063, 0.15, 0.52, 0.62 ]
+ },
+ {
+ "time": 1.5862,
+ "x": -150.38,
+ "y": 128.67,
+ "curve": [ 0.381, 0.54, 0.778, 1 ]
+ },
+ {
+ "time": 1.7931,
+ "x": -112.08,
+ "y": 146.28,
+ "curve": [ 0.242, 0, 0.626, 0.45 ]
+ },
+ {
+ "time": 1.931,
+ "x": -63.7,
+ "y": 111.22,
+ "curve": [ 0.398, 0.35, 0.786, 0.76 ]
+ },
+ {
+ "time": 2.1379,
+ "x": -48.94,
+ "y": -1.55,
+ "curve": [ 0.188, 0.21, 0.575, 0.61 ]
+ },
+ {
+ "time": 2.3448,
+ "x": -91.69,
+ "y": -91.93,
+ "curve": [ 0.362, 0.51, 0.766, 1 ]
+ },
+ {
+ "time": 2.6206,
+ "x": -142.79,
+ "y": -126.83,
+ "curve": [ 0.227, 0.34, 0.593, 0.75 ]
+ },
+ {
+ "time": 2.7586,
+ "x": -176.7,
+ "y": -98.32,
+ "curve": [ 0.26, 0.4, 0.612, 0.71 ]
+ },
+ {
+ "time": 2.8965,
+ "x": -163.95,
+ "y": -24.04,
+ "curve": [ 0.338, 0.37, 0.676, 0.71 ]
+ },
+ {
+ "time": 2.9655,
+ "x": -150.17,
+ "y": 10.71,
+ "curve": [ 0.387, 0.61, 0.741, 1 ]
+ },
+ {
+ "time": 3.1034,
+ "x": -102.44,
+ "y": 45.92,
+ "curve": [ 0.31, 0.24, 0.648, 0.58 ]
+ },
+ {
+ "time": 3.2413,
+ "x": -53.99,
+ "y": 70.39,
+ "curve": [ 0.325, 0.29, 0.663, 0.63 ]
+ },
+ {
+ "time": 3.3793,
+ "x": 1.88,
+ "y": 55.54,
+ "curve": [ 0.387, 0.33, 0.769, 0.73 ]
+ },
+ {
+ "time": 3.5862,
+ "x": 34.26,
+ "y": 36.13,
+ "curve": [ 0.206, 0.28, 0.596, 0.67 ]
+ },
+ {
+ "time": 3.7931,
+ "x": 23.94,
+ "y": 1.01,
+ "curve": [ 0.373, 0.56, 0.759, 1 ]
+ },
+ { "time": 4, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0.8275, "x": 1, "y": 1 },
+ { "time": 1.3103, "x": 0.742, "y": 0.742 },
+ { "time": 1.7931, "x": 1, "y": 1 },
+ { "time": 2.1379, "x": 1.502, "y": 1.502 },
+ { "time": 2.6206, "x": 1, "y": 1 },
+ { "time": 2.9655, "x": 0.707, "y": 0.707 },
+ { "time": 3.3793, "x": 1, "y": 1 }
+ ]
+ }
+ },
+ "events": [
+ { "time": 0, "name": "headPop", "string": "pop.wav" },
+ { "time": 1.3103, "name": "behind" },
+ { "time": 2.9655, "name": "behind" },
+ { "time": 4, "name": "headAttach", "string": "attach.wav" }
+ ],
+ "draworder": [
+ {
+ "time": 0.6206,
+ "offsets": [
+ { "slot": "head", "offset": -12 },
+ { "slot": "eyes", "offset": -12 }
+ ]
+ },
+ {
+ "time": 1.7931,
+ "offsets": [
+ { "slot": "head", "offset": 3 },
+ { "slot": "eyes", "offset": 3 }
+ ]
+ },
+ {
+ "time": 2.6206,
+ "offsets": [
+ { "slot": "head", "offset": -12 },
+ { "slot": "eyes", "offset": -12 }
+ ]
+ },
+ { "time": 3.5862 }
+ ]
+ },
+ "jump": {
+ "bones": {
+ "hip": {
+ "rotate": [
+ { "time": 0, "angle": 0, "curve": "stepped" },
+ { "time": 0.9333, "angle": 0, "curve": "stepped" },
+ { "time": 1.3666, "angle": 0 }
+ ],
+ "translate": [
+ { "time": 0, "x": -11.57, "y": -3 },
+ { "time": 0.2333, "x": -16.2, "y": -19.43 },
+ {
+ "time": 0.3333,
+ "x": 7.66,
+ "y": -8.48,
+ "curve": [ 0.057, 0.06, 0.712, 1 ]
+ },
+ { "time": 0.3666, "x": 15.38, "y": 5.01 },
+ { "time": 0.4666, "x": -7.84, "y": 57.22 },
+ {
+ "time": 0.6,
+ "x": -10.81,
+ "y": 96.34,
+ "curve": [ 0.241, 0, 1, 1 ]
+ },
+ { "time": 0.7333, "x": -7.01, "y": 54.7 },
+ { "time": 0.8, "x": -10.58, "y": 32.2 },
+ { "time": 0.9333, "x": -31.99, "y": 0.45 },
+ { "time": 1.0666, "x": -12.48, "y": -29.47 },
+ { "time": 1.3666, "x": -11.57, "y": -3 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "left upper leg": {
+ "rotate": [
+ { "time": 0, "angle": 17.13 },
+ { "time": 0.2333, "angle": 44.35 },
+ { "time": 0.3333, "angle": 16.46 },
+ { "time": 0.4, "angle": -9.88 },
+ { "time": 0.4666, "angle": -11.42 },
+ { "time": 0.5666, "angle": 23.46 },
+ { "time": 0.7666, "angle": 71.82 },
+ { "time": 0.9333, "angle": 65.53 },
+ { "time": 1.0666, "angle": 51.01 },
+ { "time": 1.3666, "angle": 17.13 }
+ ],
+ "translate": [
+ { "time": 0, "x": -3, "y": -2.25, "curve": "stepped" },
+ { "time": 0.9333, "x": -3, "y": -2.25, "curve": "stepped" },
+ { "time": 1.3666, "x": -3, "y": -2.25 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "left lower leg": {
+ "rotate": [
+ { "time": 0, "angle": -16.25 },
+ { "time": 0.2333, "angle": -52.21 },
+ { "time": 0.4, "angle": 15.04 },
+ { "time": 0.4666, "angle": -8.95 },
+ { "time": 0.5666, "angle": -39.53 },
+ { "time": 0.7666, "angle": -27.27 },
+ { "time": 0.9333, "angle": -3.52 },
+ { "time": 1.0666, "angle": -61.92 },
+ { "time": 1.3666, "angle": -16.25 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "left foot": {
+ "rotate": [
+ { "time": 0, "angle": 0.33 },
+ { "time": 0.2333, "angle": 6.2 },
+ { "time": 0.3333, "angle": 14.73 },
+ { "time": 0.4, "angle": -15.54 },
+ { "time": 0.4333, "angle": -21.2 },
+ { "time": 0.5666, "angle": -7.55 },
+ { "time": 0.7666, "angle": -0.67 },
+ { "time": 0.9333, "angle": -0.58 },
+ { "time": 1.0666, "angle": 14.64 },
+ { "time": 1.3666, "angle": 0.33 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "right upper leg": {
+ "rotate": [
+ { "time": 0, "angle": 25.97 },
+ { "time": 0.2333, "angle": 46.43 },
+ { "time": 0.3333, "angle": 22.61 },
+ { "time": 0.4, "angle": 2.13 },
+ {
+ "time": 0.4666,
+ "angle": 0.04,
+ "curve": [ 0, 0, 0.637, 0.98 ]
+ },
+ { "time": 0.6, "angle": 65.55 },
+ { "time": 0.7666, "angle": 64.93 },
+ { "time": 0.9333, "angle": 41.08 },
+ { "time": 1.0666, "angle": 66.25 },
+ { "time": 1.3666, "angle": 25.97 }
+ ],
+ "translate": [
+ { "time": 0, "x": 5.74, "y": 0.61 },
+ { "time": 0.2333, "x": 4.79, "y": 1.79 },
+ { "time": 0.3333, "x": 6.05, "y": -4.55 },
+ { "time": 0.9333, "x": 4.79, "y": 1.79, "curve": "stepped" },
+ { "time": 1.0666, "x": 4.79, "y": 1.79 },
+ { "time": 1.3666, "x": 5.74, "y": 0.61 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "right lower leg": {
+ "rotate": [
+ { "time": 0, "angle": -27.46 },
+ { "time": 0.2333, "angle": -64.03 },
+ { "time": 0.4, "angle": -48.36 },
+ { "time": 0.5666, "angle": -76.86 },
+ { "time": 0.7666, "angle": -26.89 },
+ { "time": 0.9, "angle": -18.97 },
+ { "time": 0.9333, "angle": -14.18 },
+ { "time": 1.0666, "angle": -80.45 },
+ { "time": 1.3666, "angle": -27.46 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "right foot": {
+ "rotate": [
+ { "time": 0, "angle": 1.08 },
+ { "time": 0.2333, "angle": 16.02 },
+ { "time": 0.3, "angle": 12.94 },
+ { "time": 0.3333, "angle": 15.16 },
+ { "time": 0.4, "angle": -14.7 },
+ { "time": 0.4333, "angle": -12.85 },
+ { "time": 0.4666, "angle": -19.18 },
+ { "time": 0.5666, "angle": -15.82 },
+ { "time": 0.6, "angle": -3.59 },
+ { "time": 0.7666, "angle": -3.56 },
+ { "time": 0.9333, "angle": 1.86 },
+ { "time": 1.0666, "angle": 16.02 },
+ { "time": 1.3666, "angle": 1.08 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "torso": {
+ "rotate": [
+ { "time": 0, "angle": -13.35 },
+ { "time": 0.2333, "angle": -48.95 },
+ { "time": 0.4333, "angle": -35.77 },
+ { "time": 0.6, "angle": -4.59 },
+ { "time": 0.7666, "angle": 14.61 },
+ { "time": 0.9333, "angle": 15.74 },
+ { "time": 1.0666, "angle": -32.44 },
+ { "time": 1.3666, "angle": -13.35 }
+ ],
+ "translate": [
+ { "time": 0, "x": -3.67, "y": 1.68, "curve": "stepped" },
+ { "time": 0.9333, "x": -3.67, "y": 1.68, "curve": "stepped" },
+ { "time": 1.3666, "x": -3.67, "y": 1.68 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "neck": {
+ "rotate": [
+ { "time": 0, "angle": 12.78 },
+ { "time": 0.2333, "angle": 16.46 },
+ { "time": 0.4, "angle": 26.49 },
+ { "time": 0.6, "angle": 15.51 },
+ { "time": 0.7666, "angle": 1.34 },
+ { "time": 0.9333, "angle": 2.35 },
+ { "time": 1.0666, "angle": 6.08 },
+ { "time": 1.3, "angle": 21.23 },
+ { "time": 1.3666, "angle": 12.78 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "head": {
+ "rotate": [
+ { "time": 0, "angle": 5.19 },
+ { "time": 0.2333, "angle": 20.27 },
+ { "time": 0.4, "angle": 15.27 },
+ { "time": 0.6, "angle": -24.69 },
+ { "time": 0.7666, "angle": -11.02 },
+ { "time": 0.9333, "angle": -24.38 },
+ { "time": 1.0666, "angle": 11.99 },
+ { "time": 1.3, "angle": 4.86 },
+ { "time": 1.3666, "angle": 5.19 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "left shoulder": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 0.05,
+ "curve": [ 0, 0, 0.62, 1 ]
+ },
+ {
+ "time": 0.2333,
+ "angle": 279.66,
+ "curve": [ 0.218, 0.67, 0.66, 0.99 ]
+ },
+ {
+ "time": 0.5,
+ "angle": 62.27,
+ "curve": [ 0.462, 0, 0.764, 0.58 ]
+ },
+ { "time": 0.9333, "angle": 28.91 },
+ { "time": 1.0666, "angle": -8.62 },
+ { "time": 1.1666, "angle": -18.43 },
+ { "time": 1.3666, "angle": 0.05 }
+ ],
+ "translate": [
+ { "time": 0, "x": -1.76, "y": 0.56, "curve": "stepped" },
+ { "time": 0.9333, "x": -1.76, "y": 0.56, "curve": "stepped" },
+ { "time": 1.3666, "x": -1.76, "y": 0.56 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "left hand": {
+ "rotate": [
+ { "time": 0, "angle": 11.58, "curve": "stepped" },
+ { "time": 0.9333, "angle": 11.58, "curve": "stepped" },
+ { "time": 1.3666, "angle": 11.58 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "left arm": {
+ "rotate": [
+ { "time": 0, "angle": 0.51 },
+ { "time": 0.4333, "angle": 12.82 },
+ { "time": 0.6, "angle": 47.55 },
+ { "time": 0.9333, "angle": 12.82 },
+ { "time": 1.1666, "angle": -6.5 },
+ { "time": 1.3666, "angle": 0.51 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "right shoulder": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 43.82,
+ "curve": [ 0, 0, 0.62, 1 ]
+ },
+ {
+ "time": 0.2333,
+ "angle": -8.74,
+ "curve": [ 0.304, 0.58, 0.709, 0.97 ]
+ },
+ {
+ "time": 0.5333,
+ "angle": -208.02,
+ "curve": [ 0.462, 0, 0.764, 0.58 ]
+ },
+ { "time": 0.9333, "angle": -246.72 },
+ { "time": 1.0666, "angle": -307.13 },
+ { "time": 1.1666, "angle": 37.15 },
+ { "time": 1.3666, "angle": 43.82 }
+ ],
+ "translate": [
+ { "time": 0, "x": -7.84, "y": 7.19, "curve": "stepped" },
+ { "time": 0.9333, "x": -7.84, "y": 7.19, "curve": "stepped" },
+ { "time": 1.3666, "x": -7.84, "y": 7.19 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "right arm": {
+ "rotate": [
+ { "time": 0, "angle": -4.02 },
+ { "time": 0.6, "angle": 17.5 },
+ { "time": 0.9333, "angle": -4.02 },
+ { "time": 1.1666, "angle": -16.72 },
+ { "time": 1.3666, "angle": -4.02 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "right hand": {
+ "rotate": [
+ { "time": 0, "angle": 22.92, "curve": "stepped" },
+ { "time": 0.9333, "angle": 22.92, "curve": "stepped" },
+ { "time": 1.3666, "angle": 22.92 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 0.9333, "x": 0, "y": 0, "curve": "stepped" },
+ { "time": 1.3666, "x": 0, "y": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 0.9333, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ },
+ "root": {
+ "rotate": [
+ { "time": 0, "angle": 0 },
+ { "time": 0.4333, "angle": -14.52 },
+ { "time": 0.8, "angle": 9.86 },
+ { "time": 1.3666, "angle": 0 }
+ ],
+ "scale": [
+ { "time": 0, "x": 1, "y": 1, "curve": "stepped" },
+ { "time": 1.3666, "x": 1, "y": 1 }
+ ]
+ }
+ }
+ },
+ "walk": {
+ "bones": {
+ "left upper leg": {
+ "rotate": [
+ { "time": 0, "angle": -26.55 },
+ { "time": 0.1333, "angle": -8.78 },
+ { "time": 0.2666, "angle": 9.51 },
+ { "time": 0.4, "angle": 30.74 },
+ { "time": 0.5333, "angle": 25.33 },
+ { "time": 0.6666, "angle": 26.11 },
+ { "time": 0.8, "angle": -7.7 },
+ { "time": 0.9333, "angle": -21.19 },
+ { "time": 1.0666, "angle": -26.55 }
+ ],
+ "translate": [
+ { "time": 0, "x": -3, "y": -2.25 },
+ { "time": 0.4, "x": -2.18, "y": -2.25 },
+ { "time": 1.0666, "x": -3, "y": -2.25 }
+ ]
+ },
+ "right upper leg": {
+ "rotate": [
+ { "time": 0, "angle": 42.45 },
+ { "time": 0.1333, "angle": 52.1 },
+ { "time": 0.2666, "angle": 5.96 },
+ { "time": 0.5333, "angle": -16.93 },
+ { "time": 0.6666, "angle": 1.89 },
+ {
+ "time": 0.8,
+ "angle": 28.06,
+ "curve": [ 0.462, 0.11, 1, 1 ]
+ },
+ {
+ "time": 0.9333,
+ "angle": 58.68,
+ "curve": [ 0.5, 0.02, 1, 1 ]
+ },
+ { "time": 1.0666, "angle": 42.45 }
+ ],
+ "translate": [
+ { "time": 0, "x": 8.11, "y": -2.36 },
+ { "time": 0.1333, "x": 10.03, "y": -2.56 },
+ { "time": 0.4, "x": 2.76, "y": -2.97 },
+ { "time": 0.5333, "x": 2.76, "y": -2.81 },
+ { "time": 0.9333, "x": 8.67, "y": -2.54 },
+ { "time": 1.0666, "x": 8.11, "y": -2.36 }
+ ]
+ },
+ "left lower leg": {
+ "rotate": [
+ { "time": 0, "angle": -10.21 },
+ { "time": 0.1333, "angle": -55.64 },
+ { "time": 0.2666, "angle": -68.12 },
+ { "time": 0.5333, "angle": 5.11 },
+ { "time": 0.6666, "angle": -28.29 },
+ { "time": 0.8, "angle": 4.08 },
+ { "time": 0.9333, "angle": 3.53 },
+ { "time": 1.0666, "angle": -10.21 }
+ ]
+ },
+ "left foot": {
+ "rotate": [
+ { "time": 0, "angle": -3.69 },
+ { "time": 0.1333, "angle": -10.42 },
+ { "time": 0.2666, "angle": -17.14 },
+ { "time": 0.4, "angle": -2.83 },
+ { "time": 0.5333, "angle": -3.87 },
+ { "time": 0.6666, "angle": 2.78 },
+ { "time": 0.8, "angle": 1.68 },
+ { "time": 0.9333, "angle": -8.54 },
+ { "time": 1.0666, "angle": -3.69 }
+ ]
+ },
+ "right shoulder": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 20.89,
+ "curve": [ 0.264, 0, 0.75, 1 ]
+ },
+ {
+ "time": 0.1333,
+ "angle": 3.72,
+ "curve": [ 0.272, 0, 0.841, 1 ]
+ },
+ { "time": 0.6666, "angle": -278.28 },
+ { "time": 1.0666, "angle": 20.89 }
+ ],
+ "translate": [
+ { "time": 0, "x": -7.84, "y": 7.19 },
+ { "time": 0.1333, "x": -6.36, "y": 6.42 },
+ { "time": 0.6666, "x": -11.07, "y": 5.25 },
+ { "time": 1.0666, "x": -7.84, "y": 7.19 }
+ ]
+ },
+ "right arm": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": -4.02,
+ "curve": [ 0.267, 0, 0.804, 0.99 ]
+ },
+ {
+ "time": 0.1333,
+ "angle": -13.99,
+ "curve": [ 0.341, 0, 1, 1 ]
+ },
+ {
+ "time": 0.6666,
+ "angle": 36.54,
+ "curve": [ 0.307, 0, 0.787, 0.99 ]
+ },
+ { "time": 1.0666, "angle": -4.02 }
+ ]
+ },
+ "right hand": {
+ "rotate": [
+ { "time": 0, "angle": 22.92 },
+ { "time": 0.4, "angle": -8.97 },
+ { "time": 0.6666, "angle": 0.51 },
+ { "time": 1.0666, "angle": 22.92 }
+ ]
+ },
+ "left shoulder": {
+ "rotate": [
+ { "time": 0, "angle": -1.47 },
+ { "time": 0.1333, "angle": 13.6 },
+ { "time": 0.6666, "angle": 280.74 },
+ { "time": 1.0666, "angle": -1.47 }
+ ],
+ "translate": [
+ { "time": 0, "x": -1.76, "y": 0.56 },
+ { "time": 0.6666, "x": -2.47, "y": 8.14 },
+ { "time": 1.0666, "x": -1.76, "y": 0.56 }
+ ]
+ },
+ "left hand": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 11.58,
+ "curve": [ 0.169, 0.37, 0.632, 1.55 ]
+ },
+ {
+ "time": 0.1333,
+ "angle": 28.13,
+ "curve": [ 0.692, 0, 0.692, 0.99 ]
+ },
+ {
+ "time": 0.6666,
+ "angle": -27.42,
+ "curve": [ 0.117, 0.41, 0.738, 1.76 ]
+ },
+ { "time": 0.8, "angle": -36.32 },
+ { "time": 1.0666, "angle": 11.58 }
+ ]
+ },
+ "left arm": {
+ "rotate": [
+ { "time": 0, "angle": -8.27 },
+ { "time": 0.1333, "angle": 18.43 },
+ { "time": 0.6666, "angle": 0.88 },
+ { "time": 1.0666, "angle": -8.27 }
+ ]
+ },
+ "torso": {
+ "rotate": [
+ { "time": 0, "angle": -10.28 },
+ {
+ "time": 0.1333,
+ "angle": -15.38,
+ "curve": [ 0.545, 0, 1, 1 ]
+ },
+ {
+ "time": 0.4,
+ "angle": -9.78,
+ "curve": [ 0.58, 0.17, 1, 1 ]
+ },
+ { "time": 0.6666, "angle": -15.75 },
+ { "time": 0.9333, "angle": -7.06 },
+ { "time": 1.0666, "angle": -10.28 }
+ ],
+ "translate": [
+ { "time": 0, "x": -3.67, "y": 1.68 },
+ { "time": 0.1333, "x": -3.67, "y": 0.68 },
+ { "time": 0.4, "x": -3.67, "y": 1.97 },
+ { "time": 0.6666, "x": -3.67, "y": -0.14 },
+ { "time": 1.0666, "x": -3.67, "y": 1.68 }
+ ]
+ },
+ "right foot": {
+ "rotate": [
+ { "time": 0, "angle": -5.25 },
+ { "time": 0.2666, "angle": -4.08 },
+ { "time": 0.4, "angle": -6.45 },
+ { "time": 0.5333, "angle": -5.39 },
+ { "time": 0.8, "angle": -11.68 },
+ { "time": 0.9333, "angle": 0.46 },
+ { "time": 1.0666, "angle": -5.25 }
+ ]
+ },
+ "right lower leg": {
+ "rotate": [
+ { "time": 0, "angle": -3.39 },
+ { "time": 0.1333, "angle": -45.53 },
+ { "time": 0.2666, "angle": -2.59 },
+ { "time": 0.5333, "angle": -19.53 },
+ { "time": 0.6666, "angle": -64.8 },
+ {
+ "time": 0.8,
+ "angle": -82.56,
+ "curve": [ 0.557, 0.18, 1, 1 ]
+ },
+ { "time": 1.0666, "angle": -3.39 }
+ ]
+ },
+ "hip": {
+ "rotate": [
+ { "time": 0, "angle": 0, "curve": "stepped" },
+ { "time": 1.0666, "angle": 0 }
+ ],
+ "translate": [
+ { "time": 0, "x": 0, "y": 0 },
+ {
+ "time": 0.1333,
+ "x": 0,
+ "y": -7.61,
+ "curve": [ 0.272, 0.86, 1, 1 ]
+ },
+ { "time": 0.4, "x": 0, "y": 8.7 },
+ { "time": 0.5333, "x": 0, "y": -0.41 },
+ {
+ "time": 0.6666,
+ "x": 0,
+ "y": -7.05,
+ "curve": [ 0.235, 0.89, 1, 1 ]
+ },
+ { "time": 0.8, "x": 0, "y": 2.92 },
+ { "time": 0.9333, "x": 0, "y": 6.78 },
+ { "time": 1.0666, "x": 0, "y": 0 }
+ ]
+ },
+ "neck": {
+ "rotate": [
+ { "time": 0, "angle": 3.6 },
+ { "time": 0.1333, "angle": 17.49 },
+ { "time": 0.2666, "angle": 6.1 },
+ { "time": 0.4, "angle": 3.45 },
+ { "time": 0.5333, "angle": 5.17 },
+ { "time": 0.6666, "angle": 18.36 },
+ { "time": 0.8, "angle": 6.09 },
+ { "time": 0.9333, "angle": 2.28 },
+ { "time": 1.0666, "angle": 3.6 }
+ ]
+ },
+ "head": {
+ "rotate": [
+ {
+ "time": 0,
+ "angle": 3.6,
+ "curve": [ 0, 0, 0.704, 1.61 ]
+ },
+ { "time": 0.1666, "angle": -0.2 },
+ { "time": 0.2666, "angle": 6.1 },
+ { "time": 0.4, "angle": 3.45 },
+ {
+ "time": 0.5333,
+ "angle": 5.17,
+ "curve": [ 0, 0, 0.704, 1.61 ]
+ },
+ { "time": 0.7, "angle": 1.1 },
+ { "time": 0.8, "angle": 6.09 },
+ { "time": 0.9333, "angle": 2.28 },
+ { "time": 1.0666, "angle": 3.6 }
+ ]
+ }
+ }
+ }
+}
+}
\ No newline at end of file
diff --git a/tests/cpp-tests/Resources/spine/spineboy.png b/tests/cpp-tests/Resources/spine/spineboy.png
new file mode 100755
index 0000000000..b8b493dfd1
Binary files /dev/null and b/tests/cpp-tests/Resources/spine/spineboy.png differ
diff --git a/tests/cpp-tests/Resources/spine/sprite.png b/tests/cpp-tests/Resources/spine/sprite.png
new file mode 100755
index 0000000000..91dd465337
Binary files /dev/null and b/tests/cpp-tests/Resources/spine/sprite.png differ
diff --git a/tests/cpp-tests/Resources/zwoptex/grossini-generic.plist b/tests/cpp-tests/Resources/zwoptex/grossini-generic.plist
new file mode 100755
index 0000000000..ca256a58cc
--- /dev/null
+++ b/tests/cpp-tests/Resources/zwoptex/grossini-generic.plist
@@ -0,0 +1,282 @@
+
+
+
+
+ frames
+
+ grossini_dance_generic_01.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 125}, {121, 85}}
+ textureRotated
+
+
+ grossini_dance_generic_02.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{299, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_03.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 236}, {109, 63}}
+ textureRotated
+
+
+ grossini_dance_generic_04.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {75, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {75, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{202, 125}, {75, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_05.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {75, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {75, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{125, 125}, {75, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_06.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{212, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_07.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{279, 125}, {63, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_08.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {51, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{409, 125}, {51, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_09.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {51, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{224, 236}, {109, 51}}
+ textureRotated
+
+
+ grossini_dance_generic_10.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {63, 109}}
+ spriteOffset
+ {6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{344, 125}, {63, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_11.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {63, 109}}
+ spriteOffset
+ {6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{113, 236}, {109, 63}}
+ textureRotated
+
+
+ grossini_dance_generic_12.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 10}, {51, 107}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_13.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{386, 2}, {121, 85}}
+ textureRotated
+
+
+ grossini_dance_generic_14.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 10}, {51, 107}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{89, 2}, {121, 85}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ size
+ {512, 512}
+
+
+
diff --git a/tests/cpp-tests/Resources/zwoptex/grossini-generic.png b/tests/cpp-tests/Resources/zwoptex/grossini-generic.png
new file mode 100755
index 0000000000..5c0bbc67c8
Binary files /dev/null and b/tests/cpp-tests/Resources/zwoptex/grossini-generic.png differ
diff --git a/tests/cpp-tests/Resources/zwoptex/grossini.plist b/tests/cpp-tests/Resources/zwoptex/grossini.plist
new file mode 100755
index 0000000000..d782ca3c8d
--- /dev/null
+++ b/tests/cpp-tests/Resources/zwoptex/grossini.plist
@@ -0,0 +1,198 @@
+
+
+
+
+ frames
+
+ grossini_dance_01.png
+
+ frame
+ {{2, 125}, {85, 121}}
+ offset
+ {0, 0}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_02.png
+
+ frame
+ {{299, 2}, {85, 121}}
+ offset
+ {0, 0}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_03.png
+
+ frame
+ {{2, 236}, {63, 109}}
+ offset
+ {-6, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_04.png
+
+ frame
+ {{202, 125}, {75, 109}}
+ offset
+ {0, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_05.png
+
+ frame
+ {{125, 125}, {75, 109}}
+ offset
+ {0, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_06.png
+
+ frame
+ {{212, 2}, {85, 121}}
+ offset
+ {0, 0}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_07.png
+
+ frame
+ {{279, 125}, {63, 109}}
+ offset
+ {-6, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_08.png
+
+ frame
+ {{409, 125}, {51, 109}}
+ offset
+ {0, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_09.png
+
+ frame
+ {{224, 236}, {51, 109}}
+ offset
+ {0, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_10.png
+
+ frame
+ {{344, 125}, {63, 109}}
+ offset
+ {6, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_11.png
+
+ frame
+ {{113, 236}, {63, 109}}
+ offset
+ {6, -1}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_12.png
+
+ frame
+ {{2, 2}, {85, 121}}
+ offset
+ {0, 0}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_13.png
+
+ frame
+ {{386, 2}, {85, 121}}
+ offset
+ {0, 0}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+ grossini_dance_14.png
+
+ frame
+ {{89, 2}, {85, 121}}
+ offset
+ {0, 0}
+ rotated
+
+ sourceColorRect
+ {85, 121}
+ sourceSize
+ {85, 121}
+
+
+ metadata
+
+ format
+ 2
+ size
+ {512, 512}
+
+
+
diff --git a/tests/cpp-tests/Resources/zwoptex/grossini.png b/tests/cpp-tests/Resources/zwoptex/grossini.png
new file mode 100755
index 0000000000..5c0bbc67c8
Binary files /dev/null and b/tests/cpp-tests/Resources/zwoptex/grossini.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/CocosBuilderExample.ccbproj b/tests/lua-tests/res/cocosbuilderRes/CocosBuilderExample.ccbproj
new file mode 100755
index 0000000000..aeaf3ad7e5
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/CocosBuilderExample.ccbproj
@@ -0,0 +1,72 @@
+
+
+
+
+ deviceOrientationLandscapeLeft
+
+ deviceOrientationLandscapeRight
+
+ deviceOrientationPortrait
+
+ deviceOrientationUpsideDown
+
+ exporter
+ ccbi
+ fileType
+ CocosBuilderProject
+ fileVersion
+ 1
+ flattenPaths
+
+ generatedSpriteSheets
+
+ javascriptBased
+
+ javascriptMainCCB
+
+ onlyPublishCCBs
+
+ publishDirectory
+ .
+ publishDirectoryAndroid
+ .
+ publishDirectoryHTML5
+
+ publishEnabledAndroid
+
+ publishEnabledHTML5
+
+ publishEnablediPhone
+
+ publishResolutionHTML5_height
+ 640
+ publishResolutionHTML5_scale
+ 2
+ publishResolutionHTML5_width
+ 960
+ publishResolution_
+
+ publishResolution_hd
+
+ publishResolution_ipad
+
+ publishResolution_ipadhd
+
+ publishResolution_large
+
+ publishResolution_medium
+
+ publishResolution_small
+
+ publishResolution_xlarge
+
+ publishResolution_xsmall
+
+ publishToZipFile
+
+ resourceAutoScaleFactor
+ 4
+ resourcePaths
+
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/HelloCocosBuilder.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/HelloCocosBuilder.ccb
new file mode 100755
index 0000000000..13f3d4b5fb
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/HelloCocosBuilder.ccb
@@ -0,0 +1,4197 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ HelloCocosBuilder.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ animatedProperties
+
+ 0
+
+ 1
+
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+ mBurstSprite
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 2.5
+ 2.5
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/burst.png
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCParticleSystemQuad
+ children
+
+ customClass
+
+ displayName
+ CCParticleSystemQuad
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ emitterMode
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ posVar
+ type
+ Point
+ value
+
+ 275
+ 0.0
+
+
+
+ name
+ emissionRate
+ type
+ Float
+ value
+ 20
+
+
+ name
+ duration
+ type
+ Float
+ value
+ -1
+
+
+ name
+ totalParticles
+ type
+ Integer
+ value
+ 1000
+
+
+ name
+ life
+ type
+ FloatVar
+ value
+
+ 4.5
+ 0.0
+
+
+
+ name
+ startSize
+ type
+ FloatVar
+ value
+
+ 32
+ 32
+
+
+
+ name
+ endSize
+ type
+ FloatVar
+ value
+
+ 4
+ 0.0
+
+
+
+ name
+ startSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 360
+
+
+
+ name
+ endSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 360
+
+
+
+ name
+ angle
+ type
+ FloatVar
+ value
+
+ 90
+ 5
+
+
+
+ name
+ startColor
+ type
+ Color4FVar
+ value
+
+
+ 0.10550821572542191
+ 0.12098496407270432
+ 0.15217390656471252
+ 0.10000000149011612
+
+
+ 0.0
+ 0.0
+ 0.0
+ 1
+
+
+
+
+ name
+ endColor
+ type
+ Color4FVar
+ value
+
+
+ 0.24492979049682617
+ 0.28085795044898987
+ 0.35326087474822998
+ 1
+
+
+ 0.16847826540470123
+ 0.16847826540470123
+ 0.16847826540470123
+ 0.0
+
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 1
+ 1
+
+
+
+ name
+ gravity
+ type
+ Point
+ value
+
+ -3
+ -10
+
+
+
+ name
+ speed
+ type
+ FloatVar
+ value
+
+ 80
+ 30
+
+
+
+ name
+ tangentialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ radialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ texture
+ type
+ Texture
+ value
+ ccb/particle-snow.png
+
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 1.3666666746139526
+ type
+ 4
+ value
+
+ 0.0
+ 0.0
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 2.4000000953674316
+ type
+ 4
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 13.75
+ 79.375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 0.5
+ 0.5
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.5
+ 0.5
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ time
+ 0.40000000596046448
+ type
+ 3
+ value
+
+ 82.5
+ 137.5
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1.9666666984558105
+ type
+ 3
+ value
+
+ 60.416667938232422
+ 83.75
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ rotation
+ time
+ 0.40000000596046448
+ type
+ 2
+ value
+ 38.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 60.416667938232422
+ 83.75
+
+ name
+ position
+ type
+ Position
+ value
+
+ 60.416667938232422
+ 83.75
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo.png
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ time
+ 1.2666666507720947
+ type
+ 3
+ value
+
+ 130.625
+ 69.0625
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 60.520832061767578
+ 69.0625
+
+
+
+ name
+ position
+ type
+ 3
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 60.520832061767578
+ 69.0625
+
+ name
+ position
+ type
+ Position
+ value
+
+ 60.520832061767578
+ 69.0625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 124
+ 18
+ 86
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ Graphical editor for cocos2d
+
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.30000001192092896
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 0.96666663885116577
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 0.60000002384185791
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.3333333730697632
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.0999999046325684
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.9000000953674316
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.125
+ 57.1875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onMenuTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Menus & Items
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 254
+ 255
+ 254
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.46666666865348816
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.1333333253860474
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 4.4666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.1999998092651367
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.9666666984558105
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 6.7666668891906738
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.875
+ 57.1875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onSpriteTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Sprites & 9 Slice
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.63333332538604736
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.2666666507720947
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.7666668891906738
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 6.5
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.2666668891906738
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.0333337783813477
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.125
+ 41.5625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onButtonTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Buttons & Labels
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.80000001192092896
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.4666666984558105
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.5
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 3.2333333492279053
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 4
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 4.8000001907348633
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.1666665077209473
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.9000000953674316
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 8.6666669845581055
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 9.4666662216186523
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.875
+ 41.5625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onAnimationsTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Animations
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.96666663885116577
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.6333333253860474
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.1000000238418579
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.8333333730697632
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.5999999046325684
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3.4000000953674316
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.125
+ 25.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onParticleSystemTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Particle Systems
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 1.1333333253860474
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.7999999523162842
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 5.9333333969116211
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 6.6666665077209473
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 7.4333333969116211
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.2333335876464844
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.875
+ 25.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onScrollViewTestClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Scroll Views
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ opacity
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.2333333492279053
+ type
+ 5
+ value
+ 0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.7000000476837158
+ type
+ 5
+ value
+ 255
+
+
+ name
+ opacity
+ type
+ 5
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ time
+ 1.2333333492279053
+ type
+ 3
+ value
+
+ -35
+ -69
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1.8666666746139526
+ type
+ 3
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ time
+ 1.2333333492279053
+ type
+ 2
+ value
+ 21.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1.8666666746139526
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 0.0
+ 0.0
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 3
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 1
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/jungle-right.png
+
+
+
+ baseValue
+ 255
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+
+
+ animatedProperties
+
+ 0
+
+ opacity
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.2333333492279053
+ type
+ 5
+ value
+ 0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1.7000000476837158
+ type
+ 5
+ value
+ 255
+
+
+ name
+ opacity
+ type
+ 5
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ name
+ position
+ time
+ 1.3999999761581421
+ type
+ 3
+ value
+
+ -85
+ -118
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 3
+
+ name
+ rotation
+ time
+ 1.3999999761581421
+ type
+ 2
+ value
+ -34
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 0.0
+ 0.0
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/jungle-left.png
+
+
+
+ baseValue
+ 255
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+
+
+ animatedProperties
+
+ 0
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ scale
+ time
+ 0.96666663885116577
+ type
+ 4
+ value
+
+ 0.0
+ 0.30000001192092896
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.6333333253860474
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.1000000238418579
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 1.8333333730697632
+ type
+ 2
+ value
+ -3
+
+
+ easing
+
+ type
+ 10
+
+ name
+ rotation
+ time
+ 2.5999999046325684
+ type
+ 2
+ value
+ 3
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3.4000000953674316
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 28.100000381469727
+ 10.3125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onTimelineCallbackSoundClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Timeline Callback&sound
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 1
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 40
+ 14
+ 1
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ customClass
+ HelloCocosBuilderLayer
+ customProperties
+
+
+ name
+ mCustomPropertyInt
+ optimized
+
+ type
+ 0
+ value
+ 123
+
+
+ name
+ mCustomPropertyFloat
+ optimized
+
+ type
+ 1
+ value
+ 123.440002
+
+
+ name
+ mCustomPropertyBoolean
+ optimized
+
+ type
+ 2
+ value
+ 1
+
+
+ name
+ mCustomPropertyString
+ optimized
+
+ type
+ 3
+ value
+ Hello Custom Property.
+
+
+ displayName
+ HelloCocosBuilder
+ jsController
+ HelloCocosBuilderLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+
+ height
+ 131
+ text
+ Welcome to CocosBuilder!
+
+Check out the Example Xcode project to understand how to connect objects with your code.
+ width
+ 191
+ xPos
+ 28
+ yPos
+ 26
+
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 3
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 3
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Wiggly buttons
+ offset
+ 0.0
+ position
+ 10
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 1
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/HelloCocosBuilder.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/HelloCocosBuilder.ccbi
new file mode 100755
index 0000000000..cb5c1488aa
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/HelloCocosBuilder.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/animated-grossini.plist b/tests/lua-tests/res/cocosbuilderRes/ccb/animated-grossini.plist
new file mode 100755
index 0000000000..2319e72b12
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/animated-grossini.plist
@@ -0,0 +1,139 @@
+
+
+
+
+ frames
+
+ grossini-arm-l.png
+
+ frame
+ {{2,64},{28,26}}
+ offset
+ {2,-2}
+ rotated
+
+ sourceColorRect
+ {{4,5},{28,26}}
+ sourceSize
+ {32,32}
+
+ grossini-arm-r.png
+
+ frame
+ {{32,78},{28,26}}
+ offset
+ {-2,-2}
+ rotated
+
+ sourceColorRect
+ {{0,5},{28,26}}
+ sourceSize
+ {32,32}
+
+ grossini-body.png
+
+ frame
+ {{2,2},{23,43}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{2,1},{23,43}}
+ sourceSize
+ {27,45}
+
+ grossini-eyes-0.png
+
+ frame
+ {{2,92},{23,4}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{1,1},{23,4}}
+ sourceSize
+ {25,6}
+
+ grossini-eyes-1.png
+
+ frame
+ {{2,98},{23,4}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{1,1},{23,4}}
+ sourceSize
+ {25,6}
+
+ grossini-eyes-2.png
+
+ frame
+ {{60,40},{23,2}}
+ offset
+ {0,-1}
+ rotated
+
+ sourceColorRect
+ {{1,3},{23,2}}
+ sourceSize
+ {25,6}
+
+ grossini-head.png
+
+ frame
+ {{2,27},{35,40}}
+ offset
+ {0,2}
+ rotated
+
+ sourceColorRect
+ {{0,0},{35,40}}
+ sourceSize
+ {35,44}
+
+ grossini-leg-l.png
+
+ frame
+ {{44,40},{14,36}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{14,36}}
+ sourceSize
+ {14,36}
+
+ grossini-leg-r.png
+
+ frame
+ {{47,2},{14,36}}
+ offset
+ {0,0}
+ rotated
+
+ sourceColorRect
+ {{0,0},{14,36}}
+ sourceSize
+ {14,36}
+
+
+ metadata
+
+ format
+ 2
+ realTextureFileName
+ animated-grossini.png
+ size
+ {64,128}
+ smartupdate
+ $TexturePacker:SmartUpdate:f64bf1dbb50597d8a1599f1b397b6fdd$
+ textureFileName
+ animated-grossini.png
+
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/animated-grossini.png b/tests/lua-tests/res/cocosbuilderRes/ccb/animated-grossini.png
new file mode 100755
index 0000000000..89736acdab
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/animated-grossini.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-0.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-0.png
new file mode 100755
index 0000000000..66a5d3df71
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-0.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-1.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-1.png
new file mode 100755
index 0000000000..33f8a0c3f0
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-1.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-2.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-2.png
new file mode 100755
index 0000000000..c8532b3e23
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-a-2.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-0.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-0.png
new file mode 100755
index 0000000000..abd7d9a00b
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-0.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-1.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-1.png
new file mode 100755
index 0000000000..b55f91e77c
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-1.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-2.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-2.png
new file mode 100755
index 0000000000..d47c7b6283
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-b-2.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-back-0.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-back-0.png
new file mode 100755
index 0000000000..9caae52746
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-back-0.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-back-1.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-back-1.png
new file mode 100755
index 0000000000..6c7cf5f97a
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-back-1.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-0.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-0.png
new file mode 100755
index 0000000000..2777fd1d5e
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-0.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-1.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-1.png
new file mode 100755
index 0000000000..b3be2a8616
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-1.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-2.png b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-2.png
new file mode 100755
index 0000000000..eab72947de
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/btn-test-2.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/burst.png b/tests/lua-tests/res/cocosbuilderRes/ccb/burst.png
new file mode 100755
index 0000000000..8681474538
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/burst.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimations.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimations.ccb
new file mode 100755
index 0000000000..798f1fc8ac
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimations.ccb
@@ -0,0 +1,3578 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 1
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ Background animation
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestAnimationsSub.ccb
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Idle Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -150
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonIdleClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Idle
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Wave Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonWaveClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Wave
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Jump Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonJumpClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Jump
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ Funky Button
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 150
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonFunkyClicked
+ 1
+ 32
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ Funky
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ MarkerFelt-Thin
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 18
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.40000000596046448
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 100
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ customClass
+
+ displayName
+ Buttons
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 15
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ opt
+ 2
+ type
+ 9
+
+ name
+ position
+ time
+ 0.0
+ type
+ 3
+ value
+
+ 24.375
+ 120
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 50
+ 50
+
+
+
+ name
+ position
+ type
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.0
+ type
+ 2
+ value
+ -46.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ time
+ 0.53333336114883423
+ type
+ 2
+ value
+ 40.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ 77.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Leg right
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -6
+ -18
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.89999997615814209
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-leg-r.png
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ time
+ 0.53333336114883423
+ type
+ 2
+ value
+ -47.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 9
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ -86.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Leg left
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 6
+ -18
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.89999997615814209
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-leg-l.png
+
+
+
+ seqExpanded
+
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.89999997615814209
+ type
+ 2
+ value
+ 86
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.4333332777023315
+ type
+ 2
+ value
+ -30.446964263916016
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 7.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.8666667938232422
+ type
+ 2
+ value
+ -20.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 9.8666667938232422
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 2
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.96666663885116577
+ type
+ 2
+ value
+ 109.5
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.2666666507720947
+ type
+ 2
+ value
+ 72.599998474121094
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.5333333015441895
+ type
+ 2
+ value
+ 93.699996948242188
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.8333333730697632
+ type
+ 2
+ value
+ 64.966659545898438
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.2333333492279053
+ type
+ 2
+ value
+ 90.25
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ 89.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Arm right
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -9
+ 10
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.80000001192092896
+ 0.80000001192092896
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-arm-r.png
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 0.89999997615814209
+ type
+ 2
+ value
+ -95.25
+
+
+ easing
+
+ type
+ 1
+
+ time
+ 1.4333332777023315
+ type
+ 2
+ value
+ 28.431812286376953
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 7.9666666984558105
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 8.8666667938232422
+ type
+ 2
+ value
+ 20.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 9.8666667938232422
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 2
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.5
+ type
+ 2
+ value
+ 18.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.2999999523162842
+ type
+ 2
+ value
+ 18.75
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 3
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 3
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 1
+ type
+ 2
+ value
+ -96.5
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Arm left
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 9
+ 10
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.20000000298023224
+ 0.80000001192092896
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-arm-l.png
+
+
+
+
+
+ animatedProperties
+
+ 4
+
+ opacity
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 1
+ type
+ 5
+ value
+ 255
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 2.2333333492279053
+ type
+ 5
+ value
+ 0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 4.0333333015441895
+ type
+ 5
+ value
+ 255
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 4.5
+ type
+ 5
+ value
+ 127
+
+
+ easing
+
+ type
+ 1
+
+ name
+ opacity
+ time
+ 4.8666667938232422
+ type
+ 5
+ value
+ 255
+
+
+ name
+ opacity
+ type
+ 5
+
+ scale
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 1.7333333492279053
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ easing
+
+ type
+ 10
+
+ name
+ scale
+ time
+ 2.4000000953674316
+ type
+ 4
+ value
+
+ 2
+ 0.5
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ scale
+ time
+ 3.4333333969116211
+ type
+ 4
+ value
+
+ 1
+ 1
+
+
+
+ name
+ scale
+ type
+ 4
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Body
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ baseValue
+
+ 1
+ 1
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-body.png
+
+
+
+ baseValue
+ 255
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+
+
+ animatedProperties
+
+ 4
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 2.4000000953674316
+ type
+ 2
+ value
+ 720
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 5
+ type
+ 2
+ value
+ 0.0
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+
+ animatedProperties
+
+ 1
+
+ displayFrame
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 3.6333334445953369
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 3.8333332538604736
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 4.0333333015441895
+ type
+ 7
+ value
+
+ grossini-eyes-2.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 4.2333331108093262
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 4.4333333969116211
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.0999999046325684
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.3000001907348633
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.5
+ type
+ 7
+ value
+
+ grossini-eyes-2.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.6999998092651367
+ type
+ 7
+ value
+
+ grossini-eyes-1.png
+ ccb/animated-grossini.plist
+
+
+
+ easing
+
+ type
+ 0
+
+ name
+ displayFrame
+ time
+ 6.9000000953674316
+ type
+ 7
+ value
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+
+
+ name
+ displayFrame
+ type
+ 7
+
+ position
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 0.60000002384185791
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1
+ type
+ 3
+ value
+
+ 16
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1.3333333730697632
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2.2666666507720947
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2.5
+ type
+ 3
+ value
+
+ 19
+ 23
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2.9666666984558105
+ type
+ 3
+ value
+
+ 17.5
+ 23
+
+
+
+ name
+ position
+ type
+ 3
+
+
+ 4
+
+ color
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 0.86666667461395264
+ type
+ 6
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 1.3333333730697632
+ type
+ 6
+ value
+
+ 143
+ 243
+ 40
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 1.8333333730697632
+ type
+ 6
+ value
+
+ 223
+ 80
+ 22
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 2.4666666984558105
+ type
+ 6
+ value
+
+ 33
+ 79
+ 251
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 3.0333333015441895
+ type
+ 6
+ value
+
+ 223
+ 88
+ 233
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 3.3666665554046631
+ type
+ 6
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ color
+ type
+ 6
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ Eyes
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 17.5
+ 23
+
+ name
+ position
+ type
+ Position
+ value
+
+ 17.5
+ 23
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ baseValue
+
+ grossini-eyes-0.png
+ ccb/animated-grossini.plist
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-eyes-0.png
+
+
+
+ baseValue
+
+ 255
+ 255
+ 255
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ seqExpanded
+
+
+
+ customClass
+
+ displayName
+ Head
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 34
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/animated-grossini.plist
+ grossini-head.png
+
+
+
+
+
+ customClass
+
+ displayName
+ Grossini
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+
+ 50
+ 50
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 0.0
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ seqExpanded
+
+
+
+ customClass
+ TestAnimationsLayer
+ displayName
+ TestAnimations
+ jsController
+ TestAnimationsLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 2
+ name
+ Intro
+ offset
+ 0.0
+ position
+ 1.7000000476837158
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Idle
+ offset
+ 5.734375
+ position
+ 6.9000000953674316
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 1
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 3
+ name
+ Wave
+ offset
+ 0.0
+ position
+ 3
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 2
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 2
+ name
+ Jump
+ offset
+ 0.0
+ position
+ 2
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 3
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 5
+ name
+ Funky
+ offset
+ 0.0
+ position
+ 5
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 4
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimations.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimations.ccbi
new file mode 100755
index 0000000000..78bb159ae6
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimations.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimationsSub.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimationsSub.ccb
new file mode 100755
index 0000000000..701d00c261
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimationsSub.ccb
@@ -0,0 +1,443 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ animatedProperties
+
+ 0
+
+ color
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 0.0
+ type
+ 6
+ value
+
+ 0
+ 0
+ 0
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ color
+ time
+ 4.8333334922790527
+ type
+ 6
+ value
+
+ 255
+ 254
+ 255
+
+
+
+ name
+ color
+ type
+ 6
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 10
+ type
+ 2
+ value
+ 360
+
+
+ name
+ rotation
+ type
+ 2
+
+
+ 1
+
+ rotation
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 0.0
+ type
+ 2
+ value
+ 0.0
+
+
+ easing
+
+ type
+ 1
+
+ name
+ rotation
+ time
+ 10
+ type
+ 2
+ value
+ 360
+
+
+ name
+ rotation
+ type
+ 2
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 2.5
+ 2.5
+
+ 1
+
+
+
+ baseValue
+ 0.0
+ name
+ rotation
+ type
+ Degrees
+ value
+ 360
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/burst.png
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 100
+
+
+ baseValue
+
+ 255
+ 254
+ 255
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 255
+ 254
+ 255
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ seqExpanded
+
+
+
+ customClass
+
+ displayName
+ CCLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 1024
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 1024
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 2048
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 2048
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Intro
+ offset
+ 0.0
+ position
+ 10
+ resolution
+ 30
+ scale
+ 32
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ 1
+ length
+ 10
+ name
+ Loop
+ offset
+ 0.0
+ position
+ 2.7999999523162842
+ resolution
+ 30
+ scale
+ 32
+ sequenceId
+ 1
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimationsSub.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimationsSub.ccbi
new file mode 100755
index 0000000000..a76b3ad225
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestAnimationsSub.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestButtons.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestButtons.ccb
new file mode 100755
index 0000000000..599d4e5ae3
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestButtons.ccb
@@ -0,0 +1,927 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestButtons.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCControlButton
+ children
+
+ customClass
+
+ displayName
+ CCControlButton
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ ccControl
+ type
+ BlockCCControl
+ value
+
+ onCCControlButtonClicked
+ 1
+ 511
+
+
+
+ name
+ enabled
+ type
+ Check
+ value
+
+
+
+ name
+ title|1
+ type
+ String
+ value
+ CCControlButton
+
+
+ name
+ titleTTF|1
+ type
+ FontTTF
+ value
+ Helvetica-Bold
+
+
+ name
+ titleTTFSize|1
+ type
+ FloatScale
+ value
+
+ 12
+ 0
+
+
+
+ name
+ labelAnchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 200
+ 48
+ 0
+
+
+
+ name
+ zoomOnTouchDown
+ type
+ Check
+ value
+
+
+
+ name
+ backgroundSpriteFrame|1
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-0.png
+
+
+
+ name
+ titleColor|1
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|2
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-test-1.png
+
+
+
+ name
+ titleColor|2
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+ name
+ backgroundSpriteFrame|3
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+ name
+ titleColor|3
+ type
+ Color3
+ value
+
+ 255
+ 255
+ 255
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+ mCCControlEventLabel
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ -50
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ No event received yet
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 25
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 1
+ -2
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 78.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ comic andy.ttf
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 50
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 40
+ 20
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Custom TTF
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Center aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ customClass
+ TestButtonsLayer
+ displayName
+ TestButtons
+ jsController
+ TestButtonsLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestButtons.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestButtons.ccbi
new file mode 100755
index 0000000000..ab4b3f6092
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestButtons.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestHeader.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestHeader.ccb
new file mode 100755
index 0000000000..0f4bbf1444
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestHeader.ccb
@@ -0,0 +1,621 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestHeader.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerColor
+ children
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+ mTestTitleLabelTTF
+ memberVarAssignmentType
+ 2
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 57.5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ MarkerFelt-Wide
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 24
+ 0
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Title will be replaced in code
+
+
+
+
+ baseClass
+ CCMenu
+ children
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -2
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ onBackClicked
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-back-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-back-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+
+
+
+
+
+
+ customClass
+
+ displayName
+ CCMenu
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 30
+ 19
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+
+ customClass
+
+ displayName
+ CCLayerColor
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 0
+ 0
+ 0
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 127
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ customClass
+ TestHeaderLayer
+ displayName
+ TestHeader
+ jsController
+ TestHeaderLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 40
+ 3
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 40
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 40
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestHeader.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestHeader.ccbi
new file mode 100755
index 0000000000..11b4da5db5
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestHeader.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestLabels.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestLabels.ccb
new file mode 100755
index 0000000000..8373201904
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestLabels.ccb
@@ -0,0 +1,899 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestLabels.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 71.666664123535156
+ 73.75
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ Bitmap font
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 55.625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Left aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 36.875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Center aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 18.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 80
+ 15
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Right aligned: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 32.5
+ 76.25
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ comic andy.ttf
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 50
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 40
+ 20
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Custom TTF
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ customClass
+ TestLabelsLayer
+ displayName
+ CCLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestLabels.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestLabels.ccbi
new file mode 100755
index 0000000000..202234d2a6
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestLabels.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestMenus.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestMenus.ccb
new file mode 100755
index 0000000000..297d4961e1
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestMenus.ccb
@@ -0,0 +1,1139 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestMenus.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCMenu
+ children
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 20.833333969116211
+ 5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ onMenuItemAClicked
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-2.png
+
+
+
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ onMenuItemBClicked
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-b-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-b-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-b-2.png
+
+
+
+
+
+ baseClass
+ CCMenuItemImage
+ children
+
+ customClass
+
+ displayName
+ CCMenuItemImage
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 79.166664123535156
+ 5
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ block
+ type
+ Block
+ value
+
+ pressedC:
+ 1
+
+
+
+ name
+ isEnabled
+ type
+ Check
+ value
+
+
+
+ name
+ normalSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-0.png
+
+
+
+ name
+ selectedSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-1.png
+
+
+
+ name
+ disabledSpriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/btn-a-2.png
+
+
+
+
+
+ customClass
+
+ displayName
+ CCMenu
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 3.125
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 1000
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 20.416666030883789
+ 53.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ A
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 49.583332061767578
+ 53.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ B
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 78.75
+ 53.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ C
+
+
+
+
+
+ baseClass
+ CCLabelBMFont
+ children
+
+ customClass
+
+ displayName
+ CCLabelBMFont
+ memberVarAssignmentName
+ mMenuItemStatusLabelBMFont
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 20.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fntFile
+ type
+ FntFile
+ value
+ ccb/markerfelt24shadow.fnt
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+ name
+ string
+ type
+ Text
+ value
+ No button pressed yet
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ customClass
+ TestMenusLayer
+ displayName
+ TestMenus
+ jsController
+ TestMenusLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestMenus.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestMenus.ccbi
new file mode 100755
index 0000000000..b46cd53c75
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestMenus.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestParticleSystems.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestParticleSystems.ccb
new file mode 100755
index 0000000000..66da822173
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestParticleSystems.ccb
@@ -0,0 +1,1122 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestParticleSystems.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCParticleSystemQuad
+ children
+
+ customClass
+
+ displayName
+ CCParticleSystemQuad
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 29.166666030883789
+ 30.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ emitterMode
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ posVar
+ type
+ Point
+ value
+
+ 40
+ 20
+
+
+
+ name
+ emissionRate
+ type
+ Float
+ value
+ 80
+
+
+ name
+ duration
+ type
+ Float
+ value
+ -1
+
+
+ name
+ totalParticles
+ type
+ Integer
+ value
+ 250
+
+
+ name
+ life
+ type
+ FloatVar
+ value
+
+ 3
+ 0.25
+
+
+
+ name
+ startSize
+ type
+ FloatVar
+ value
+
+ 54
+ 10
+
+
+
+ name
+ endSize
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ startSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ endSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ angle
+ type
+ FloatVar
+ value
+
+ 90
+ 10
+
+
+
+ name
+ startColor
+ type
+ Color4FVar
+ value
+
+
+ 0.75999999046325684
+ 0.25
+ 0.11999999731779099
+ 255
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ endColor
+ type
+ Color4FVar
+ value
+
+
+ 0.0
+ 0.0
+ 0.0
+ 255
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 1
+ 1
+
+
+
+ name
+ gravity
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ speed
+ type
+ FloatVar
+ value
+
+ 60
+ 20
+
+
+
+ name
+ tangentialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ radialAccel
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ texture
+ type
+ Texture
+ value
+ ccb/particle-fire.png
+
+
+
+
+ baseClass
+ CCParticleSystemQuad
+ children
+
+ customClass
+
+ displayName
+ CCParticleSystemQuad
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 70.833335876464844
+ 48.125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ emitterMode
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ posVar
+ type
+ Point
+ value
+
+ 40
+ 20
+
+
+
+ name
+ emissionRate
+ type
+ Float
+ value
+ 40
+
+
+ name
+ duration
+ type
+ Float
+ value
+ -1
+
+
+ name
+ totalParticles
+ type
+ Integer
+ value
+ 100
+
+
+ name
+ life
+ type
+ FloatVar
+ value
+
+ 3
+ 0.25
+
+
+
+ name
+ startSize
+ type
+ FloatVar
+ value
+
+ 54
+ 10
+
+
+
+ name
+ endSize
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ startSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 320
+
+
+
+ name
+ endSpin
+ type
+ FloatVar
+ value
+
+ 0.0
+ 320
+
+
+
+ name
+ angle
+ type
+ FloatVar
+ value
+
+ 0.0
+ 360
+
+
+
+ name
+ startColor
+ type
+ Color4FVar
+ value
+
+
+ 0.33126017451286316
+ 0.75999999046325684
+ 0.59423065185546875
+ 1
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ endColor
+ type
+ Color4FVar
+ value
+
+
+ 0.0
+ 0.0
+ 0.0
+ 255
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 1
+ 1
+
+
+
+ name
+ startRadius
+ type
+ FloatVar
+ value
+
+ 70
+ 0.0
+
+
+
+ name
+ endRadius
+ type
+ FloatVar
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ rotatePerSecond
+ type
+ FloatVar
+ value
+
+ 60
+ 20
+
+
+
+ name
+ texture
+ type
+ Texture
+ value
+ ccb/particle-snow.png
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 29.166666030883789
+ 10.3125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Gravity mode
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 70.833335876464844
+ 10.3125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Radius mode
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ customClass
+ TestParticleSystemsLayer
+ displayName
+ CCLayer
+ jsController
+ TestParticleSystemsLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestParticleSystems.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestParticleSystems.ccbi
new file mode 100755
index 0000000000..6917215c04
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestParticleSystems.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViews.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViews.ccb
new file mode 100755
index 0000000000..337adccf29
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViews.ccb
@@ -0,0 +1,535 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestScrollViews.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerColor
+ children
+
+ customClass
+
+ displayName
+ CCLayerColor
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 106
+ 90
+ 84
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ baseClass
+ CCScrollView
+ children
+
+ customClass
+
+ displayName
+ CCScrollView
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 50
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ Float
+ value
+ 1
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ container
+ type
+ CCBFile
+ value
+ ccb/ccb/TestScrollViewsContentA.ccb
+
+
+ name
+ direction
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ clipsToBounds
+ type
+ Check
+ value
+
+
+
+ name
+ bounces
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCScrollView
+ children
+
+ customClass
+
+ displayName
+ CCScrollView
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 50
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ Float
+ value
+ 1
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ container
+ type
+ CCBFile
+ value
+ ccb/ccb/TestScrollViewsContentA.ccb
+
+
+ name
+ direction
+ type
+ IntegerLabeled
+ value
+ 2
+
+
+ name
+ clipsToBounds
+ type
+ Check
+ value
+
+
+
+ name
+ bounces
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ customClass
+ TestScrollViewsLayer
+ displayName
+ TestScrollViews
+ jsController
+ TestScrollViewsLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViews.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViews.ccbi
new file mode 100755
index 0000000000..96741d8bf3
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViews.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViewsContentA.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViewsContentA.ccb
new file mode 100755
index 0000000000..f6b2d1cc04
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViewsContentA.ccb
@@ -0,0 +1,212 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/flower.jpg
+
+
+
+ name
+ blendFunc
+ type
+ Blendmode
+ value
+
+ 770
+ 771
+
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 1024
+ 1024
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 1024
+ name
+ Custom
+ scale
+ 1
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViewsContentA.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViewsContentA.ccbi
new file mode 100755
index 0000000000..e40d878a19
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestScrollViewsContentA.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestSprites.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestSprites.ccb
new file mode 100755
index 0000000000..03f1ae9fd4
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestSprites.ccb
@@ -0,0 +1,1639 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ exportFlattenPaths
+
+ exportPath
+ TestSprites.ccbi
+ exportPlugIn
+ ccbi
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 52
+ 84
+ 236
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 149
+ 0
+ 202
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -60
+ 10
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.40000000596046448
+ 0.40000000596046448
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 127
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 90
+ 90
+ 90
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 5
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.5
+ 0.5
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 63
+ 255
+ 39
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 60
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.60000002384185791
+ 0.60000002384185791
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/logo-icon.png
+
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 26.666666030883789
+ 67.1875
+ 4
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCNode
+ children
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ -50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_05.png
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_06.png
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 0.0
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_13.png
+
+
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ CCSprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 352.15463256835938
+ 60.877250671386719
+ 0
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+ ccb/grossini-generic.plist
+ grossini_dance_generic_13.png
+
+
+
+
+
+ customClass
+
+ displayName
+ CCNode
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 20.208333969116211
+ 20.9375
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.0
+ 0.0
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 0.75999999046325684
+ 0.75999999046325684
+
+ 1
+
+
+
+ name
+ rotation
+ type
+ Degrees
+ value
+ -12
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCScale9Sprite
+ children
+
+ customClass
+
+ displayName
+ CCScale9Sprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 74.166664123535156
+ 65.625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ spriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/scale-9-demo.png
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 150
+ 120
+ 0
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 200
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 255
+ 158
+ 47
+
+
+
+ name
+ insetLeft
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetTop
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetRight
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetBottom
+ type
+ Float
+ value
+ 0.0
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 29.375
+ 47.8125
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Opacity, color & blend mode
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 74.375
+ 79.0625
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ CCScale9Sprite
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50.416667938232422
+ 19.6875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 12
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 0.0
+ 0.0
+ 0
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 0
+
+
+ name
+ string
+ type
+ Text
+ value
+ Sprite sheet & transformation
+
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ baseClass
+ CCScale9Sprite
+ children
+
+ customClass
+
+ displayName
+ CCScale9Sprite
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 82.083328247070312
+ 29.6875
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 1
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ spriteFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/scale-9-demo.png
+
+
+
+ name
+ preferedSize
+ type
+ Size
+ value
+
+ 150
+ 120
+ 0
+
+
+
+ name
+ opacity
+ type
+ Byte
+ value
+ 255
+
+
+ name
+ color
+ type
+ Color3
+ value
+
+ 254
+ 255
+ 254
+
+
+
+ name
+ insetLeft
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetTop
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetRight
+ type
+ Float
+ value
+ 0.0
+
+
+ name
+ insetBottom
+ type
+ Float
+ value
+ 0.0
+
+
+
+
+ customClass
+ TestSpritesLayer
+ displayName
+ CCLayer
+ jsController
+ TestSpritesLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad hd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+ type
+ 10
+
+ chainedSequenceId
+ -1
+ length
+ 10
+ name
+ Default Timeline
+ offset
+ 0.0
+ position
+ 0.0
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestSprites.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestSprites.ccbi
new file mode 100755
index 0000000000..9d0fabf4c1
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestSprites.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestTimelineCallback.ccb b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestTimelineCallback.ccb
new file mode 100755
index 0000000000..46abd370d9
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestTimelineCallback.ccb
@@ -0,0 +1,839 @@
+
+
+
+
+ centeredOrigin
+
+ currentResolution
+ 0
+ currentSequenceId
+ 0
+ fileType
+ CocosBuilder
+ fileVersion
+ 4
+ guides
+
+ jsControlled
+
+ nodeGraph
+
+ baseClass
+ CCLayer
+ children
+
+
+ animatedProperties
+
+ 0
+
+ visible
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ name
+ visible
+ time
+ 0.0
+ type
+ 1
+ value
+
+
+
+ name
+ visible
+ type
+ 1
+
+
+
+ baseClass
+ CCLayerGradient
+ children
+
+ customClass
+
+ displayName
+ CCLayerGradient
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ baseValue
+ 1
+ name
+ visible
+ type
+ Check
+ value
+
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ name
+ startColor
+ type
+ Color3
+ value
+
+ 19
+ 0
+ 255
+
+
+
+ name
+ endColor
+ type
+ Color3
+ value
+
+ 255
+ 33
+ 249
+
+
+
+ name
+ vector
+ type
+ Point
+ value
+
+ 0.0
+ -1
+
+
+
+
+
+ baseClass
+ CCMenu
+ children
+
+ customClass
+
+ displayName
+ CCMenu
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 30
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+
+
+ baseClass
+ CCLabelTTF
+ children
+
+ customClass
+
+ displayName
+ CCLabelTTF
+ memberVarAssignmentName
+ helloLabel
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 50
+ 50
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ fontName
+ type
+ FontTTF
+ value
+ Helvetica
+
+
+ name
+ fontSize
+ type
+ FloatScale
+ value
+
+ 20
+ 1
+
+
+
+ name
+ dimensions
+ type
+ Size
+ value
+
+ 40
+ 20
+ 1
+
+
+
+ name
+ horizontalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ verticalAlignment
+ type
+ IntegerLabeled
+ value
+ 1
+
+
+ name
+ string
+ type
+ Text
+ value
+ Test Callbacks
+
+
+
+
+
+ animatedProperties
+
+ 0
+
+ position
+
+ keyframes
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 0.0
+ type
+ 3
+ value
+
+ 10
+ 10
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 1
+ type
+ 3
+ value
+
+ 10
+ 90
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 2
+ type
+ 3
+ value
+
+ 90
+ 90
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 3
+ type
+ 3
+ value
+
+ 90
+ 10
+
+
+
+ easing
+
+ type
+ 1
+
+ name
+ position
+ time
+ 4
+ type
+ 3
+ value
+
+ 10
+ 10
+
+
+
+ name
+ position
+ type
+ 3
+
+
+
+ baseClass
+ CCSprite
+ children
+
+ customClass
+
+ displayName
+ ccbParticleStars
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 1
+ properties
+
+
+ baseValue
+
+ 10
+ 10
+
+ name
+ position
+ type
+ Position
+ value
+
+ 90
+ 10
+ 4
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ displayFrame
+ type
+ SpriteFrame
+ value
+
+
+ ccb/ccbParticleStars.png
+
+
+
+ seqExpanded
+
+
+
+ baseClass
+ CCBFile
+ children
+
+ customClass
+
+ displayName
+ CCBFile
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ position
+ type
+ Position
+ value
+
+ 0.0
+ 0.0
+ 1
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ccbFile
+ type
+ CCBFile
+ value
+ ccb/ccb/TestHeader.ccb
+
+
+
+
+ customClass
+ TimelineCallbackTestLayer
+ displayName
+ CCLayer
+ jsController
+ TestTimelineLayer
+ memberVarAssignmentName
+
+ memberVarAssignmentType
+ 0
+ properties
+
+
+ name
+ contentSize
+ type
+ Size
+ value
+
+ 100
+ 100
+ 1
+
+
+
+ name
+ anchorPoint
+ type
+ Point
+ value
+
+ 0.5
+ 0.5
+
+
+
+ name
+ scale
+ type
+ ScaleLock
+ value
+
+ 1
+ 1
+
+ 0
+
+
+
+ name
+ ignoreAnchorPointForPosition
+ type
+ Check
+ value
+
+
+
+ name
+ touchEnabled
+ platform
+ iOS
+ type
+ Check
+ value
+
+
+
+ name
+ mouseEnabled
+ platform
+ Mac
+ type
+ Check
+ value
+
+
+
+ selected
+
+
+ notes
+
+ resolutions
+
+
+ centeredOrigin
+
+ ext
+ iphone
+ height
+ 320
+ name
+ iPhone Landscape
+ scale
+ 1
+ width
+ 480
+
+
+ centeredOrigin
+
+ ext
+ ipad iphonehd
+ height
+ 768
+ name
+ iPad Landscape
+ scale
+ 2
+ width
+ 1024
+
+
+ sequences
+
+
+ autoPlay
+
+ callbackChannel
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 1
+ type
+ 10
+ value
+
+ onCallback1
+ 1
+
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 3
+ type
+ 10
+ value
+
+ onCallback2
+ 1
+
+
+
+ type
+ 10
+
+ chainedSequenceId
+ 0
+ length
+ 4
+ name
+ Default Timeline
+ offset
+ 0.85765171051025391
+ position
+ 3
+ resolution
+ 30
+ scale
+ 128
+ sequenceId
+ 0
+ soundChannel
+
+ keyframes
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 1
+ type
+ 9
+ value
+
+ ccb/gem-0.wav
+ 1
+ 0.0
+ 1
+
+
+
+ easing
+
+ type
+ 0
+
+ time
+ 3
+ type
+ 9
+ value
+
+ ccb/gem-1.wav
+ 1
+ 0.0
+ 1
+
+
+
+ type
+ 9
+
+
+
+ stageBorder
+ 0
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestTimelineCallback.ccbi b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestTimelineCallback.ccbi
new file mode 100755
index 0000000000..d27a66662d
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccb/TestTimelineCallback.ccbi differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/ccbParticleStars.png b/tests/lua-tests/res/cocosbuilderRes/ccb/ccbParticleStars.png
new file mode 100755
index 0000000000..f493dcc334
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/ccbParticleStars.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/comic andy.ttf b/tests/lua-tests/res/cocosbuilderRes/ccb/comic andy.ttf
new file mode 100755
index 0000000000..a68e94d66d
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/comic andy.ttf differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/fileLookup.plist b/tests/lua-tests/res/cocosbuilderRes/ccb/fileLookup.plist
new file mode 100755
index 0000000000..7a04cd9ea7
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/fileLookup.plist
@@ -0,0 +1,13 @@
+
+
+
+
+ filenames
+
+ metadata
+
+ version
+ 1
+
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/flower.jpg b/tests/lua-tests/res/cocosbuilderRes/ccb/flower.jpg
new file mode 100755
index 0000000000..38e3a5faba
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/flower.jpg differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/gem-0.wav b/tests/lua-tests/res/cocosbuilderRes/ccb/gem-0.wav
new file mode 100755
index 0000000000..13382b4a2f
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/gem-0.wav differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/gem-1.wav b/tests/lua-tests/res/cocosbuilderRes/ccb/gem-1.wav
new file mode 100755
index 0000000000..5a60849ce6
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/gem-1.wav differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/grossini-generic.plist b/tests/lua-tests/res/cocosbuilderRes/ccb/grossini-generic.plist
new file mode 100755
index 0000000000..ca256a58cc
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/grossini-generic.plist
@@ -0,0 +1,282 @@
+
+
+
+
+ frames
+
+ grossini_dance_generic_01.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 125}, {121, 85}}
+ textureRotated
+
+
+ grossini_dance_generic_02.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{299, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_03.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 236}, {109, 63}}
+ textureRotated
+
+
+ grossini_dance_generic_04.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {75, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {75, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{202, 125}, {75, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_05.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {75, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {75, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{125, 125}, {75, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_06.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{212, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_07.png
+
+ aliases
+
+ spriteColorRect
+ {{5, 7}, {63, 109}}
+ spriteOffset
+ {-6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{279, 125}, {63, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_08.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {51, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{409, 125}, {51, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_09.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, -1}
+ spriteSize
+ {51, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{224, 236}, {109, 51}}
+ textureRotated
+
+
+ grossini_dance_generic_10.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {63, 109}}
+ spriteOffset
+ {6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{344, 125}, {63, 109}}
+ textureRotated
+
+
+ grossini_dance_generic_11.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {63, 109}}
+ spriteOffset
+ {6, -1}
+ spriteSize
+ {63, 109}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{113, 236}, {109, 63}}
+ textureRotated
+
+
+ grossini_dance_generic_12.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 10}, {51, 107}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{2, 2}, {85, 121}}
+ textureRotated
+
+
+ grossini_dance_generic_13.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 7}, {51, 109}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{386, 2}, {121, 85}}
+ textureRotated
+
+
+ grossini_dance_generic_14.png
+
+ aliases
+
+ spriteColorRect
+ {{17, 10}, {51, 107}}
+ spriteOffset
+ {0, 0}
+ spriteSize
+ {85, 121}
+ spriteSourceSize
+ {85, 121}
+ spriteTrimmed
+
+ textureRect
+ {{89, 2}, {121, 85}}
+ textureRotated
+
+
+
+ metadata
+
+ format
+ 3
+ size
+ {512, 512}
+
+
+
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/grossini-generic.png b/tests/lua-tests/res/cocosbuilderRes/ccb/grossini-generic.png
new file mode 100755
index 0000000000..5c0bbc67c8
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/grossini-generic.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/jungle-left.png b/tests/lua-tests/res/cocosbuilderRes/ccb/jungle-left.png
new file mode 100755
index 0000000000..79bbf20334
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/jungle-left.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/jungle-right.png b/tests/lua-tests/res/cocosbuilderRes/ccb/jungle-right.png
new file mode 100755
index 0000000000..8da61b9f58
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/jungle-right.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/jungle.png b/tests/lua-tests/res/cocosbuilderRes/ccb/jungle.png
new file mode 100755
index 0000000000..b3ddd92d2b
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/jungle.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/logo-icon.png b/tests/lua-tests/res/cocosbuilderRes/ccb/logo-icon.png
new file mode 100755
index 0000000000..c668736dc7
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/logo-icon.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/logo.png b/tests/lua-tests/res/cocosbuilderRes/ccb/logo.png
new file mode 100755
index 0000000000..a4cd20c20e
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/logo.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/markerfelt24shadow.fnt b/tests/lua-tests/res/cocosbuilderRes/ccb/markerfelt24shadow.fnt
new file mode 100755
index 0000000000..2685fbcab6
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/ccb/markerfelt24shadow.fnt
@@ -0,0 +1,3732 @@
+info face="MarkerFelt-Thin" size=24 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=2,2
+common lineHeight=26 base=21 scaleW=256 scaleH=256 pages=1 packed=0
+page id=0 file="markerfelt24shadow.png"
+chars count=95
+char id=106 x=2 y=2 width=10 height=27 xoffset=-2 yoffset=1 xadvance=5 page=0 chnl=0 letter="j"
+char id=87 x=14 y=2 width=27 height=26 xoffset=0 yoffset=-1 xadvance=23 page=0 chnl=0 letter="W"
+char id=81 x=43 y=2 width=18 height=26 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="Q"
+char id=72 x=63 y=2 width=15 height=26 xoffset=1 yoffset=-1 xadvance=12 page=0 chnl=0 letter="H"
+char id=77 x=80 y=2 width=25 height=25 xoffset=1 yoffset=-0 xadvance=22 page=0 chnl=0 letter="M"
+char id=37 x=107 y=2 width=20 height=25 xoffset=1 yoffset=-0 xadvance=17 page=0 chnl=0 letter="%"
+char id=88 x=129 y=2 width=19 height=25 xoffset=0 yoffset=-0 xadvance=15 page=0 chnl=0 letter="X"
+char id=89 x=150 y=2 width=19 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="Y"
+char id=90 x=171 y=2 width=19 height=25 xoffset=0 yoffset=-1 xadvance=14 page=0 chnl=0 letter="Z"
+char id=65 x=192 y=2 width=18 height=25 xoffset=1 yoffset=-0 xadvance=15 page=0 chnl=0 letter="A"
+char id=75 x=212 y=2 width=18 height=25 xoffset=1 yoffset=-0 xadvance=13 page=0 chnl=0 letter="K"
+char id=52 x=232 y=2 width=18 height=25 xoffset=0 yoffset=-0 xadvance=14 page=0 chnl=0 letter="4"
+char id=78 x=2 y=31 width=17 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="N"
+char id=86 x=21 y=31 width=17 height=25 xoffset=0 yoffset=-0 xadvance=13 page=0 chnl=0 letter="V"
+char id=53 x=40 y=31 width=17 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="5"
+char id=71 x=59 y=31 width=16 height=25 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="G"
+char id=79 x=77 y=31 width=16 height=25 xoffset=1 yoffset=-0 xadvance=13 page=0 chnl=0 letter="O"
+char id=83 x=95 y=31 width=16 height=25 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="S"
+char id=84 x=113 y=31 width=16 height=25 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="T"
+char id=85 x=131 y=31 width=16 height=25 xoffset=1 yoffset=-0 xadvance=13 page=0 chnl=0 letter="U"
+char id=51 x=149 y=31 width=16 height=25 xoffset=1 yoffset=-1 xadvance=14 page=0 chnl=0 letter="3"
+char id=55 x=167 y=31 width=16 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="7"
+char id=66 x=185 y=31 width=15 height=25 xoffset=1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="B"
+char id=67 x=202 y=31 width=15 height=25 xoffset=0 yoffset=-0 xadvance=11 page=0 chnl=0 letter="C"
+char id=68 x=219 y=31 width=15 height=25 xoffset=1 yoffset=-0 xadvance=12 page=0 chnl=0 letter="D"
+char id=80 x=236 y=31 width=15 height=25 xoffset=1 yoffset=-0 xadvance=11 page=0 chnl=0 letter="P"
+char id=104 x=2 y=58 width=15 height=25 xoffset=1 yoffset=-0 xadvance=11 page=0 chnl=0 letter="h"
+char id=54 x=19 y=58 width=15 height=25 xoffset=2 yoffset=-0 xadvance=14 page=0 chnl=0 letter="6"
+char id=57 x=36 y=58 width=15 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="9"
+char id=48 x=53 y=58 width=15 height=25 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="0"
+char id=74 x=70 y=58 width=14 height=25 xoffset=0 yoffset=-0 xadvance=10 page=0 chnl=0 letter="J"
+char id=76 x=86 y=58 width=14 height=25 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="L"
+char id=102 x=102 y=58 width=14 height=25 xoffset=0 yoffset=-0 xadvance=9 page=0 chnl=0 letter="f"
+char id=56 x=118 y=58 width=14 height=25 xoffset=2 yoffset=-0 xadvance=14 page=0 chnl=0 letter="8"
+char id=63 x=134 y=58 width=14 height=25 xoffset=0 yoffset=-0 xadvance=10 page=0 chnl=0 letter="?"
+char id=69 x=150 y=58 width=13 height=25 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="E"
+char id=70 x=165 y=58 width=13 height=25 xoffset=1 yoffset=-0 xadvance=10 page=0 chnl=0 letter="F"
+char id=91 x=180 y=58 width=13 height=25 xoffset=0 yoffset=-0 xadvance=9 page=0 chnl=0 letter="["
+char id=93 x=195 y=58 width=13 height=25 xoffset=0 yoffset=-0 xadvance=9 page=0 chnl=0 letter="]"
+char id=123 x=210 y=58 width=13 height=25 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 letter="{"
+char id=125 x=225 y=58 width=13 height=25 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 letter="}"
+char id=49 x=240 y=58 width=11 height=25 xoffset=3 yoffset=-0 xadvance=14 page=0 chnl=0 letter="1"
+char id=40 x=2 y=85 width=10 height=25 xoffset=1 yoffset=-1 xadvance=6 page=0 chnl=0 letter="("
+char id=41 x=14 y=85 width=10 height=25 xoffset=1 yoffset=-1 xadvance=6 page=0 chnl=0 letter=")"
+char id=108 x=26 y=85 width=8 height=25 xoffset=1 yoffset=-0 xadvance=5 page=0 chnl=0 letter="l"
+char id=124 x=36 y=85 width=8 height=25 xoffset=1 yoffset=-0 xadvance=5 page=0 chnl=0 letter="|"
+char id=64 x=46 y=85 width=25 height=24 xoffset=1 yoffset=-0 xadvance=22 page=0 chnl=0 letter="@"
+char id=82 x=73 y=85 width=18 height=24 xoffset=1 yoffset=1 xadvance=14 page=0 chnl=0 letter="R"
+char id=38 x=93 y=85 width=18 height=24 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0 letter="&"
+char id=50 x=113 y=85 width=17 height=24 xoffset=1 yoffset=-0 xadvance=14 page=0 chnl=0 letter="2"
+char id=47 x=132 y=85 width=17 height=24 xoffset=0 yoffset=-0 xadvance=12 page=0 chnl=0 letter="/"
+char id=92 x=151 y=85 width=17 height=24 xoffset=0 yoffset=-0 xadvance=13 page=0 chnl=0 letter="\"
+char id=107 x=170 y=85 width=16 height=24 xoffset=1 yoffset=1 xadvance=12 page=0 chnl=0 letter="k"
+char id=36 x=188 y=85 width=16 height=24 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0 letter="$"
+char id=73 x=206 y=85 width=9 height=24 xoffset=1 yoffset=-0 xadvance=6 page=0 chnl=0 letter="I"
+char id=105 x=217 y=85 width=8 height=24 xoffset=1 yoffset=1 xadvance=5 page=0 chnl=0 letter="i"
+char id=33 x=227 y=85 width=8 height=24 xoffset=1 yoffset=1 xadvance=5 page=0 chnl=0 letter="!"
+char id=121 x=237 y=85 width=16 height=23 xoffset=-0 yoffset=6 xadvance=11 page=0 chnl=0 letter="y"
+char id=98 x=2 y=112 width=14 height=23 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0 letter="b"
+char id=100 x=18 y=112 width=14 height=23 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 letter="d"
+char id=112 x=34 y=112 width=14 height=23 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="p"
+char id=113 x=50 y=112 width=14 height=23 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="q"
+char id=103 x=66 y=112 width=13 height=23 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0 letter="g"
+char id=116 x=81 y=112 width=14 height=22 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0 letter="t"
+char id=59 x=97 y=112 width=10 height=20 xoffset=-1 yoffset=7 xadvance=5 page=0 chnl=0 letter=";"
+char id=119 x=109 y=112 width=23 height=19 xoffset=-1 yoffset=6 xadvance=17 page=0 chnl=0 letter="w"
+char id=109 x=134 y=112 width=21 height=19 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=0 letter="m"
+char id=118 x=157 y=112 width=16 height=19 xoffset=-1 yoffset=6 xadvance=11 page=0 chnl=0 letter="v"
+char id=122 x=175 y=112 width=16 height=19 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0 letter="z"
+char id=97 x=193 y=112 width=15 height=19 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0 letter="a"
+char id=110 x=210 y=112 width=15 height=19 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0 letter="n"
+char id=111 x=227 y=112 width=14 height=19 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0 letter="o"
+char id=114 x=2 y=137 width=14 height=19 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="r"
+char id=120 x=18 y=137 width=14 height=19 xoffset=-0 yoffset=6 xadvance=10 page=0 chnl=0 letter="x"
+char id=99 x=34 y=137 width=13 height=19 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="c"
+char id=101 x=49 y=137 width=13 height=19 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="e"
+char id=115 x=64 y=137 width=13 height=19 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0 letter="s"
+char id=117 x=79 y=137 width=13 height=19 xoffset=1 yoffset=6 xadvance=10 page=0 chnl=0 letter="u"
+char id=60 x=94 y=137 width=12 height=18 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="<"
+char id=62 x=108 y=137 width=12 height=18 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter=">"
+char id=58 x=122 y=137 width=8 height=18 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=0 letter=":"
+char id=35 x=132 y=137 width=17 height=17 xoffset=0 yoffset=5 xadvance=14 page=0 chnl=0 letter="#"
+char id=43 x=151 y=137 width=14 height=15 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0 letter="+"
+char id=42 x=167 y=137 width=15 height=13 xoffset=0 yoffset=3 xadvance=11 page=0 chnl=0 letter="*"
+char id=61 x=184 y=137 width=12 height=12 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0 letter="="
+char id=34 x=198 y=137 width=11 height=12 xoffset=0 yoffset=-0 xadvance=7 page=0 chnl=0 letter="""
+char id=39 x=211 y=137 width=7 height=11 xoffset=0 yoffset=-0 xadvance=4 page=0 chnl=0 letter="'"
+char id=96 x=220 y=137 width=9 height=10 xoffset=0 yoffset=-0 xadvance=5 page=0 chnl=0 letter="`"
+char id=44 x=231 y=137 width=9 height=10 xoffset=-1 yoffset=17 xadvance=5 page=0 chnl=0 letter=","
+char id=94 x=242 y=137 width=11 height=9 xoffset=0 yoffset=-0 xadvance=7 page=0 chnl=0 letter="^"
+char id=46 x=2 y=158 width=8 height=9 xoffset=1 yoffset=15 xadvance=5 page=0 chnl=0 letter="."
+char id=95 x=12 y=158 width=15 height=8 xoffset=0 yoffset=21 xadvance=12 page=0 chnl=0 letter="_"
+char id=45 x=29 y=158 width=12 height=8 xoffset=1 yoffset=10 xadvance=9 page=0 chnl=0 letter="-"
+char id=126 x=43 y=158 width=12 height=8 xoffset=0 yoffset=-0 xadvance=8 page=0 chnl=0 letter="~"
+char id=32 x=57 y=158 width=0 height=0 xoffset=6 yoffset=41 xadvance=6 page=0 chnl=0 letter="space"
+kernings count=3632
+kerning first=106 second=106 amount=2
+kerning first=106 second=102 amount=1
+kerning first=106 second=56 amount=-1
+kerning first=106 second=63 amount=1
+kerning first=106 second=49 amount=-2
+kerning first=106 second=40 amount=1
+kerning first=106 second=108 amount=1
+kerning first=106 second=107 amount=1
+kerning first=106 second=105 amount=1
+kerning first=106 second=33 amount=1
+kerning first=106 second=121 amount=1
+kerning first=106 second=98 amount=1
+kerning first=106 second=100 amount=1
+kerning first=106 second=112 amount=1
+kerning first=106 second=103 amount=1
+kerning first=106 second=116 amount=1
+kerning first=106 second=59 amount=2
+kerning first=106 second=119 amount=2
+kerning first=106 second=118 amount=2
+kerning first=106 second=122 amount=1
+kerning first=106 second=97 amount=1
+kerning first=106 second=110 amount=1
+kerning first=106 second=111 amount=1
+kerning first=106 second=114 amount=1
+kerning first=106 second=120 amount=1
+kerning first=106 second=99 amount=1
+kerning first=106 second=101 amount=1
+kerning first=106 second=115 amount=1
+kerning first=106 second=117 amount=1
+kerning first=106 second=34 amount=1
+kerning first=106 second=39 amount=1
+kerning first=106 second=44 amount=1
+kerning first=106 second=46 amount=1
+kerning first=87 second=87 amount=1
+kerning first=87 second=81 amount=-1
+kerning first=87 second=88 amount=1
+kerning first=87 second=89 amount=1
+kerning first=87 second=90 amount=-1
+kerning first=87 second=65 amount=-3
+kerning first=87 second=75 amount=1
+kerning first=87 second=52 amount=-2
+kerning first=87 second=86 amount=1
+kerning first=87 second=53 amount=-1
+kerning first=87 second=71 amount=-1
+kerning first=87 second=79 amount=-1
+kerning first=87 second=83 amount=-1
+kerning first=87 second=85 amount=1
+kerning first=87 second=51 amount=-2
+kerning first=87 second=55 amount=-1
+kerning first=87 second=66 amount=1
+kerning first=87 second=67 amount=-1
+kerning first=87 second=80 amount=1
+kerning first=87 second=54 amount=-2
+kerning first=87 second=57 amount=-2
+kerning first=87 second=48 amount=-2
+kerning first=87 second=74 amount=-2
+kerning first=87 second=76 amount=1
+kerning first=87 second=102 amount=-1
+kerning first=87 second=56 amount=-2
+kerning first=87 second=93 amount=1
+kerning first=87 second=49 amount=-2
+kerning first=87 second=41 amount=1
+kerning first=87 second=108 amount=1
+kerning first=87 second=64 amount=-3
+kerning first=87 second=82 amount=1
+kerning first=87 second=50 amount=-2
+kerning first=87 second=47 amount=-3
+kerning first=87 second=92 amount=1
+kerning first=87 second=107 amount=1
+kerning first=87 second=73 amount=1
+kerning first=87 second=33 amount=1
+kerning first=87 second=100 amount=-2
+kerning first=87 second=112 amount=-1
+kerning first=87 second=113 amount=-2
+kerning first=87 second=103 amount=-2
+kerning first=87 second=116 amount=-1
+kerning first=87 second=59 amount=-2
+kerning first=87 second=109 amount=-1
+kerning first=87 second=122 amount=-2
+kerning first=87 second=97 amount=-1
+kerning first=87 second=110 amount=-1
+kerning first=87 second=111 amount=-2
+kerning first=87 second=114 amount=-1
+kerning first=87 second=120 amount=-1
+kerning first=87 second=99 amount=-2
+kerning first=87 second=101 amount=-2
+kerning first=87 second=115 amount=-2
+kerning first=87 second=117 amount=-1
+kerning first=87 second=58 amount=-2
+kerning first=87 second=35 amount=-1
+kerning first=87 second=34 amount=1
+kerning first=87 second=39 amount=2
+kerning first=87 second=44 amount=-4
+kerning first=87 second=46 amount=-3
+kerning first=87 second=45 amount=-2
+kerning first=81 second=106 amount=3
+kerning first=81 second=72 amount=1
+kerning first=81 second=77 amount=1
+kerning first=81 second=88 amount=2
+kerning first=81 second=89 amount=-1
+kerning first=81 second=90 amount=1
+kerning first=81 second=65 amount=1
+kerning first=81 second=75 amount=1
+kerning first=81 second=78 amount=1
+kerning first=81 second=86 amount=-1
+kerning first=81 second=51 amount=-1
+kerning first=81 second=55 amount=1
+kerning first=81 second=66 amount=1
+kerning first=81 second=67 amount=1
+kerning first=81 second=68 amount=1
+kerning first=81 second=80 amount=1
+kerning first=81 second=104 amount=1
+kerning first=81 second=54 amount=-1
+kerning first=81 second=57 amount=-1
+kerning first=81 second=76 amount=1
+kerning first=81 second=102 amount=1
+kerning first=81 second=56 amount=-1
+kerning first=81 second=69 amount=1
+kerning first=81 second=70 amount=1
+kerning first=81 second=93 amount=1
+kerning first=81 second=49 amount=-2
+kerning first=81 second=40 amount=1
+kerning first=81 second=41 amount=1
+kerning first=81 second=108 amount=2
+kerning first=81 second=82 amount=1
+kerning first=81 second=50 amount=1
+kerning first=81 second=47 amount=1
+kerning first=81 second=92 amount=-1
+kerning first=81 second=107 amount=2
+kerning first=81 second=73 amount=1
+kerning first=81 second=105 amount=2
+kerning first=81 second=33 amount=2
+kerning first=81 second=121 amount=1
+kerning first=81 second=98 amount=2
+kerning first=81 second=112 amount=2
+kerning first=81 second=103 amount=1
+kerning first=81 second=116 amount=1
+kerning first=81 second=59 amount=3
+kerning first=81 second=119 amount=1
+kerning first=81 second=118 amount=1
+kerning first=81 second=122 amount=2
+kerning first=81 second=97 amount=2
+kerning first=81 second=110 amount=2
+kerning first=81 second=111 amount=1
+kerning first=81 second=114 amount=2
+kerning first=81 second=120 amount=2
+kerning first=81 second=99 amount=1
+kerning first=81 second=115 amount=1
+kerning first=81 second=117 amount=1
+kerning first=81 second=58 amount=2
+kerning first=81 second=44 amount=3
+kerning first=81 second=46 amount=2
+kerning first=72 second=106 amount=1
+kerning first=72 second=87 amount=1
+kerning first=72 second=81 amount=1
+kerning first=72 second=72 amount=1
+kerning first=72 second=88 amount=1
+kerning first=72 second=75 amount=1
+kerning first=72 second=52 amount=1
+kerning first=72 second=86 amount=1
+kerning first=72 second=71 amount=1
+kerning first=72 second=79 amount=1
+kerning first=72 second=85 amount=1
+kerning first=72 second=51 amount=-1
+kerning first=72 second=66 amount=1
+kerning first=72 second=67 amount=1
+kerning first=72 second=80 amount=1
+kerning first=72 second=104 amount=1
+kerning first=72 second=57 amount=-1
+kerning first=72 second=76 amount=1
+kerning first=72 second=102 amount=1
+kerning first=72 second=56 amount=-1
+kerning first=72 second=69 amount=1
+kerning first=72 second=93 amount=1
+kerning first=72 second=49 amount=-2
+kerning first=72 second=40 amount=1
+kerning first=72 second=41 amount=1
+kerning first=72 second=108 amount=1
+kerning first=72 second=82 amount=1
+kerning first=72 second=92 amount=1
+kerning first=72 second=107 amount=1
+kerning first=72 second=73 amount=1
+kerning first=72 second=105 amount=1
+kerning first=72 second=33 amount=1
+kerning first=72 second=121 amount=1
+kerning first=72 second=98 amount=1
+kerning first=72 second=100 amount=1
+kerning first=72 second=112 amount=1
+kerning first=72 second=113 amount=1
+kerning first=72 second=103 amount=1
+kerning first=72 second=116 amount=2
+kerning first=72 second=59 amount=1
+kerning first=72 second=119 amount=1
+kerning first=72 second=118 amount=1
+kerning first=72 second=97 amount=1
+kerning first=72 second=110 amount=1
+kerning first=72 second=111 amount=1
+kerning first=72 second=114 amount=1
+kerning first=72 second=120 amount=1
+kerning first=72 second=99 amount=1
+kerning first=72 second=101 amount=1
+kerning first=72 second=115 amount=1
+kerning first=72 second=117 amount=1
+kerning first=72 second=35 amount=1
+kerning first=72 second=34 amount=1
+kerning first=72 second=39 amount=1
+kerning first=72 second=46 amount=1
+kerning first=72 second=45 amount=1
+kerning first=77 second=106 amount=1
+kerning first=77 second=88 amount=1
+kerning first=77 second=90 amount=1
+kerning first=77 second=65 amount=1
+kerning first=77 second=51 amount=-1
+kerning first=77 second=66 amount=1
+kerning first=77 second=80 amount=1
+kerning first=77 second=104 amount=1
+kerning first=77 second=54 amount=-1
+kerning first=77 second=57 amount=-1
+kerning first=77 second=48 amount=-1
+kerning first=77 second=56 amount=-1
+kerning first=77 second=69 amount=1
+kerning first=77 second=70 amount=1
+kerning first=77 second=49 amount=-3
+kerning first=77 second=41 amount=1
+kerning first=77 second=108 amount=1
+kerning first=77 second=47 amount=1
+kerning first=77 second=107 amount=1
+kerning first=77 second=73 amount=1
+kerning first=77 second=105 amount=1
+kerning first=77 second=33 amount=1
+kerning first=77 second=98 amount=1
+kerning first=77 second=112 amount=1
+kerning first=77 second=116 amount=1
+kerning first=77 second=59 amount=1
+kerning first=77 second=119 amount=1
+kerning first=77 second=118 amount=1
+kerning first=77 second=122 amount=1
+kerning first=77 second=97 amount=1
+kerning first=77 second=110 amount=1
+kerning first=77 second=114 amount=1
+kerning first=77 second=120 amount=1
+kerning first=77 second=115 amount=1
+kerning first=77 second=58 amount=1
+kerning first=77 second=44 amount=1
+kerning first=77 second=46 amount=1
+kerning first=88 second=106 amount=1
+kerning first=88 second=81 amount=-1
+kerning first=88 second=88 amount=1
+kerning first=88 second=90 amount=1
+kerning first=88 second=65 amount=1
+kerning first=88 second=52 amount=-2
+kerning first=88 second=71 amount=-1
+kerning first=88 second=79 amount=-1
+kerning first=88 second=83 amount=-1
+kerning first=88 second=84 amount=-1
+kerning first=88 second=51 amount=-1
+kerning first=88 second=80 amount=1
+kerning first=88 second=54 amount=-1
+kerning first=88 second=57 amount=-1
+kerning first=88 second=48 amount=-1
+kerning first=88 second=74 amount=-2
+kerning first=88 second=102 amount=-1
+kerning first=88 second=56 amount=-1
+kerning first=88 second=63 amount=-2
+kerning first=88 second=69 amount=1
+kerning first=88 second=49 amount=-3
+kerning first=88 second=41 amount=1
+kerning first=88 second=108 amount=1
+kerning first=88 second=64 amount=-1
+kerning first=88 second=47 amount=1
+kerning first=88 second=107 amount=1
+kerning first=88 second=73 amount=1
+kerning first=88 second=105 amount=1
+kerning first=88 second=33 amount=1
+kerning first=88 second=121 amount=-2
+kerning first=88 second=98 amount=1
+kerning first=88 second=112 amount=1
+kerning first=88 second=116 amount=-1
+kerning first=88 second=59 amount=1
+kerning first=88 second=118 amount=-1
+kerning first=88 second=122 amount=1
+kerning first=88 second=97 amount=1
+kerning first=88 second=110 amount=1
+kerning first=88 second=114 amount=1
+kerning first=88 second=120 amount=1
+kerning first=88 second=115 amount=1
+kerning first=88 second=58 amount=1
+kerning first=88 second=35 amount=-3
+kerning first=88 second=44 amount=1
+kerning first=88 second=46 amount=1
+kerning first=88 second=45 amount=-3
+kerning first=89 second=106 amount=1
+kerning first=89 second=87 amount=1
+kerning first=89 second=81 amount=-1
+kerning first=89 second=72 amount=1
+kerning first=89 second=77 amount=1
+kerning first=89 second=88 amount=1
+kerning first=89 second=89 amount=1
+kerning first=89 second=65 amount=-3
+kerning first=89 second=75 amount=1
+kerning first=89 second=52 amount=-3
+kerning first=89 second=78 amount=1
+kerning first=89 second=86 amount=2
+kerning first=89 second=84 amount=1
+kerning first=89 second=85 amount=1
+kerning first=89 second=51 amount=-2
+kerning first=89 second=66 amount=1
+kerning first=89 second=68 amount=1
+kerning first=89 second=80 amount=1
+kerning first=89 second=104 amount=1
+kerning first=89 second=54 amount=-1
+kerning first=89 second=57 amount=-1
+kerning first=89 second=48 amount=-1
+kerning first=89 second=74 amount=-3
+kerning first=89 second=76 amount=1
+kerning first=89 second=102 amount=-1
+kerning first=89 second=56 amount=-1
+kerning first=89 second=69 amount=1
+kerning first=89 second=70 amount=1
+kerning first=89 second=93 amount=1
+kerning first=89 second=49 amount=-2
+kerning first=89 second=41 amount=1
+kerning first=89 second=108 amount=1
+kerning first=89 second=64 amount=-3
+kerning first=89 second=82 amount=1
+kerning first=89 second=50 amount=-2
+kerning first=89 second=47 amount=-1
+kerning first=89 second=92 amount=1
+kerning first=89 second=107 amount=1
+kerning first=89 second=73 amount=1
+kerning first=89 second=105 amount=1
+kerning first=89 second=33 amount=1
+kerning first=89 second=121 amount=-1
+kerning first=89 second=98 amount=1
+kerning first=89 second=100 amount=-2
+kerning first=89 second=112 amount=-1
+kerning first=89 second=113 amount=-2
+kerning first=89 second=103 amount=-2
+kerning first=89 second=116 amount=-1
+kerning first=89 second=59 amount=-2
+kerning first=89 second=109 amount=-1
+kerning first=89 second=122 amount=-2
+kerning first=89 second=97 amount=-2
+kerning first=89 second=110 amount=-1
+kerning first=89 second=111 amount=-2
+kerning first=89 second=114 amount=-1
+kerning first=89 second=120 amount=-1
+kerning first=89 second=99 amount=-2
+kerning first=89 second=101 amount=-3
+kerning first=89 second=115 amount=-2
+kerning first=89 second=117 amount=-1
+kerning first=89 second=58 amount=-2
+kerning first=89 second=35 amount=-1
+kerning first=89 second=34 amount=2
+kerning first=89 second=39 amount=2
+kerning first=89 second=44 amount=-4
+kerning first=89 second=46 amount=-4
+kerning first=89 second=45 amount=-3
+kerning first=90 second=87 amount=1
+kerning first=90 second=81 amount=-1
+kerning first=90 second=88 amount=1
+kerning first=90 second=89 amount=1
+kerning first=90 second=65 amount=-1
+kerning first=90 second=75 amount=1
+kerning first=90 second=52 amount=-4
+kerning first=90 second=78 amount=1
+kerning first=90 second=86 amount=1
+kerning first=90 second=53 amount=-1
+kerning first=90 second=83 amount=-1
+kerning first=90 second=85 amount=1
+kerning first=90 second=51 amount=-2
+kerning first=90 second=66 amount=1
+kerning first=90 second=68 amount=1
+kerning first=90 second=80 amount=1
+kerning first=90 second=104 amount=1
+kerning first=90 second=54 amount=-1
+kerning first=90 second=57 amount=-1
+kerning first=90 second=48 amount=-1
+kerning first=90 second=74 amount=-2
+kerning first=90 second=76 amount=1
+kerning first=90 second=102 amount=-1
+kerning first=90 second=56 amount=-1
+kerning first=90 second=63 amount=-1
+kerning first=90 second=69 amount=1
+kerning first=90 second=93 amount=1
+kerning first=90 second=49 amount=-2
+kerning first=90 second=41 amount=1
+kerning first=90 second=108 amount=1
+kerning first=90 second=64 amount=-2
+kerning first=90 second=82 amount=1
+kerning first=90 second=50 amount=-1
+kerning first=90 second=92 amount=1
+kerning first=90 second=107 amount=1
+kerning first=90 second=73 amount=1
+kerning first=90 second=105 amount=1
+kerning first=90 second=33 amount=1
+kerning first=90 second=121 amount=-2
+kerning first=90 second=98 amount=1
+kerning first=90 second=100 amount=-1
+kerning first=90 second=112 amount=-1
+kerning first=90 second=113 amount=-1
+kerning first=90 second=103 amount=-1
+kerning first=90 second=116 amount=-2
+kerning first=90 second=59 amount=-1
+kerning first=90 second=119 amount=-1
+kerning first=90 second=109 amount=-1
+kerning first=90 second=118 amount=-1
+kerning first=90 second=122 amount=-1
+kerning first=90 second=110 amount=-1
+kerning first=90 second=111 amount=-1
+kerning first=90 second=114 amount=-1
+kerning first=90 second=99 amount=-1
+kerning first=90 second=101 amount=-1
+kerning first=90 second=115 amount=-1
+kerning first=90 second=117 amount=-1
+kerning first=90 second=58 amount=-1
+kerning first=90 second=35 amount=-3
+kerning first=90 second=34 amount=1
+kerning first=90 second=39 amount=2
+kerning first=90 second=45 amount=-5
+kerning first=65 second=87 amount=-2
+kerning first=65 second=88 amount=1
+kerning first=65 second=89 amount=-3
+kerning first=65 second=86 amount=-2
+kerning first=65 second=53 amount=-1
+kerning first=65 second=83 amount=1
+kerning first=65 second=84 amount=-2
+kerning first=65 second=51 amount=-2
+kerning first=65 second=67 amount=1
+kerning first=65 second=54 amount=-1
+kerning first=65 second=57 amount=-1
+kerning first=65 second=102 amount=-1
+kerning first=65 second=56 amount=-1
+kerning first=65 second=63 amount=-1
+kerning first=65 second=93 amount=-1
+kerning first=65 second=49 amount=-3
+kerning first=65 second=108 amount=1
+kerning first=65 second=92 amount=-3
+kerning first=65 second=100 amount=1
+kerning first=65 second=113 amount=1
+kerning first=65 second=103 amount=1
+kerning first=65 second=116 amount=-1
+kerning first=65 second=59 amount=1
+kerning first=65 second=122 amount=1
+kerning first=65 second=97 amount=1
+kerning first=65 second=110 amount=1
+kerning first=65 second=111 amount=1
+kerning first=65 second=120 amount=1
+kerning first=65 second=99 amount=1
+kerning first=65 second=101 amount=1
+kerning first=65 second=117 amount=1
+kerning first=65 second=34 amount=-3
+kerning first=65 second=39 amount=-3
+kerning first=65 second=44 amount=1
+kerning first=65 second=46 amount=1
+kerning first=75 second=106 amount=1
+kerning first=75 second=72 amount=1
+kerning first=75 second=77 amount=1
+kerning first=75 second=88 amount=1
+kerning first=75 second=90 amount=1
+kerning first=75 second=65 amount=1
+kerning first=75 second=75 amount=1
+kerning first=75 second=52 amount=-2
+kerning first=75 second=78 amount=1
+kerning first=75 second=53 amount=1
+kerning first=75 second=84 amount=-1
+kerning first=75 second=55 amount=1
+kerning first=75 second=66 amount=1
+kerning first=75 second=67 amount=1
+kerning first=75 second=80 amount=1
+kerning first=75 second=104 amount=1
+kerning first=75 second=54 amount=-1
+kerning first=75 second=74 amount=-1
+kerning first=75 second=76 amount=1
+kerning first=75 second=102 amount=-1
+kerning first=75 second=63 amount=-1
+kerning first=75 second=69 amount=1
+kerning first=75 second=70 amount=1
+kerning first=75 second=49 amount=-2
+kerning first=75 second=40 amount=1
+kerning first=75 second=41 amount=1
+kerning first=75 second=108 amount=1
+kerning first=75 second=82 amount=1
+kerning first=75 second=50 amount=1
+kerning first=75 second=47 amount=1
+kerning first=75 second=107 amount=1
+kerning first=75 second=73 amount=1
+kerning first=75 second=105 amount=1
+kerning first=75 second=33 amount=1
+kerning first=75 second=121 amount=-1
+kerning first=75 second=98 amount=1
+kerning first=75 second=100 amount=1
+kerning first=75 second=112 amount=1
+kerning first=75 second=113 amount=1
+kerning first=75 second=103 amount=1
+kerning first=75 second=116 amount=-1
+kerning first=75 second=59 amount=1
+kerning first=75 second=122 amount=1
+kerning first=75 second=97 amount=2
+kerning first=75 second=110 amount=1
+kerning first=75 second=111 amount=1
+kerning first=75 second=114 amount=1
+kerning first=75 second=120 amount=2
+kerning first=75 second=99 amount=1
+kerning first=75 second=101 amount=1
+kerning first=75 second=115 amount=1
+kerning first=75 second=117 amount=1
+kerning first=75 second=58 amount=1
+kerning first=75 second=35 amount=-3
+kerning first=75 second=44 amount=1
+kerning first=75 second=46 amount=2
+kerning first=75 second=45 amount=-4
+kerning first=52 second=106 amount=1
+kerning first=52 second=87 amount=-1
+kerning first=52 second=81 amount=1
+kerning first=52 second=72 amount=1
+kerning first=52 second=88 amount=-2
+kerning first=52 second=89 amount=-2
+kerning first=52 second=90 amount=-2
+kerning first=52 second=65 amount=-1
+kerning first=52 second=86 amount=-1
+kerning first=52 second=71 amount=1
+kerning first=52 second=79 amount=1
+kerning first=52 second=83 amount=-1
+kerning first=52 second=84 amount=-2
+kerning first=52 second=85 amount=1
+kerning first=52 second=67 amount=1
+kerning first=52 second=80 amount=1
+kerning first=52 second=104 amount=1
+kerning first=52 second=102 amount=1
+kerning first=52 second=63 amount=-1
+kerning first=52 second=69 amount=1
+kerning first=52 second=93 amount=-2
+kerning first=52 second=40 amount=1
+kerning first=52 second=41 amount=-1
+kerning first=52 second=108 amount=1
+kerning first=52 second=47 amount=-2
+kerning first=52 second=92 amount=-2
+kerning first=52 second=107 amount=1
+kerning first=52 second=73 amount=1
+kerning first=52 second=105 amount=1
+kerning first=52 second=33 amount=1
+kerning first=52 second=98 amount=1
+kerning first=52 second=100 amount=1
+kerning first=52 second=112 amount=1
+kerning first=52 second=113 amount=1
+kerning first=52 second=103 amount=1
+kerning first=52 second=116 amount=1
+kerning first=52 second=119 amount=1
+kerning first=52 second=118 amount=1
+kerning first=52 second=122 amount=-1
+kerning first=52 second=97 amount=1
+kerning first=52 second=110 amount=1
+kerning first=52 second=111 amount=1
+kerning first=52 second=114 amount=1
+kerning first=52 second=99 amount=1
+kerning first=52 second=101 amount=1
+kerning first=52 second=115 amount=1
+kerning first=52 second=117 amount=1
+kerning first=52 second=35 amount=1
+kerning first=52 second=34 amount=-2
+kerning first=52 second=39 amount=-1
+kerning first=52 second=44 amount=-2
+kerning first=52 second=46 amount=-2
+kerning first=52 second=45 amount=1
+kerning first=78 second=106 amount=1
+kerning first=78 second=87 amount=1
+kerning first=78 second=88 amount=1
+kerning first=78 second=90 amount=1
+kerning first=78 second=65 amount=1
+kerning first=78 second=75 amount=1
+kerning first=78 second=86 amount=1
+kerning first=78 second=83 amount=1
+kerning first=78 second=85 amount=1
+kerning first=78 second=66 amount=1
+kerning first=78 second=80 amount=1
+kerning first=78 second=104 amount=1
+kerning first=78 second=54 amount=-1
+kerning first=78 second=48 amount=-1
+kerning first=78 second=76 amount=1
+kerning first=78 second=102 amount=1
+kerning first=78 second=69 amount=1
+kerning first=78 second=93 amount=1
+kerning first=78 second=49 amount=-2
+kerning first=78 second=41 amount=1
+kerning first=78 second=108 amount=1
+kerning first=78 second=82 amount=1
+kerning first=78 second=47 amount=1
+kerning first=78 second=92 amount=1
+kerning first=78 second=107 amount=1
+kerning first=78 second=73 amount=1
+kerning first=78 second=105 amount=1
+kerning first=78 second=33 amount=1
+kerning first=78 second=121 amount=1
+kerning first=78 second=98 amount=1
+kerning first=78 second=112 amount=1
+kerning first=78 second=103 amount=1
+kerning first=78 second=116 amount=1
+kerning first=78 second=59 amount=1
+kerning first=78 second=119 amount=1
+kerning first=78 second=118 amount=1
+kerning first=78 second=122 amount=1
+kerning first=78 second=97 amount=1
+kerning first=78 second=110 amount=1
+kerning first=78 second=111 amount=1
+kerning first=78 second=114 amount=1
+kerning first=78 second=120 amount=1
+kerning first=78 second=99 amount=1
+kerning first=78 second=115 amount=1
+kerning first=78 second=117 amount=1
+kerning first=78 second=58 amount=1
+kerning first=78 second=34 amount=1
+kerning first=78 second=39 amount=1
+kerning first=78 second=46 amount=1
+kerning first=86 second=87 amount=1
+kerning first=86 second=81 amount=-1
+kerning first=86 second=88 amount=1
+kerning first=86 second=89 amount=1
+kerning first=86 second=90 amount=-1
+kerning first=86 second=65 amount=-3
+kerning first=86 second=75 amount=1
+kerning first=86 second=52 amount=-2
+kerning first=86 second=78 amount=1
+kerning first=86 second=86 amount=1
+kerning first=86 second=53 amount=-1
+kerning first=86 second=83 amount=-1
+kerning first=86 second=85 amount=1
+kerning first=86 second=51 amount=-2
+kerning first=86 second=66 amount=1
+kerning first=86 second=68 amount=1
+kerning first=86 second=80 amount=1
+kerning first=86 second=104 amount=1
+kerning first=86 second=54 amount=-2
+kerning first=86 second=57 amount=-1
+kerning first=86 second=48 amount=-1
+kerning first=86 second=74 amount=-2
+kerning first=86 second=76 amount=1
+kerning first=86 second=102 amount=-1
+kerning first=86 second=56 amount=-1
+kerning first=86 second=69 amount=1
+kerning first=86 second=93 amount=1
+kerning first=86 second=49 amount=-2
+kerning first=86 second=41 amount=1
+kerning first=86 second=108 amount=1
+kerning first=86 second=64 amount=-3
+kerning first=86 second=82 amount=1
+kerning first=86 second=50 amount=-2
+kerning first=86 second=47 amount=-3
+kerning first=86 second=92 amount=1
+kerning first=86 second=107 amount=1
+kerning first=86 second=73 amount=1
+kerning first=86 second=105 amount=1
+kerning first=86 second=33 amount=1
+kerning first=86 second=98 amount=1
+kerning first=86 second=100 amount=-2
+kerning first=86 second=112 amount=-1
+kerning first=86 second=113 amount=-2
+kerning first=86 second=103 amount=-2
+kerning first=86 second=59 amount=-1
+kerning first=86 second=109 amount=-1
+kerning first=86 second=122 amount=-2
+kerning first=86 second=97 amount=-1
+kerning first=86 second=110 amount=-1
+kerning first=86 second=111 amount=-2
+kerning first=86 second=114 amount=-1
+kerning first=86 second=120 amount=-1
+kerning first=86 second=99 amount=-2
+kerning first=86 second=101 amount=-2
+kerning first=86 second=115 amount=-2
+kerning first=86 second=117 amount=-1
+kerning first=86 second=58 amount=-2
+kerning first=86 second=35 amount=-1
+kerning first=86 second=34 amount=2
+kerning first=86 second=39 amount=2
+kerning first=86 second=44 amount=-3
+kerning first=86 second=46 amount=-3
+kerning first=86 second=45 amount=-2
+kerning first=53 second=81 amount=-1
+kerning first=53 second=90 amount=-1
+kerning first=53 second=65 amount=-3
+kerning first=53 second=86 amount=1
+kerning first=53 second=71 amount=-1
+kerning first=53 second=79 amount=-1
+kerning first=53 second=83 amount=-1
+kerning first=53 second=74 amount=-1
+kerning first=53 second=63 amount=-1
+kerning first=53 second=64 amount=-2
+kerning first=53 second=47 amount=-3
+kerning first=53 second=100 amount=-1
+kerning first=53 second=112 amount=-1
+kerning first=53 second=113 amount=-1
+kerning first=53 second=103 amount=-1
+kerning first=53 second=59 amount=-1
+kerning first=53 second=109 amount=-1
+kerning first=53 second=122 amount=-1
+kerning first=53 second=97 amount=-1
+kerning first=53 second=110 amount=-1
+kerning first=53 second=111 amount=-1
+kerning first=53 second=114 amount=-1
+kerning first=53 second=120 amount=-1
+kerning first=53 second=99 amount=-1
+kerning first=53 second=101 amount=-1
+kerning first=53 second=115 amount=-1
+kerning first=53 second=117 amount=-1
+kerning first=53 second=58 amount=-1
+kerning first=53 second=35 amount=-1
+kerning first=53 second=34 amount=1
+kerning first=53 second=39 amount=1
+kerning first=53 second=44 amount=-4
+kerning first=53 second=46 amount=-3
+kerning first=53 second=45 amount=-1
+kerning first=71 second=106 amount=1
+kerning first=71 second=81 amount=1
+kerning first=71 second=72 amount=1
+kerning first=71 second=88 amount=-1
+kerning first=71 second=89 amount=-2
+kerning first=71 second=90 amount=-1
+kerning first=71 second=75 amount=1
+kerning first=71 second=52 amount=1
+kerning first=71 second=86 amount=-1
+kerning first=71 second=53 amount=-1
+kerning first=71 second=71 amount=1
+kerning first=71 second=79 amount=1
+kerning first=71 second=83 amount=-1
+kerning first=71 second=84 amount=-1
+kerning first=71 second=85 amount=1
+kerning first=71 second=51 amount=-1
+kerning first=71 second=55 amount=-2
+kerning first=71 second=66 amount=1
+kerning first=71 second=67 amount=1
+kerning first=71 second=68 amount=1
+kerning first=71 second=80 amount=1
+kerning first=71 second=104 amount=1
+kerning first=71 second=57 amount=-1
+kerning first=71 second=48 amount=1
+kerning first=71 second=74 amount=1
+kerning first=71 second=76 amount=1
+kerning first=71 second=102 amount=1
+kerning first=71 second=56 amount=-1
+kerning first=71 second=63 amount=-1
+kerning first=71 second=69 amount=1
+kerning first=71 second=70 amount=1
+kerning first=71 second=93 amount=-2
+kerning first=71 second=49 amount=-3
+kerning first=71 second=40 amount=1
+kerning first=71 second=108 amount=1
+kerning first=71 second=64 amount=1
+kerning first=71 second=82 amount=1
+kerning first=71 second=50 amount=-2
+kerning first=71 second=47 amount=-1
+kerning first=71 second=92 amount=-2
+kerning first=71 second=107 amount=1
+kerning first=71 second=73 amount=1
+kerning first=71 second=105 amount=1
+kerning first=71 second=33 amount=1
+kerning first=71 second=121 amount=1
+kerning first=71 second=98 amount=1
+kerning first=71 second=100 amount=1
+kerning first=71 second=112 amount=1
+kerning first=71 second=113 amount=1
+kerning first=71 second=103 amount=1
+kerning first=71 second=116 amount=1
+kerning first=71 second=119 amount=2
+kerning first=71 second=109 amount=1
+kerning first=71 second=118 amount=1
+kerning first=71 second=122 amount=-1
+kerning first=71 second=97 amount=1
+kerning first=71 second=110 amount=1
+kerning first=71 second=111 amount=2
+kerning first=71 second=114 amount=1
+kerning first=71 second=99 amount=1
+kerning first=71 second=101 amount=1
+kerning first=71 second=115 amount=1
+kerning first=71 second=117 amount=1
+kerning first=71 second=35 amount=1
+kerning first=71 second=34 amount=-1
+kerning first=71 second=39 amount=-1
+kerning first=71 second=44 amount=-3
+kerning first=71 second=46 amount=-2
+kerning first=71 second=45 amount=2
+kerning first=79 second=106 amount=1
+kerning first=79 second=81 amount=1
+kerning first=79 second=72 amount=1
+kerning first=79 second=88 amount=-1
+kerning first=79 second=89 amount=-1
+kerning first=79 second=65 amount=-1
+kerning first=79 second=71 amount=1
+kerning first=79 second=79 amount=1
+kerning first=79 second=51 amount=-1
+kerning first=79 second=55 amount=-1
+kerning first=79 second=67 amount=1
+kerning first=79 second=57 amount=-1
+kerning first=79 second=102 amount=1
+kerning first=79 second=56 amount=-1
+kerning first=79 second=93 amount=-1
+kerning first=79 second=49 amount=-2
+kerning first=79 second=40 amount=1
+kerning first=79 second=41 amount=-1
+kerning first=79 second=108 amount=1
+kerning first=79 second=50 amount=-1
+kerning first=79 second=47 amount=-1
+kerning first=79 second=92 amount=-1
+kerning first=79 second=107 amount=1
+kerning first=79 second=105 amount=1
+kerning first=79 second=33 amount=1
+kerning first=79 second=121 amount=1
+kerning first=79 second=100 amount=1
+kerning first=79 second=112 amount=1
+kerning first=79 second=113 amount=1
+kerning first=79 second=103 amount=1
+kerning first=79 second=116 amount=2
+kerning first=79 second=59 amount=1
+kerning first=79 second=119 amount=2
+kerning first=79 second=118 amount=2
+kerning first=79 second=97 amount=1
+kerning first=79 second=110 amount=1
+kerning first=79 second=111 amount=1
+kerning first=79 second=114 amount=1
+kerning first=79 second=120 amount=1
+kerning first=79 second=99 amount=1
+kerning first=79 second=101 amount=1
+kerning first=79 second=117 amount=1
+kerning first=79 second=35 amount=1
+kerning first=79 second=44 amount=-1
+kerning first=79 second=45 amount=1
+kerning first=83 second=106 amount=1
+kerning first=83 second=88 amount=1
+kerning first=83 second=89 amount=-1
+kerning first=83 second=90 amount=1
+kerning first=83 second=53 amount=1
+kerning first=83 second=71 amount=1
+kerning first=83 second=83 amount=1
+kerning first=83 second=67 amount=1
+kerning first=83 second=104 amount=1
+kerning first=83 second=74 amount=1
+kerning first=83 second=49 amount=-2
+kerning first=83 second=40 amount=1
+kerning first=83 second=41 amount=1
+kerning first=83 second=108 amount=1
+kerning first=83 second=107 amount=1
+kerning first=83 second=105 amount=1
+kerning first=83 second=33 amount=1
+kerning first=83 second=121 amount=1
+kerning first=83 second=98 amount=1
+kerning first=83 second=100 amount=1
+kerning first=83 second=112 amount=1
+kerning first=83 second=113 amount=1
+kerning first=83 second=103 amount=1
+kerning first=83 second=116 amount=-1
+kerning first=83 second=119 amount=1
+kerning first=83 second=118 amount=1
+kerning first=83 second=122 amount=1
+kerning first=83 second=97 amount=1
+kerning first=83 second=110 amount=1
+kerning first=83 second=111 amount=1
+kerning first=83 second=114 amount=1
+kerning first=83 second=120 amount=1
+kerning first=83 second=99 amount=1
+kerning first=83 second=101 amount=1
+kerning first=83 second=115 amount=1
+kerning first=83 second=117 amount=1
+kerning first=83 second=46 amount=1
+kerning first=84 second=87 amount=1
+kerning first=84 second=81 amount=-1
+kerning first=84 second=88 amount=1
+kerning first=84 second=90 amount=-1
+kerning first=84 second=65 amount=-3
+kerning first=84 second=75 amount=1
+kerning first=84 second=52 amount=-3
+kerning first=84 second=86 amount=1
+kerning first=84 second=53 amount=-1
+kerning first=84 second=83 amount=-1
+kerning first=84 second=85 amount=1
+kerning first=84 second=51 amount=-2
+kerning first=84 second=66 amount=1
+kerning first=84 second=80 amount=1
+kerning first=84 second=54 amount=-2
+kerning first=84 second=57 amount=-1
+kerning first=84 second=48 amount=-1
+kerning first=84 second=74 amount=-3
+kerning first=84 second=76 amount=1
+kerning first=84 second=102 amount=-1
+kerning first=84 second=56 amount=-1
+kerning first=84 second=93 amount=1
+kerning first=84 second=49 amount=-2
+kerning first=84 second=108 amount=1
+kerning first=84 second=64 amount=-4
+kerning first=84 second=82 amount=1
+kerning first=84 second=50 amount=-2
+kerning first=84 second=47 amount=-3
+kerning first=84 second=92 amount=1
+kerning first=84 second=107 amount=1
+kerning first=84 second=73 amount=1
+kerning first=84 second=33 amount=1
+kerning first=84 second=121 amount=-3
+kerning first=84 second=98 amount=1
+kerning first=84 second=100 amount=-3
+kerning first=84 second=112 amount=-3
+kerning first=84 second=113 amount=-3
+kerning first=84 second=103 amount=-3
+kerning first=84 second=116 amount=-2
+kerning first=84 second=59 amount=-2
+kerning first=84 second=119 amount=-2
+kerning first=84 second=109 amount=-3
+kerning first=84 second=118 amount=-2
+kerning first=84 second=122 amount=-3
+kerning first=84 second=97 amount=-3
+kerning first=84 second=110 amount=-3
+kerning first=84 second=111 amount=-3
+kerning first=84 second=114 amount=-3
+kerning first=84 second=120 amount=-2
+kerning first=84 second=99 amount=-3
+kerning first=84 second=101 amount=-3
+kerning first=84 second=115 amount=-3
+kerning first=84 second=117 amount=-3
+kerning first=84 second=58 amount=-3
+kerning first=84 second=35 amount=-2
+kerning first=84 second=34 amount=1
+kerning first=84 second=39 amount=1
+kerning first=84 second=44 amount=-2
+kerning first=84 second=46 amount=-2
+kerning first=84 second=45 amount=-3
+kerning first=85 second=106 amount=1
+kerning first=85 second=87 amount=1
+kerning first=85 second=88 amount=1
+kerning first=85 second=89 amount=1
+kerning first=85 second=65 amount=-1
+kerning first=85 second=75 amount=1
+kerning first=85 second=86 amount=1
+kerning first=85 second=71 amount=1
+kerning first=85 second=84 amount=1
+kerning first=85 second=85 amount=1
+kerning first=85 second=51 amount=-1
+kerning first=85 second=66 amount=1
+kerning first=85 second=67 amount=1
+kerning first=85 second=68 amount=1
+kerning first=85 second=80 amount=1
+kerning first=85 second=54 amount=-1
+kerning first=85 second=57 amount=-1
+kerning first=85 second=76 amount=1
+kerning first=85 second=102 amount=1
+kerning first=85 second=56 amount=-1
+kerning first=85 second=63 amount=1
+kerning first=85 second=93 amount=1
+kerning first=85 second=49 amount=-2
+kerning first=85 second=40 amount=1
+kerning first=85 second=41 amount=1
+kerning first=85 second=108 amount=1
+kerning first=85 second=82 amount=1
+kerning first=85 second=50 amount=-1
+kerning first=85 second=47 amount=-1
+kerning first=85 second=92 amount=1
+kerning first=85 second=107 amount=1
+kerning first=85 second=73 amount=1
+kerning first=85 second=105 amount=1
+kerning first=85 second=33 amount=1
+kerning first=85 second=121 amount=1
+kerning first=85 second=98 amount=1
+kerning first=85 second=112 amount=1
+kerning first=85 second=116 amount=1
+kerning first=85 second=119 amount=2
+kerning first=85 second=118 amount=1
+kerning first=85 second=97 amount=1
+kerning first=85 second=110 amount=1
+kerning first=85 second=114 amount=1
+kerning first=85 second=120 amount=1
+kerning first=85 second=117 amount=1
+kerning first=85 second=34 amount=1
+kerning first=85 second=39 amount=1
+kerning first=85 second=44 amount=-2
+kerning first=85 second=46 amount=-1
+kerning first=51 second=77 amount=-1
+kerning first=51 second=89 amount=-1
+kerning first=51 second=90 amount=-2
+kerning first=51 second=65 amount=-2
+kerning first=51 second=75 amount=-1
+kerning first=51 second=78 amount=-1
+kerning first=51 second=83 amount=-1
+kerning first=51 second=84 amount=-1
+kerning first=51 second=68 amount=-1
+kerning first=51 second=74 amount=-1
+kerning first=51 second=76 amount=-1
+kerning first=51 second=63 amount=-1
+kerning first=51 second=70 amount=-1
+kerning first=51 second=93 amount=-1
+kerning first=51 second=41 amount=-1
+kerning first=51 second=64 amount=-1
+kerning first=51 second=47 amount=-3
+kerning first=51 second=92 amount=-1
+kerning first=51 second=59 amount=-1
+kerning first=51 second=109 amount=-1
+kerning first=51 second=122 amount=-2
+kerning first=51 second=120 amount=-1
+kerning first=51 second=58 amount=-1
+kerning first=51 second=44 amount=-4
+kerning first=51 second=46 amount=-3
+kerning first=55 second=106 amount=-1
+kerning first=55 second=81 amount=-2
+kerning first=55 second=72 amount=-1
+kerning first=55 second=77 amount=-1
+kerning first=55 second=89 amount=-1
+kerning first=55 second=90 amount=-2
+kerning first=55 second=65 amount=-4
+kerning first=55 second=78 amount=-1
+kerning first=55 second=71 amount=-1
+kerning first=55 second=79 amount=-1
+kerning first=55 second=83 amount=-2
+kerning first=55 second=67 amount=-1
+kerning first=55 second=68 amount=-1
+kerning first=55 second=104 amount=-1
+kerning first=55 second=74 amount=-3
+kerning first=55 second=102 amount=-2
+kerning first=55 second=63 amount=-1
+kerning first=55 second=69 amount=-1
+kerning first=55 second=70 amount=-1
+kerning first=55 second=40 amount=-1
+kerning first=55 second=64 amount=-5
+kerning first=55 second=47 amount=-5
+kerning first=55 second=105 amount=-1
+kerning first=55 second=121 amount=-2
+kerning first=55 second=100 amount=-4
+kerning first=55 second=112 amount=-3
+kerning first=55 second=113 amount=-4
+kerning first=55 second=103 amount=-4
+kerning first=55 second=116 amount=-2
+kerning first=55 second=59 amount=-3
+kerning first=55 second=119 amount=-2
+kerning first=55 second=109 amount=-3
+kerning first=55 second=118 amount=-2
+kerning first=55 second=122 amount=-4
+kerning first=55 second=97 amount=-3
+kerning first=55 second=110 amount=-3
+kerning first=55 second=111 amount=-4
+kerning first=55 second=114 amount=-3
+kerning first=55 second=120 amount=-3
+kerning first=55 second=99 amount=-4
+kerning first=55 second=101 amount=-4
+kerning first=55 second=115 amount=-4
+kerning first=55 second=117 amount=-3
+kerning first=55 second=58 amount=-4
+kerning first=55 second=35 amount=-3
+kerning first=55 second=39 amount=1
+kerning first=55 second=44 amount=-5
+kerning first=55 second=46 amount=-6
+kerning first=55 second=45 amount=-4
+kerning first=66 second=72 amount=1
+kerning first=66 second=89 amount=-1
+kerning first=66 second=90 amount=-1
+kerning first=66 second=65 amount=-1
+kerning first=66 second=53 amount=-1
+kerning first=66 second=71 amount=1
+kerning first=66 second=51 amount=-2
+kerning first=66 second=55 amount=-1
+kerning first=66 second=67 amount=1
+kerning first=66 second=57 amount=-1
+kerning first=66 second=56 amount=-1
+kerning first=66 second=49 amount=-3
+kerning first=66 second=40 amount=1
+kerning first=66 second=41 amount=-1
+kerning first=66 second=108 amount=1
+kerning first=66 second=50 amount=-2
+kerning first=66 second=47 amount=-2
+kerning first=66 second=107 amount=1
+kerning first=66 second=105 amount=1
+kerning first=66 second=33 amount=1
+kerning first=66 second=100 amount=1
+kerning first=66 second=113 amount=1
+kerning first=66 second=103 amount=1
+kerning first=66 second=116 amount=1
+kerning first=66 second=119 amount=1
+kerning first=66 second=122 amount=-1
+kerning first=66 second=110 amount=1
+kerning first=66 second=111 amount=1
+kerning first=66 second=114 amount=1
+kerning first=66 second=99 amount=1
+kerning first=66 second=101 amount=1
+kerning first=66 second=117 amount=1
+kerning first=66 second=35 amount=1
+kerning first=66 second=44 amount=-3
+kerning first=66 second=46 amount=-2
+kerning first=66 second=45 amount=1
+kerning first=67 second=106 amount=1
+kerning first=67 second=81 amount=1
+kerning first=67 second=88 amount=-1
+kerning first=67 second=89 amount=-1
+kerning first=67 second=52 amount=1
+kerning first=67 second=71 amount=1
+kerning first=67 second=79 amount=1
+kerning first=67 second=83 amount=1
+kerning first=67 second=85 amount=1
+kerning first=67 second=51 amount=-1
+kerning first=67 second=55 amount=-1
+kerning first=67 second=66 amount=1
+kerning first=67 second=67 amount=1
+kerning first=67 second=80 amount=1
+kerning first=67 second=104 amount=1
+kerning first=67 second=74 amount=1
+kerning first=67 second=102 amount=1
+kerning first=67 second=56 amount=-1
+kerning first=67 second=69 amount=1
+kerning first=67 second=93 amount=-1
+kerning first=67 second=49 amount=-2
+kerning first=67 second=40 amount=1
+kerning first=67 second=108 amount=1
+kerning first=67 second=64 amount=1
+kerning first=67 second=50 amount=-1
+kerning first=67 second=47 amount=-1
+kerning first=67 second=92 amount=-1
+kerning first=67 second=107 amount=1
+kerning first=67 second=73 amount=1
+kerning first=67 second=105 amount=1
+kerning first=67 second=33 amount=1
+kerning first=67 second=121 amount=1
+kerning first=67 second=98 amount=1
+kerning first=67 second=100 amount=1
+kerning first=67 second=112 amount=1
+kerning first=67 second=113 amount=1
+kerning first=67 second=103 amount=1
+kerning first=67 second=116 amount=1
+kerning first=67 second=119 amount=2
+kerning first=67 second=109 amount=1
+kerning first=67 second=118 amount=2
+kerning first=67 second=97 amount=1
+kerning first=67 second=110 amount=1
+kerning first=67 second=111 amount=1
+kerning first=67 second=114 amount=1
+kerning first=67 second=120 amount=1
+kerning first=67 second=99 amount=1
+kerning first=67 second=101 amount=1
+kerning first=67 second=117 amount=1
+kerning first=67 second=35 amount=1
+kerning first=67 second=34 amount=1
+kerning first=67 second=39 amount=1
+kerning first=67 second=44 amount=-1
+kerning first=68 second=106 amount=1
+kerning first=68 second=87 amount=1
+kerning first=68 second=90 amount=-1
+kerning first=68 second=65 amount=-2
+kerning first=68 second=75 amount=1
+kerning first=68 second=52 amount=-1
+kerning first=68 second=86 amount=1
+kerning first=68 second=53 amount=-1
+kerning first=68 second=84 amount=1
+kerning first=68 second=85 amount=1
+kerning first=68 second=66 amount=1
+kerning first=68 second=67 amount=1
+kerning first=68 second=80 amount=1
+kerning first=68 second=104 amount=1
+kerning first=68 second=54 amount=-1
+kerning first=68 second=74 amount=-1
+kerning first=68 second=102 amount=1
+kerning first=68 second=63 amount=1
+kerning first=68 second=49 amount=-2
+kerning first=68 second=40 amount=1
+kerning first=68 second=108 amount=1
+kerning first=68 second=64 amount=-1
+kerning first=68 second=82 amount=1
+kerning first=68 second=50 amount=-1
+kerning first=68 second=47 amount=-3
+kerning first=68 second=107 amount=1
+kerning first=68 second=73 amount=1
+kerning first=68 second=105 amount=1
+kerning first=68 second=33 amount=1
+kerning first=68 second=121 amount=1
+kerning first=68 second=98 amount=1
+kerning first=68 second=112 amount=1
+kerning first=68 second=116 amount=1
+kerning first=68 second=119 amount=1
+kerning first=68 second=118 amount=1
+kerning first=68 second=110 amount=1
+kerning first=68 second=114 amount=1
+kerning first=68 second=120 amount=1
+kerning first=68 second=101 amount=-1
+kerning first=68 second=117 amount=1
+kerning first=68 second=34 amount=1
+kerning first=68 second=39 amount=1
+kerning first=68 second=44 amount=-4
+kerning first=68 second=46 amount=-3
+kerning first=80 second=106 amount=1
+kerning first=80 second=87 amount=1
+kerning first=80 second=72 amount=1
+kerning first=80 second=77 amount=1
+kerning first=80 second=88 amount=1
+kerning first=80 second=89 amount=1
+kerning first=80 second=65 amount=-2
+kerning first=80 second=75 amount=1
+kerning first=80 second=52 amount=-2
+kerning first=80 second=78 amount=1
+kerning first=80 second=86 amount=1
+kerning first=80 second=71 amount=1
+kerning first=80 second=79 amount=1
+kerning first=80 second=84 amount=1
+kerning first=80 second=85 amount=1
+kerning first=80 second=66 amount=1
+kerning first=80 second=67 amount=1
+kerning first=80 second=68 amount=1
+kerning first=80 second=80 amount=1
+kerning first=80 second=104 amount=1
+kerning first=80 second=54 amount=-1
+kerning first=80 second=74 amount=-3
+kerning first=80 second=76 amount=1
+kerning first=80 second=63 amount=1
+kerning first=80 second=69 amount=1
+kerning first=80 second=70 amount=1
+kerning first=80 second=93 amount=1
+kerning first=80 second=49 amount=-1
+kerning first=80 second=40 amount=1
+kerning first=80 second=41 amount=1
+kerning first=80 second=108 amount=1
+kerning first=80 second=64 amount=-2
+kerning first=80 second=82 amount=1
+kerning first=80 second=50 amount=-1
+kerning first=80 second=47 amount=-4
+kerning first=80 second=92 amount=1
+kerning first=80 second=107 amount=1
+kerning first=80 second=73 amount=1
+kerning first=80 second=105 amount=1
+kerning first=80 second=33 amount=1
+kerning first=80 second=121 amount=1
+kerning first=80 second=98 amount=1
+kerning first=80 second=100 amount=-1
+kerning first=80 second=113 amount=-1
+kerning first=80 second=103 amount=-1
+kerning first=80 second=116 amount=1
+kerning first=80 second=119 amount=1
+kerning first=80 second=118 amount=1
+kerning first=80 second=122 amount=-1
+kerning first=80 second=111 amount=-1
+kerning first=80 second=99 amount=-1
+kerning first=80 second=101 amount=-1
+kerning first=80 second=115 amount=-1
+kerning first=80 second=58 amount=-1
+kerning first=80 second=34 amount=2
+kerning first=80 second=39 amount=2
+kerning first=80 second=44 amount=-4
+kerning first=80 second=46 amount=-4
+kerning first=80 second=45 amount=-2
+kerning first=104 second=106 amount=1
+kerning first=104 second=52 amount=1
+kerning first=104 second=102 amount=1
+kerning first=104 second=63 amount=-1
+kerning first=104 second=49 amount=-3
+kerning first=104 second=40 amount=1
+kerning first=104 second=108 amount=1
+kerning first=104 second=64 amount=1
+kerning first=104 second=92 amount=-3
+kerning first=104 second=107 amount=1
+kerning first=104 second=105 amount=1
+kerning first=104 second=33 amount=1
+kerning first=104 second=121 amount=1
+kerning first=104 second=98 amount=1
+kerning first=104 second=100 amount=1
+kerning first=104 second=112 amount=1
+kerning first=104 second=113 amount=1
+kerning first=104 second=103 amount=1
+kerning first=104 second=116 amount=1
+kerning first=104 second=59 amount=1
+kerning first=104 second=119 amount=1
+kerning first=104 second=109 amount=1
+kerning first=104 second=118 amount=1
+kerning first=104 second=122 amount=1
+kerning first=104 second=97 amount=1
+kerning first=104 second=110 amount=1
+kerning first=104 second=111 amount=1
+kerning first=104 second=114 amount=1
+kerning first=104 second=120 amount=1
+kerning first=104 second=99 amount=1
+kerning first=104 second=101 amount=1
+kerning first=104 second=115 amount=1
+kerning first=104 second=117 amount=1
+kerning first=104 second=58 amount=1
+kerning first=104 second=35 amount=1
+kerning first=104 second=34 amount=-2
+kerning first=104 second=39 amount=-2
+kerning first=104 second=46 amount=1
+kerning first=104 second=45 amount=1
+kerning first=54 second=106 amount=-1
+kerning first=54 second=87 amount=-1
+kerning first=54 second=81 amount=-1
+kerning first=54 second=72 amount=-1
+kerning first=54 second=77 amount=-1
+kerning first=54 second=88 amount=-2
+kerning first=54 second=89 amount=-2
+kerning first=54 second=90 amount=-1
+kerning first=54 second=65 amount=-2
+kerning first=54 second=75 amount=-1
+kerning first=54 second=78 amount=-1
+kerning first=54 second=86 amount=-1
+kerning first=54 second=79 amount=-1
+kerning first=54 second=83 amount=-1
+kerning first=54 second=66 amount=-1
+kerning first=54 second=68 amount=-1
+kerning first=54 second=80 amount=-1
+kerning first=54 second=104 amount=-1
+kerning first=54 second=74 amount=-1
+kerning first=54 second=76 amount=-1
+kerning first=54 second=102 amount=-1
+kerning first=54 second=69 amount=-1
+kerning first=54 second=70 amount=-1
+kerning first=54 second=93 amount=-1
+kerning first=54 second=40 amount=-1
+kerning first=54 second=41 amount=-1
+kerning first=54 second=64 amount=-1
+kerning first=54 second=82 amount=-1
+kerning first=54 second=47 amount=-2
+kerning first=54 second=92 amount=-2
+kerning first=54 second=73 amount=-1
+kerning first=54 second=121 amount=-1
+kerning first=54 second=98 amount=-1
+kerning first=54 second=100 amount=-1
+kerning first=54 second=112 amount=-1
+kerning first=54 second=113 amount=-1
+kerning first=54 second=59 amount=-1
+kerning first=54 second=109 amount=-1
+kerning first=54 second=118 amount=-1
+kerning first=54 second=122 amount=-2
+kerning first=54 second=97 amount=-1
+kerning first=54 second=110 amount=-1
+kerning first=54 second=114 amount=-1
+kerning first=54 second=120 amount=-1
+kerning first=54 second=101 amount=-1
+kerning first=54 second=115 amount=-1
+kerning first=54 second=58 amount=-2
+kerning first=54 second=35 amount=-1
+kerning first=54 second=44 amount=-2
+kerning first=54 second=46 amount=-1
+kerning first=54 second=45 amount=-1
+kerning first=57 second=87 amount=-1
+kerning first=57 second=81 amount=-1
+kerning first=57 second=77 amount=-1
+kerning first=57 second=88 amount=-2
+kerning first=57 second=89 amount=-2
+kerning first=57 second=90 amount=-1
+kerning first=57 second=65 amount=-2
+kerning first=57 second=75 amount=-1
+kerning first=57 second=78 amount=-1
+kerning first=57 second=86 amount=-2
+kerning first=57 second=79 amount=-1
+kerning first=57 second=83 amount=-1
+kerning first=57 second=84 amount=-1
+kerning first=57 second=85 amount=-1
+kerning first=57 second=66 amount=-1
+kerning first=57 second=68 amount=-1
+kerning first=57 second=80 amount=-1
+kerning first=57 second=104 amount=-1
+kerning first=57 second=74 amount=-1
+kerning first=57 second=76 amount=-1
+kerning first=57 second=63 amount=-1
+kerning first=57 second=69 amount=-1
+kerning first=57 second=70 amount=-1
+kerning first=57 second=93 amount=-2
+kerning first=57 second=41 amount=-2
+kerning first=57 second=64 amount=-1
+kerning first=57 second=82 amount=-1
+kerning first=57 second=47 amount=-2
+kerning first=57 second=92 amount=-2
+kerning first=57 second=73 amount=-1
+kerning first=57 second=98 amount=-1
+kerning first=57 second=100 amount=-1
+kerning first=57 second=116 amount=1
+kerning first=57 second=59 amount=-1
+kerning first=57 second=119 amount=1
+kerning first=57 second=109 amount=-1
+kerning first=57 second=118 amount=1
+kerning first=57 second=122 amount=-1
+kerning first=57 second=101 amount=-1
+kerning first=57 second=115 amount=-1
+kerning first=57 second=58 amount=-1
+kerning first=57 second=34 amount=-1
+kerning first=57 second=44 amount=-3
+kerning first=57 second=46 amount=-2
+kerning first=48 second=87 amount=-1
+kerning first=48 second=77 amount=-1
+kerning first=48 second=88 amount=-1
+kerning first=48 second=89 amount=-2
+kerning first=48 second=90 amount=-1
+kerning first=48 second=65 amount=-2
+kerning first=48 second=75 amount=-1
+kerning first=48 second=78 amount=-1
+kerning first=48 second=86 amount=-1
+kerning first=48 second=84 amount=-1
+kerning first=48 second=85 amount=-1
+kerning first=48 second=66 amount=-1
+kerning first=48 second=68 amount=-1
+kerning first=48 second=80 amount=-1
+kerning first=48 second=104 amount=-1
+kerning first=48 second=74 amount=-1
+kerning first=48 second=76 amount=-1
+kerning first=48 second=63 amount=-1
+kerning first=48 second=69 amount=-1
+kerning first=48 second=70 amount=-1
+kerning first=48 second=93 amount=-2
+kerning first=48 second=41 amount=-1
+kerning first=48 second=64 amount=-1
+kerning first=48 second=82 amount=-1
+kerning first=48 second=47 amount=-1
+kerning first=48 second=92 amount=-2
+kerning first=48 second=73 amount=-1
+kerning first=48 second=116 amount=1
+kerning first=48 second=119 amount=1
+kerning first=48 second=109 amount=-1
+kerning first=48 second=118 amount=1
+kerning first=48 second=122 amount=-1
+kerning first=48 second=115 amount=-1
+kerning first=48 second=58 amount=-1
+kerning first=48 second=34 amount=-1
+kerning first=48 second=39 amount=-1
+kerning first=48 second=44 amount=-2
+kerning first=48 second=46 amount=-1
+kerning first=74 second=106 amount=1
+kerning first=74 second=87 amount=1
+kerning first=74 second=72 amount=1
+kerning first=74 second=77 amount=1
+kerning first=74 second=88 amount=1
+kerning first=74 second=89 amount=1
+kerning first=74 second=75 amount=1
+kerning first=74 second=78 amount=1
+kerning first=74 second=86 amount=1
+kerning first=74 second=71 amount=1
+kerning first=74 second=84 amount=1
+kerning first=74 second=85 amount=1
+kerning first=74 second=51 amount=-1
+kerning first=74 second=66 amount=1
+kerning first=74 second=67 amount=1
+kerning first=74 second=68 amount=1
+kerning first=74 second=80 amount=1
+kerning first=74 second=104 amount=1
+kerning first=74 second=54 amount=-1
+kerning first=74 second=57 amount=-1
+kerning first=74 second=76 amount=1
+kerning first=74 second=102 amount=1
+kerning first=74 second=56 amount=-1
+kerning first=74 second=63 amount=1
+kerning first=74 second=69 amount=1
+kerning first=74 second=93 amount=1
+kerning first=74 second=49 amount=-2
+kerning first=74 second=41 amount=1
+kerning first=74 second=108 amount=1
+kerning first=74 second=82 amount=1
+kerning first=74 second=92 amount=1
+kerning first=74 second=107 amount=1
+kerning first=74 second=73 amount=1
+kerning first=74 second=105 amount=1
+kerning first=74 second=33 amount=1
+kerning first=74 second=121 amount=1
+kerning first=74 second=98 amount=1
+kerning first=74 second=116 amount=1
+kerning first=74 second=119 amount=1
+kerning first=74 second=118 amount=1
+kerning first=74 second=97 amount=1
+kerning first=74 second=111 amount=1
+kerning first=74 second=114 amount=1
+kerning first=74 second=120 amount=1
+kerning first=74 second=115 amount=1
+kerning first=74 second=34 amount=1
+kerning first=74 second=39 amount=1
+kerning first=76 second=106 amount=1
+kerning first=76 second=87 amount=-2
+kerning first=76 second=88 amount=1
+kerning first=76 second=89 amount=-3
+kerning first=76 second=90 amount=1
+kerning first=76 second=52 amount=-1
+kerning first=76 second=86 amount=-2
+kerning first=76 second=53 amount=1
+kerning first=76 second=83 amount=1
+kerning first=76 second=84 amount=-2
+kerning first=76 second=67 amount=1
+kerning first=76 second=104 amount=1
+kerning first=76 second=54 amount=-1
+kerning first=76 second=102 amount=-1
+kerning first=76 second=63 amount=-2
+kerning first=76 second=49 amount=-3
+kerning first=76 second=41 amount=1
+kerning first=76 second=108 amount=1
+kerning first=76 second=47 amount=1
+kerning first=76 second=92 amount=-4
+kerning first=76 second=107 amount=1
+kerning first=76 second=105 amount=1
+kerning first=76 second=33 amount=1
+kerning first=76 second=121 amount=-1
+kerning first=76 second=98 amount=1
+kerning first=76 second=100 amount=1
+kerning first=76 second=112 amount=1
+kerning first=76 second=113 amount=1
+kerning first=76 second=103 amount=1
+kerning first=76 second=116 amount=-1
+kerning first=76 second=59 amount=1
+kerning first=76 second=122 amount=1
+kerning first=76 second=97 amount=1
+kerning first=76 second=110 amount=1
+kerning first=76 second=111 amount=1
+kerning first=76 second=114 amount=1
+kerning first=76 second=120 amount=1
+kerning first=76 second=99 amount=1
+kerning first=76 second=101 amount=1
+kerning first=76 second=115 amount=1
+kerning first=76 second=117 amount=1
+kerning first=76 second=58 amount=1
+kerning first=76 second=35 amount=-4
+kerning first=76 second=34 amount=-3
+kerning first=76 second=39 amount=-3
+kerning first=76 second=44 amount=1
+kerning first=76 second=46 amount=1
+kerning first=76 second=45 amount=-4
+kerning first=102 second=106 amount=2
+kerning first=102 second=53 amount=1
+kerning first=102 second=55 amount=-1
+kerning first=102 second=104 amount=1
+kerning first=102 second=54 amount=1
+kerning first=102 second=57 amount=1
+kerning first=102 second=48 amount=1
+kerning first=102 second=102 amount=2
+kerning first=102 second=93 amount=1
+kerning first=102 second=49 amount=-2
+kerning first=102 second=40 amount=2
+kerning first=102 second=41 amount=1
+kerning first=102 second=108 amount=2
+kerning first=102 second=50 amount=-1
+kerning first=102 second=47 amount=-1
+kerning first=102 second=92 amount=1
+kerning first=102 second=107 amount=2
+kerning first=102 second=105 amount=2
+kerning first=102 second=33 amount=2
+kerning first=102 second=121 amount=2
+kerning first=102 second=98 amount=1
+kerning first=102 second=100 amount=1
+kerning first=102 second=112 amount=2
+kerning first=102 second=113 amount=1
+kerning first=102 second=103 amount=1
+kerning first=102 second=116 amount=2
+kerning first=102 second=59 amount=1
+kerning first=102 second=119 amount=3
+kerning first=102 second=109 amount=1
+kerning first=102 second=118 amount=3
+kerning first=102 second=122 amount=1
+kerning first=102 second=97 amount=2
+kerning first=102 second=110 amount=2
+kerning first=102 second=111 amount=1
+kerning first=102 second=114 amount=2
+kerning first=102 second=120 amount=2
+kerning first=102 second=99 amount=1
+kerning first=102 second=101 amount=1
+kerning first=102 second=115 amount=1
+kerning first=102 second=117 amount=2
+kerning first=102 second=58 amount=1
+kerning first=102 second=35 amount=2
+kerning first=102 second=34 amount=2
+kerning first=102 second=39 amount=2
+kerning first=102 second=46 amount=-1
+kerning first=102 second=45 amount=-2
+kerning first=56 second=106 amount=-1
+kerning first=56 second=87 amount=-1
+kerning first=56 second=81 amount=-1
+kerning first=56 second=72 amount=-2
+kerning first=56 second=77 amount=-2
+kerning first=56 second=88 amount=-1
+kerning first=56 second=89 amount=-2
+kerning first=56 second=90 amount=-1
+kerning first=56 second=65 amount=-2
+kerning first=56 second=75 amount=-1
+kerning first=56 second=78 amount=-2
+kerning first=56 second=86 amount=-1
+kerning first=56 second=71 amount=-1
+kerning first=56 second=79 amount=-1
+kerning first=56 second=83 amount=-1
+kerning first=56 second=84 amount=-1
+kerning first=56 second=85 amount=-1
+kerning first=56 second=66 amount=-1
+kerning first=56 second=67 amount=-1
+kerning first=56 second=68 amount=-2
+kerning first=56 second=80 amount=-1
+kerning first=56 second=104 amount=-1
+kerning first=56 second=74 amount=-1
+kerning first=56 second=76 amount=-2
+kerning first=56 second=102 amount=-2
+kerning first=56 second=63 amount=-1
+kerning first=56 second=69 amount=-1
+kerning first=56 second=70 amount=-2
+kerning first=56 second=93 amount=-1
+kerning first=56 second=40 amount=-1
+kerning first=56 second=41 amount=-2
+kerning first=56 second=108 amount=-1
+kerning first=56 second=64 amount=-1
+kerning first=56 second=82 amount=-1
+kerning first=56 second=47 amount=-2
+kerning first=56 second=92 amount=-1
+kerning first=56 second=107 amount=-1
+kerning first=56 second=73 amount=-1
+kerning first=56 second=105 amount=-1
+kerning first=56 second=33 amount=-1
+kerning first=56 second=121 amount=-1
+kerning first=56 second=98 amount=-1
+kerning first=56 second=100 amount=-1
+kerning first=56 second=112 amount=-1
+kerning first=56 second=113 amount=-1
+kerning first=56 second=103 amount=-1
+kerning first=56 second=116 amount=-2
+kerning first=56 second=59 amount=-2
+kerning first=56 second=119 amount=-1
+kerning first=56 second=109 amount=-1
+kerning first=56 second=118 amount=-1
+kerning first=56 second=122 amount=-2
+kerning first=56 second=97 amount=-1
+kerning first=56 second=110 amount=-1
+kerning first=56 second=111 amount=-1
+kerning first=56 second=114 amount=-1
+kerning first=56 second=120 amount=-2
+kerning first=56 second=99 amount=-1
+kerning first=56 second=101 amount=-1
+kerning first=56 second=115 amount=-1
+kerning first=56 second=117 amount=-1
+kerning first=56 second=58 amount=-2
+kerning first=56 second=35 amount=-2
+kerning first=56 second=34 amount=-1
+kerning first=56 second=39 amount=-1
+kerning first=56 second=44 amount=-3
+kerning first=56 second=46 amount=-2
+kerning first=56 second=45 amount=-1
+kerning first=63 second=87 amount=1
+kerning first=63 second=88 amount=1
+kerning first=63 second=90 amount=-1
+kerning first=63 second=65 amount=-2
+kerning first=63 second=75 amount=1
+kerning first=63 second=52 amount=-2
+kerning first=63 second=86 amount=1
+kerning first=63 second=53 amount=-1
+kerning first=63 second=84 amount=1
+kerning first=63 second=85 amount=1
+kerning first=63 second=51 amount=-1
+kerning first=63 second=66 amount=1
+kerning first=63 second=80 amount=1
+kerning first=63 second=54 amount=-1
+kerning first=63 second=57 amount=-1
+kerning first=63 second=48 amount=-1
+kerning first=63 second=74 amount=-2
+kerning first=63 second=102 amount=-1
+kerning first=63 second=56 amount=-1
+kerning first=63 second=63 amount=1
+kerning first=63 second=49 amount=-2
+kerning first=63 second=108 amount=1
+kerning first=63 second=64 amount=-3
+kerning first=63 second=82 amount=1
+kerning first=63 second=50 amount=-1
+kerning first=63 second=47 amount=-2
+kerning first=63 second=107 amount=1
+kerning first=63 second=73 amount=1
+kerning first=63 second=105 amount=1
+kerning first=63 second=33 amount=1
+kerning first=63 second=98 amount=1
+kerning first=63 second=100 amount=-2
+kerning first=63 second=113 amount=-1
+kerning first=63 second=103 amount=-1
+kerning first=63 second=59 amount=-1
+kerning first=63 second=119 amount=1
+kerning first=63 second=118 amount=1
+kerning first=63 second=122 amount=-1
+kerning first=63 second=97 amount=-1
+kerning first=63 second=111 amount=-1
+kerning first=63 second=99 amount=-2
+kerning first=63 second=101 amount=-2
+kerning first=63 second=115 amount=-2
+kerning first=63 second=58 amount=-1
+kerning first=63 second=35 amount=-1
+kerning first=63 second=34 amount=1
+kerning first=63 second=39 amount=1
+kerning first=63 second=44 amount=-1
+kerning first=63 second=46 amount=-1
+kerning first=63 second=45 amount=-2
+kerning first=69 second=87 amount=1
+kerning first=69 second=81 amount=-1
+kerning first=69 second=88 amount=1
+kerning first=69 second=90 amount=1
+kerning first=69 second=75 amount=1
+kerning first=69 second=52 amount=-1
+kerning first=69 second=86 amount=1
+kerning first=69 second=85 amount=1
+kerning first=69 second=51 amount=-1
+kerning first=69 second=66 amount=1
+kerning first=69 second=80 amount=1
+kerning first=69 second=54 amount=-1
+kerning first=69 second=57 amount=-1
+kerning first=69 second=48 amount=-1
+kerning first=69 second=74 amount=-1
+kerning first=69 second=76 amount=1
+kerning first=69 second=102 amount=-1
+kerning first=69 second=56 amount=-1
+kerning first=69 second=63 amount=-1
+kerning first=69 second=93 amount=1
+kerning first=69 second=49 amount=-2
+kerning first=69 second=41 amount=1
+kerning first=69 second=108 amount=1
+kerning first=69 second=64 amount=-1
+kerning first=69 second=82 amount=1
+kerning first=69 second=92 amount=1
+kerning first=69 second=107 amount=1
+kerning first=69 second=73 amount=1
+kerning first=69 second=105 amount=1
+kerning first=69 second=33 amount=1
+kerning first=69 second=121 amount=-1
+kerning first=69 second=98 amount=1
+kerning first=69 second=118 amount=-1
+kerning first=69 second=97 amount=1
+kerning first=69 second=120 amount=1
+kerning first=69 second=35 amount=-1
+kerning first=69 second=34 amount=1
+kerning first=69 second=39 amount=1
+kerning first=69 second=46 amount=1
+kerning first=70 second=87 amount=1
+kerning first=70 second=88 amount=1
+kerning first=70 second=90 amount=-1
+kerning first=70 second=65 amount=-2
+kerning first=70 second=75 amount=1
+kerning first=70 second=86 amount=1
+kerning first=70 second=53 amount=-1
+kerning first=70 second=83 amount=-1
+kerning first=70 second=85 amount=1
+kerning first=70 second=51 amount=-2
+kerning first=70 second=66 amount=1
+kerning first=70 second=80 amount=1
+kerning first=70 second=54 amount=-1
+kerning first=70 second=57 amount=-1
+kerning first=70 second=48 amount=-1
+kerning first=70 second=74 amount=-2
+kerning first=70 second=76 amount=1
+kerning first=70 second=56 amount=-1
+kerning first=70 second=63 amount=-1
+kerning first=70 second=93 amount=1
+kerning first=70 second=49 amount=-2
+kerning first=70 second=41 amount=1
+kerning first=70 second=108 amount=1
+kerning first=70 second=64 amount=-1
+kerning first=70 second=82 amount=1
+kerning first=70 second=50 amount=-3
+kerning first=70 second=47 amount=-3
+kerning first=70 second=92 amount=1
+kerning first=70 second=107 amount=1
+kerning first=70 second=73 amount=1
+kerning first=70 second=105 amount=1
+kerning first=70 second=33 amount=1
+kerning first=70 second=98 amount=1
+kerning first=70 second=59 amount=-1
+kerning first=70 second=109 amount=-1
+kerning first=70 second=122 amount=-2
+kerning first=70 second=120 amount=-1
+kerning first=70 second=58 amount=-1
+kerning first=70 second=34 amount=1
+kerning first=70 second=39 amount=1
+kerning first=70 second=44 amount=-3
+kerning first=70 second=46 amount=-3
+kerning first=93 second=106 amount=1
+kerning first=93 second=88 amount=1
+kerning first=93 second=90 amount=1
+kerning first=93 second=65 amount=1
+kerning first=93 second=75 amount=1
+kerning first=93 second=78 amount=1
+kerning first=93 second=86 amount=1
+kerning first=93 second=83 amount=1
+kerning first=93 second=55 amount=1
+kerning first=93 second=66 amount=1
+kerning first=93 second=67 amount=1
+kerning first=93 second=80 amount=1
+kerning first=93 second=104 amount=1
+kerning first=93 second=54 amount=-1
+kerning first=93 second=56 amount=-1
+kerning first=93 second=69 amount=1
+kerning first=93 second=70 amount=1
+kerning first=93 second=49 amount=-3
+kerning first=93 second=41 amount=1
+kerning first=93 second=108 amount=1
+kerning first=93 second=82 amount=1
+kerning first=93 second=50 amount=1
+kerning first=93 second=47 amount=1
+kerning first=93 second=107 amount=1
+kerning first=93 second=73 amount=1
+kerning first=93 second=105 amount=1
+kerning first=93 second=33 amount=1
+kerning first=93 second=121 amount=1
+kerning first=93 second=98 amount=1
+kerning first=93 second=112 amount=1
+kerning first=93 second=103 amount=1
+kerning first=93 second=116 amount=1
+kerning first=93 second=59 amount=1
+kerning first=93 second=119 amount=1
+kerning first=93 second=118 amount=1
+kerning first=93 second=122 amount=1
+kerning first=93 second=97 amount=1
+kerning first=93 second=110 amount=1
+kerning first=93 second=111 amount=1
+kerning first=93 second=114 amount=1
+kerning first=93 second=120 amount=2
+kerning first=93 second=99 amount=1
+kerning first=93 second=115 amount=1
+kerning first=93 second=117 amount=1
+kerning first=93 second=58 amount=1
+kerning first=93 second=34 amount=1
+kerning first=93 second=39 amount=1
+kerning first=93 second=44 amount=1
+kerning first=93 second=46 amount=1
+kerning first=123 second=32 amount=1
+kerning first=125 second=112 amount=1
+kerning first=125 second=109 amount=1
+kerning first=125 second=110 amount=1
+kerning first=125 second=111 amount=1
+kerning first=49 second=106 amount=-3
+kerning first=49 second=87 amount=-3
+kerning first=49 second=81 amount=-4
+kerning first=49 second=72 amount=-4
+kerning first=49 second=77 amount=-4
+kerning first=49 second=88 amount=-3
+kerning first=49 second=89 amount=-4
+kerning first=49 second=90 amount=-3
+kerning first=49 second=65 amount=-3
+kerning first=49 second=75 amount=-3
+kerning first=49 second=78 amount=-3
+kerning first=49 second=86 amount=-3
+kerning first=49 second=71 amount=-4
+kerning first=49 second=79 amount=-4
+kerning first=49 second=83 amount=-3
+kerning first=49 second=84 amount=-4
+kerning first=49 second=85 amount=-4
+kerning first=49 second=66 amount=-3
+kerning first=49 second=67 amount=-4
+kerning first=49 second=68 amount=-4
+kerning first=49 second=80 amount=-3
+kerning first=49 second=104 amount=-3
+kerning first=49 second=74 amount=-4
+kerning first=49 second=76 amount=-3
+kerning first=49 second=102 amount=-4
+kerning first=49 second=63 amount=-4
+kerning first=49 second=69 amount=-3
+kerning first=49 second=70 amount=-3
+kerning first=49 second=93 amount=-4
+kerning first=49 second=40 amount=-4
+kerning first=49 second=41 amount=-3
+kerning first=49 second=108 amount=-3
+kerning first=49 second=64 amount=-4
+kerning first=49 second=82 amount=-3
+kerning first=49 second=47 amount=-3
+kerning first=49 second=92 amount=-4
+kerning first=49 second=107 amount=-3
+kerning first=49 second=73 amount=-3
+kerning first=49 second=105 amount=-3
+kerning first=49 second=33 amount=-3
+kerning first=49 second=121 amount=-3
+kerning first=49 second=98 amount=-3
+kerning first=49 second=100 amount=-4
+kerning first=49 second=112 amount=-3
+kerning first=49 second=113 amount=-4
+kerning first=49 second=103 amount=-3
+kerning first=49 second=116 amount=-3
+kerning first=49 second=59 amount=-3
+kerning first=49 second=119 amount=-3
+kerning first=49 second=109 amount=-4
+kerning first=49 second=118 amount=-3
+kerning first=49 second=122 amount=-3
+kerning first=49 second=97 amount=-3
+kerning first=49 second=110 amount=-3
+kerning first=49 second=111 amount=-3
+kerning first=49 second=114 amount=-3
+kerning first=49 second=120 amount=-2
+kerning first=49 second=99 amount=-3
+kerning first=49 second=101 amount=-4
+kerning first=49 second=115 amount=-3
+kerning first=49 second=117 amount=-3
+kerning first=49 second=58 amount=-3
+kerning first=49 second=35 amount=-4
+kerning first=49 second=34 amount=-3
+kerning first=49 second=39 amount=-3
+kerning first=49 second=44 amount=-3
+kerning first=49 second=46 amount=-3
+kerning first=49 second=45 amount=-4
+kerning first=40 second=106 amount=1
+kerning first=40 second=87 amount=1
+kerning first=40 second=81 amount=-1
+kerning first=40 second=88 amount=1
+kerning first=40 second=89 amount=1
+kerning first=40 second=90 amount=1
+kerning first=40 second=65 amount=1
+kerning first=40 second=75 amount=1
+kerning first=40 second=52 amount=-1
+kerning first=40 second=78 amount=1
+kerning first=40 second=86 amount=1
+kerning first=40 second=85 amount=1
+kerning first=40 second=51 amount=-1
+kerning first=40 second=66 amount=1
+kerning first=40 second=68 amount=1
+kerning first=40 second=80 amount=1
+kerning first=40 second=104 amount=1
+kerning first=40 second=54 amount=-2
+kerning first=40 second=57 amount=-1
+kerning first=40 second=48 amount=-1
+kerning first=40 second=74 amount=-1
+kerning first=40 second=76 amount=1
+kerning first=40 second=56 amount=-1
+kerning first=40 second=69 amount=1
+kerning first=40 second=93 amount=1
+kerning first=40 second=49 amount=-2
+kerning first=40 second=41 amount=1
+kerning first=40 second=108 amount=1
+kerning first=40 second=64 amount=-1
+kerning first=40 second=82 amount=1
+kerning first=40 second=47 amount=1
+kerning first=40 second=92 amount=1
+kerning first=40 second=107 amount=1
+kerning first=40 second=73 amount=1
+kerning first=40 second=105 amount=1
+kerning first=40 second=33 amount=1
+kerning first=40 second=98 amount=1
+kerning first=40 second=112 amount=1
+kerning first=40 second=59 amount=1
+kerning first=40 second=122 amount=1
+kerning first=40 second=97 amount=1
+kerning first=40 second=110 amount=1
+kerning first=40 second=114 amount=1
+kerning first=40 second=120 amount=1
+kerning first=40 second=58 amount=1
+kerning first=40 second=35 amount=-1
+kerning first=40 second=34 amount=1
+kerning first=40 second=39 amount=1
+kerning first=40 second=44 amount=1
+kerning first=40 second=46 amount=1
+kerning first=40 second=45 amount=-1
+kerning first=41 second=106 amount=1
+kerning first=41 second=81 amount=1
+kerning first=41 second=72 amount=1
+kerning first=41 second=52 amount=1
+kerning first=41 second=71 amount=1
+kerning first=41 second=79 amount=1
+kerning first=41 second=83 amount=1
+kerning first=41 second=85 amount=1
+kerning first=41 second=55 amount=-1
+kerning first=41 second=66 amount=1
+kerning first=41 second=67 amount=1
+kerning first=41 second=80 amount=1
+kerning first=41 second=104 amount=1
+kerning first=41 second=74 amount=1
+kerning first=41 second=102 amount=1
+kerning first=41 second=56 amount=-1
+kerning first=41 second=63 amount=1
+kerning first=41 second=69 amount=1
+kerning first=41 second=49 amount=-2
+kerning first=41 second=40 amount=1
+kerning first=41 second=108 amount=1
+kerning first=41 second=50 amount=-1
+kerning first=41 second=107 amount=1
+kerning first=41 second=73 amount=1
+kerning first=41 second=105 amount=1
+kerning first=41 second=33 amount=1
+kerning first=41 second=121 amount=1
+kerning first=41 second=98 amount=1
+kerning first=41 second=100 amount=1
+kerning first=41 second=112 amount=1
+kerning first=41 second=113 amount=1
+kerning first=41 second=103 amount=1
+kerning first=41 second=116 amount=2
+kerning first=41 second=59 amount=1
+kerning first=41 second=119 amount=2
+kerning first=41 second=109 amount=1
+kerning first=41 second=118 amount=2
+kerning first=41 second=97 amount=1
+kerning first=41 second=110 amount=1
+kerning first=41 second=111 amount=1
+kerning first=41 second=114 amount=1
+kerning first=41 second=120 amount=1
+kerning first=41 second=99 amount=1
+kerning first=41 second=101 amount=1
+kerning first=41 second=115 amount=1
+kerning first=41 second=117 amount=1
+kerning first=41 second=35 amount=1
+kerning first=41 second=34 amount=1
+kerning first=41 second=39 amount=1
+kerning first=41 second=44 amount=-1
+kerning first=41 second=45 amount=1
+kerning first=108 second=106 amount=1
+kerning first=108 second=104 amount=1
+kerning first=108 second=102 amount=1
+kerning first=108 second=63 amount=1
+kerning first=108 second=93 amount=1
+kerning first=108 second=49 amount=-2
+kerning first=108 second=40 amount=1
+kerning first=108 second=41 amount=1
+kerning first=108 second=108 amount=1
+kerning first=108 second=50 amount=1
+kerning first=108 second=47 amount=1
+kerning first=108 second=92 amount=1
+kerning first=108 second=107 amount=1
+kerning first=108 second=105 amount=1
+kerning first=108 second=33 amount=1
+kerning first=108 second=121 amount=1
+kerning first=108 second=98 amount=1
+kerning first=108 second=100 amount=1
+kerning first=108 second=112 amount=1
+kerning first=108 second=113 amount=1
+kerning first=108 second=103 amount=1
+kerning first=108 second=116 amount=2
+kerning first=108 second=59 amount=2
+kerning first=108 second=119 amount=2
+kerning first=108 second=118 amount=2
+kerning first=108 second=122 amount=1
+kerning first=108 second=97 amount=1
+kerning first=108 second=110 amount=1
+kerning first=108 second=111 amount=1
+kerning first=108 second=114 amount=1
+kerning first=108 second=120 amount=1
+kerning first=108 second=99 amount=1
+kerning first=108 second=101 amount=1
+kerning first=108 second=115 amount=1
+kerning first=108 second=117 amount=1
+kerning first=108 second=58 amount=1
+kerning first=108 second=35 amount=1
+kerning first=108 second=34 amount=1
+kerning first=108 second=39 amount=1
+kerning first=108 second=44 amount=1
+kerning first=108 second=46 amount=1
+kerning first=108 second=45 amount=1
+kerning first=64 second=106 amount=1
+kerning first=64 second=87 amount=-1
+kerning first=64 second=81 amount=1
+kerning first=64 second=72 amount=1
+kerning first=64 second=88 amount=-2
+kerning first=64 second=89 amount=-2
+kerning first=64 second=90 amount=-1
+kerning first=64 second=65 amount=-1
+kerning first=64 second=52 amount=1
+kerning first=64 second=86 amount=-1
+kerning first=64 second=71 amount=1
+kerning first=64 second=79 amount=1
+kerning first=64 second=84 amount=-2
+kerning first=64 second=51 amount=-2
+kerning first=64 second=55 amount=-2
+kerning first=64 second=67 amount=1
+kerning first=64 second=57 amount=-1
+kerning first=64 second=74 amount=1
+kerning first=64 second=102 amount=1
+kerning first=64 second=56 amount=-1
+kerning first=64 second=63 amount=-1
+kerning first=64 second=93 amount=-3
+kerning first=64 second=49 amount=-4
+kerning first=64 second=40 amount=1
+kerning first=64 second=41 amount=-1
+kerning first=64 second=108 amount=1
+kerning first=64 second=50 amount=-3
+kerning first=64 second=47 amount=-1
+kerning first=64 second=92 amount=-3
+kerning first=64 second=107 amount=1
+kerning first=64 second=105 amount=1
+kerning first=64 second=33 amount=1
+kerning first=64 second=121 amount=1
+kerning first=64 second=100 amount=1
+kerning first=64 second=113 amount=1
+kerning first=64 second=103 amount=1
+kerning first=64 second=116 amount=1
+kerning first=64 second=119 amount=1
+kerning first=64 second=118 amount=1
+kerning first=64 second=122 amount=-1
+kerning first=64 second=97 amount=1
+kerning first=64 second=110 amount=1
+kerning first=64 second=111 amount=1
+kerning first=64 second=114 amount=1
+kerning first=64 second=99 amount=1
+kerning first=64 second=101 amount=1
+kerning first=64 second=117 amount=1
+kerning first=64 second=35 amount=1
+kerning first=64 second=34 amount=-2
+kerning first=64 second=39 amount=-2
+kerning first=64 second=44 amount=-3
+kerning first=64 second=46 amount=-2
+kerning first=64 second=45 amount=1
+kerning first=82 second=106 amount=1
+kerning first=82 second=72 amount=1
+kerning first=82 second=77 amount=1
+kerning first=82 second=88 amount=2
+kerning first=82 second=89 amount=-1
+kerning first=82 second=90 amount=2
+kerning first=82 second=65 amount=1
+kerning first=82 second=75 amount=1
+kerning first=82 second=52 amount=-3
+kerning first=82 second=78 amount=1
+kerning first=82 second=53 amount=1
+kerning first=82 second=55 amount=1
+kerning first=82 second=66 amount=1
+kerning first=82 second=67 amount=1
+kerning first=82 second=68 amount=1
+kerning first=82 second=80 amount=1
+kerning first=82 second=104 amount=1
+kerning first=82 second=54 amount=-1
+kerning first=82 second=57 amount=-1
+kerning first=82 second=74 amount=-1
+kerning first=82 second=76 amount=1
+kerning first=82 second=63 amount=-1
+kerning first=82 second=69 amount=1
+kerning first=82 second=70 amount=1
+kerning first=82 second=93 amount=1
+kerning first=82 second=49 amount=-2
+kerning first=82 second=40 amount=1
+kerning first=82 second=41 amount=1
+kerning first=82 second=108 amount=2
+kerning first=82 second=82 amount=1
+kerning first=82 second=50 amount=1
+kerning first=82 second=47 amount=1
+kerning first=82 second=107 amount=1
+kerning first=82 second=73 amount=1
+kerning first=82 second=105 amount=1
+kerning first=82 second=33 amount=1
+kerning first=82 second=121 amount=-1
+kerning first=82 second=98 amount=1
+kerning first=82 second=100 amount=1
+kerning first=82 second=112 amount=1
+kerning first=82 second=113 amount=1
+kerning first=82 second=103 amount=1
+kerning first=82 second=59 amount=1
+kerning first=82 second=122 amount=1
+kerning first=82 second=97 amount=2
+kerning first=82 second=110 amount=1
+kerning first=82 second=111 amount=1
+kerning first=82 second=114 amount=1
+kerning first=82 second=120 amount=2
+kerning first=82 second=99 amount=1
+kerning first=82 second=101 amount=1
+kerning first=82 second=115 amount=1
+kerning first=82 second=117 amount=1
+kerning first=82 second=58 amount=1
+kerning first=82 second=35 amount=-3
+kerning first=82 second=44 amount=2
+kerning first=82 second=46 amount=2
+kerning first=82 second=45 amount=-4
+kerning first=50 second=106 amount=1
+kerning first=50 second=81 amount=-1
+kerning first=50 second=88 amount=1
+kerning first=50 second=90 amount=1
+kerning first=50 second=74 amount=-1
+kerning first=50 second=41 amount=1
+kerning first=50 second=108 amount=1
+kerning first=50 second=47 amount=1
+kerning first=50 second=107 amount=1
+kerning first=50 second=105 amount=1
+kerning first=50 second=119 amount=1
+kerning first=50 second=118 amount=1
+kerning first=50 second=122 amount=1
+kerning first=50 second=97 amount=1
+kerning first=50 second=110 amount=1
+kerning first=50 second=120 amount=1
+kerning first=50 second=115 amount=1
+kerning first=50 second=35 amount=-1
+kerning first=50 second=34 amount=1
+kerning first=50 second=39 amount=1
+kerning first=50 second=46 amount=1
+kerning first=50 second=45 amount=-2
+kerning first=47 second=87 amount=1
+kerning first=47 second=81 amount=-2
+kerning first=47 second=88 amount=1
+kerning first=47 second=90 amount=-1
+kerning first=47 second=65 amount=-4
+kerning first=47 second=75 amount=1
+kerning first=47 second=52 amount=-4
+kerning first=47 second=86 amount=1
+kerning first=47 second=53 amount=-1
+kerning first=47 second=71 amount=-1
+kerning first=47 second=79 amount=-1
+kerning first=47 second=83 amount=-1
+kerning first=47 second=51 amount=-2
+kerning first=47 second=55 amount=-1
+kerning first=47 second=66 amount=1
+kerning first=47 second=67 amount=-1
+kerning first=47 second=54 amount=-2
+kerning first=47 second=57 amount=-2
+kerning first=47 second=48 amount=-2
+kerning first=47 second=74 amount=-4
+kerning first=47 second=102 amount=-2
+kerning first=47 second=56 amount=-2
+kerning first=47 second=63 amount=-1
+kerning first=47 second=49 amount=-2
+kerning first=47 second=40 amount=-1
+kerning first=47 second=64 amount=-5
+kerning first=47 second=50 amount=-3
+kerning first=47 second=47 amount=-6
+kerning first=47 second=121 amount=-2
+kerning first=47 second=100 amount=-3
+kerning first=47 second=112 amount=-2
+kerning first=47 second=113 amount=-3
+kerning first=47 second=103 amount=-3
+kerning first=47 second=116 amount=-2
+kerning first=47 second=59 amount=-3
+kerning first=47 second=119 amount=-1
+kerning first=47 second=109 amount=-2
+kerning first=47 second=118 amount=-1
+kerning first=47 second=122 amount=-3
+kerning first=47 second=97 amount=-3
+kerning first=47 second=110 amount=-2
+kerning first=47 second=111 amount=-3
+kerning first=47 second=114 amount=-2
+kerning first=47 second=120 amount=-2
+kerning first=47 second=99 amount=-4
+kerning first=47 second=101 amount=-4
+kerning first=47 second=115 amount=-4
+kerning first=47 second=117 amount=-2
+kerning first=47 second=58 amount=-3
+kerning first=47 second=35 amount=-2
+kerning first=47 second=34 amount=1
+kerning first=47 second=39 amount=1
+kerning first=47 second=44 amount=-4
+kerning first=47 second=46 amount=-5
+kerning first=47 second=45 amount=-4
+kerning first=92 second=87 amount=-3
+kerning first=92 second=81 amount=-1
+kerning first=92 second=88 amount=1
+kerning first=92 second=89 amount=-3
+kerning first=92 second=52 amount=-2
+kerning first=92 second=86 amount=-2
+kerning first=92 second=71 amount=-1
+kerning first=92 second=79 amount=-1
+kerning first=92 second=83 amount=-1
+kerning first=92 second=84 amount=-2
+kerning first=92 second=85 amount=-1
+kerning first=92 second=51 amount=-1
+kerning first=92 second=54 amount=-2
+kerning first=92 second=57 amount=-1
+kerning first=92 second=48 amount=-1
+kerning first=92 second=74 amount=-1
+kerning first=92 second=102 amount=-2
+kerning first=92 second=56 amount=-1
+kerning first=92 second=63 amount=-2
+kerning first=92 second=93 amount=-1
+kerning first=92 second=49 amount=-3
+kerning first=92 second=108 amount=1
+kerning first=92 second=64 amount=-1
+kerning first=92 second=92 amount=-4
+kerning first=92 second=121 amount=-2
+kerning first=92 second=116 amount=-1
+kerning first=92 second=59 amount=1
+kerning first=92 second=118 amount=-1
+kerning first=92 second=122 amount=1
+kerning first=92 second=97 amount=1
+kerning first=92 second=110 amount=1
+kerning first=92 second=114 amount=1
+kerning first=92 second=120 amount=1
+kerning first=92 second=115 amount=1
+kerning first=92 second=58 amount=1
+kerning first=92 second=35 amount=-3
+kerning first=92 second=34 amount=-6
+kerning first=92 second=39 amount=-4
+kerning first=92 second=44 amount=1
+kerning first=92 second=46 amount=1
+kerning first=92 second=45 amount=-2
+kerning first=107 second=106 amount=1
+kerning first=107 second=52 amount=-1
+kerning first=107 second=53 amount=1
+kerning first=107 second=55 amount=1
+kerning first=107 second=104 amount=1
+kerning first=107 second=102 amount=1
+kerning first=107 second=49 amount=-2
+kerning first=107 second=40 amount=1
+kerning first=107 second=41 amount=1
+kerning first=107 second=108 amount=1
+kerning first=107 second=50 amount=1
+kerning first=107 second=47 amount=1
+kerning first=107 second=92 amount=-2
+kerning first=107 second=107 amount=1
+kerning first=107 second=105 amount=1
+kerning first=107 second=33 amount=1
+kerning first=107 second=121 amount=2
+kerning first=107 second=98 amount=1
+kerning first=107 second=100 amount=1
+kerning first=107 second=112 amount=1
+kerning first=107 second=113 amount=1
+kerning first=107 second=103 amount=1
+kerning first=107 second=116 amount=1
+kerning first=107 second=59 amount=2
+kerning first=107 second=119 amount=2
+kerning first=107 second=109 amount=1
+kerning first=107 second=118 amount=2
+kerning first=107 second=122 amount=2
+kerning first=107 second=97 amount=2
+kerning first=107 second=110 amount=2
+kerning first=107 second=111 amount=1
+kerning first=107 second=114 amount=1
+kerning first=107 second=120 amount=2
+kerning first=107 second=99 amount=1
+kerning first=107 second=101 amount=1
+kerning first=107 second=115 amount=2
+kerning first=107 second=117 amount=1
+kerning first=107 second=58 amount=1
+kerning first=107 second=35 amount=1
+kerning first=107 second=34 amount=-1
+kerning first=107 second=39 amount=-1
+kerning first=107 second=44 amount=2
+kerning first=107 second=46 amount=2
+kerning first=107 second=45 amount=-2
+kerning first=73 second=106 amount=1
+kerning first=73 second=87 amount=1
+kerning first=73 second=72 amount=1
+kerning first=73 second=88 amount=1
+kerning first=73 second=90 amount=1
+kerning first=73 second=65 amount=1
+kerning first=73 second=75 amount=1
+kerning first=73 second=86 amount=1
+kerning first=73 second=71 amount=1
+kerning first=73 second=83 amount=1
+kerning first=73 second=85 amount=1
+kerning first=73 second=66 amount=1
+kerning first=73 second=67 amount=1
+kerning first=73 second=80 amount=1
+kerning first=73 second=54 amount=-1
+kerning first=73 second=76 amount=1
+kerning first=73 second=102 amount=1
+kerning first=73 second=56 amount=-1
+kerning first=73 second=93 amount=1
+kerning first=73 second=49 amount=-2
+kerning first=73 second=41 amount=1
+kerning first=73 second=108 amount=1
+kerning first=73 second=82 amount=1
+kerning first=73 second=47 amount=1
+kerning first=73 second=92 amount=1
+kerning first=73 second=107 amount=1
+kerning first=73 second=73 amount=1
+kerning first=73 second=105 amount=1
+kerning first=73 second=33 amount=1
+kerning first=73 second=121 amount=1
+kerning first=73 second=98 amount=1
+kerning first=73 second=112 amount=1
+kerning first=73 second=113 amount=1
+kerning first=73 second=103 amount=1
+kerning first=73 second=116 amount=1
+kerning first=73 second=59 amount=1
+kerning first=73 second=119 amount=1
+kerning first=73 second=118 amount=1
+kerning first=73 second=122 amount=1
+kerning first=73 second=97 amount=1
+kerning first=73 second=110 amount=1
+kerning first=73 second=111 amount=1
+kerning first=73 second=114 amount=1
+kerning first=73 second=120 amount=1
+kerning first=73 second=99 amount=1
+kerning first=73 second=115 amount=1
+kerning first=73 second=117 amount=1
+kerning first=73 second=58 amount=1
+kerning first=73 second=34 amount=1
+kerning first=73 second=39 amount=1
+kerning first=73 second=44 amount=1
+kerning first=73 second=46 amount=1
+kerning first=105 second=106 amount=1
+kerning first=105 second=104 amount=1
+kerning first=105 second=102 amount=1
+kerning first=105 second=63 amount=1
+kerning first=105 second=93 amount=1
+kerning first=105 second=49 amount=-2
+kerning first=105 second=40 amount=1
+kerning first=105 second=41 amount=1
+kerning first=105 second=108 amount=1
+kerning first=105 second=47 amount=1
+kerning first=105 second=92 amount=1
+kerning first=105 second=107 amount=1
+kerning first=105 second=105 amount=1
+kerning first=105 second=33 amount=1
+kerning first=105 second=121 amount=2
+kerning first=105 second=98 amount=1
+kerning first=105 second=100 amount=1
+kerning first=105 second=112 amount=1
+kerning first=105 second=113 amount=1
+kerning first=105 second=103 amount=1
+kerning first=105 second=116 amount=2
+kerning first=105 second=59 amount=2
+kerning first=105 second=119 amount=2
+kerning first=105 second=109 amount=1
+kerning first=105 second=118 amount=2
+kerning first=105 second=122 amount=1
+kerning first=105 second=97 amount=1
+kerning first=105 second=110 amount=1
+kerning first=105 second=111 amount=1
+kerning first=105 second=114 amount=1
+kerning first=105 second=120 amount=1
+kerning first=105 second=99 amount=1
+kerning first=105 second=115 amount=1
+kerning first=105 second=117 amount=1
+kerning first=105 second=58 amount=1
+kerning first=105 second=35 amount=1
+kerning first=105 second=34 amount=1
+kerning first=105 second=39 amount=1
+kerning first=105 second=44 amount=1
+kerning first=105 second=46 amount=1
+kerning first=33 second=106 amount=1
+kerning first=33 second=87 amount=1
+kerning first=33 second=81 amount=1
+kerning first=33 second=72 amount=1
+kerning first=33 second=88 amount=1
+kerning first=33 second=89 amount=1
+kerning first=33 second=90 amount=1
+kerning first=33 second=65 amount=1
+kerning first=33 second=75 amount=1
+kerning first=33 second=52 amount=1
+kerning first=33 second=78 amount=1
+kerning first=33 second=86 amount=1
+kerning first=33 second=53 amount=2
+kerning first=33 second=71 amount=1
+kerning first=33 second=79 amount=1
+kerning first=33 second=83 amount=1
+kerning first=33 second=84 amount=1
+kerning first=33 second=85 amount=1
+kerning first=33 second=66 amount=1
+kerning first=33 second=67 amount=1
+kerning first=33 second=68 amount=1
+kerning first=33 second=80 amount=1
+kerning first=33 second=104 amount=1
+kerning first=33 second=74 amount=1
+kerning first=33 second=76 amount=1
+kerning first=33 second=102 amount=1
+kerning first=33 second=63 amount=1
+kerning first=33 second=69 amount=1
+kerning first=33 second=93 amount=1
+kerning first=33 second=49 amount=-2
+kerning first=33 second=40 amount=1
+kerning first=33 second=41 amount=1
+kerning first=33 second=108 amount=1
+kerning first=33 second=82 amount=1
+kerning first=33 second=47 amount=1
+kerning first=33 second=92 amount=1
+kerning first=33 second=107 amount=1
+kerning first=33 second=73 amount=2
+kerning first=33 second=105 amount=1
+kerning first=33 second=33 amount=1
+kerning first=33 second=121 amount=1
+kerning first=33 second=98 amount=1
+kerning first=33 second=100 amount=1
+kerning first=33 second=112 amount=1
+kerning first=33 second=113 amount=1
+kerning first=33 second=103 amount=1
+kerning first=33 second=116 amount=2
+kerning first=33 second=59 amount=1
+kerning first=33 second=119 amount=2
+kerning first=33 second=118 amount=2
+kerning first=33 second=122 amount=1
+kerning first=33 second=97 amount=1
+kerning first=33 second=110 amount=1
+kerning first=33 second=111 amount=1
+kerning first=33 second=114 amount=1
+kerning first=33 second=120 amount=1
+kerning first=33 second=99 amount=1
+kerning first=33 second=101 amount=1
+kerning first=33 second=115 amount=1
+kerning first=33 second=117 amount=1
+kerning first=33 second=58 amount=1
+kerning first=33 second=35 amount=1
+kerning first=33 second=43 amount=1
+kerning first=33 second=34 amount=1
+kerning first=33 second=39 amount=1
+kerning first=33 second=44 amount=1
+kerning first=33 second=46 amount=1
+kerning first=33 second=45 amount=1
+kerning first=121 second=106 amount=1
+kerning first=121 second=51 amount=-1
+kerning first=121 second=55 amount=-3
+kerning first=121 second=104 amount=1
+kerning first=121 second=102 amount=1
+kerning first=121 second=93 amount=-3
+kerning first=121 second=49 amount=-3
+kerning first=121 second=40 amount=1
+kerning first=121 second=41 amount=-1
+kerning first=121 second=108 amount=1
+kerning first=121 second=64 amount=-1
+kerning first=121 second=50 amount=-2
+kerning first=121 second=47 amount=-2
+kerning first=121 second=92 amount=-2
+kerning first=121 second=107 amount=1
+kerning first=121 second=105 amount=1
+kerning first=121 second=33 amount=1
+kerning first=121 second=121 amount=1
+kerning first=121 second=98 amount=1
+kerning first=121 second=112 amount=1
+kerning first=121 second=116 amount=2
+kerning first=121 second=59 amount=1
+kerning first=121 second=119 amount=2
+kerning first=121 second=109 amount=1
+kerning first=121 second=118 amount=2
+kerning first=121 second=97 amount=1
+kerning first=121 second=110 amount=1
+kerning first=121 second=111 amount=1
+kerning first=121 second=114 amount=1
+kerning first=121 second=120 amount=1
+kerning first=121 second=117 amount=1
+kerning first=121 second=35 amount=1
+kerning first=121 second=44 amount=-2
+kerning first=121 second=46 amount=-2
+kerning first=121 second=32 amount=1
+kerning first=98 second=52 amount=1
+kerning first=98 second=102 amount=1
+kerning first=98 second=56 amount=-1
+kerning first=98 second=63 amount=-1
+kerning first=98 second=93 amount=-1
+kerning first=98 second=49 amount=-4
+kerning first=98 second=40 amount=1
+kerning first=98 second=108 amount=1
+kerning first=98 second=92 amount=-3
+kerning first=98 second=107 amount=1
+kerning first=98 second=105 amount=1
+kerning first=98 second=33 amount=1
+kerning first=98 second=100 amount=1
+kerning first=98 second=112 amount=1
+kerning first=98 second=113 amount=1
+kerning first=98 second=103 amount=1
+kerning first=98 second=116 amount=1
+kerning first=98 second=119 amount=1
+kerning first=98 second=118 amount=1
+kerning first=98 second=97 amount=1
+kerning first=98 second=110 amount=1
+kerning first=98 second=111 amount=1
+kerning first=98 second=114 amount=1
+kerning first=98 second=120 amount=1
+kerning first=98 second=99 amount=1
+kerning first=98 second=101 amount=1
+kerning first=98 second=115 amount=1
+kerning first=98 second=117 amount=1
+kerning first=98 second=35 amount=1
+kerning first=98 second=34 amount=-3
+kerning first=98 second=39 amount=-3
+kerning first=98 second=46 amount=1
+kerning first=98 second=45 amount=1
+kerning first=100 second=106 amount=1
+kerning first=100 second=102 amount=1
+kerning first=100 second=56 amount=-1
+kerning first=100 second=63 amount=1
+kerning first=100 second=93 amount=1
+kerning first=100 second=49 amount=-2
+kerning first=100 second=41 amount=1
+kerning first=100 second=108 amount=1
+kerning first=100 second=47 amount=1
+kerning first=100 second=92 amount=1
+kerning first=100 second=107 amount=1
+kerning first=100 second=105 amount=1
+kerning first=100 second=33 amount=1
+kerning first=100 second=121 amount=1
+kerning first=100 second=98 amount=1
+kerning first=100 second=112 amount=1
+kerning first=100 second=113 amount=1
+kerning first=100 second=103 amount=1
+kerning first=100 second=116 amount=1
+kerning first=100 second=59 amount=1
+kerning first=100 second=119 amount=2
+kerning first=100 second=118 amount=1
+kerning first=100 second=122 amount=1
+kerning first=100 second=97 amount=1
+kerning first=100 second=110 amount=1
+kerning first=100 second=111 amount=1
+kerning first=100 second=114 amount=1
+kerning first=100 second=120 amount=1
+kerning first=100 second=99 amount=1
+kerning first=100 second=115 amount=1
+kerning first=100 second=117 amount=1
+kerning first=100 second=58 amount=1
+kerning first=100 second=34 amount=1
+kerning first=100 second=39 amount=1
+kerning first=100 second=44 amount=1
+kerning first=100 second=46 amount=1
+kerning first=112 second=106 amount=1
+kerning first=112 second=52 amount=1
+kerning first=112 second=104 amount=1
+kerning first=112 second=102 amount=1
+kerning first=112 second=63 amount=-1
+kerning first=112 second=93 amount=-1
+kerning first=112 second=49 amount=-3
+kerning first=112 second=40 amount=1
+kerning first=112 second=108 amount=1
+kerning first=112 second=50 amount=-1
+kerning first=112 second=92 amount=-3
+kerning first=112 second=107 amount=1
+kerning first=112 second=105 amount=1
+kerning first=112 second=33 amount=1
+kerning first=112 second=98 amount=1
+kerning first=112 second=100 amount=1
+kerning first=112 second=113 amount=1
+kerning first=112 second=103 amount=1
+kerning first=112 second=116 amount=2
+kerning first=112 second=119 amount=1
+kerning first=112 second=118 amount=1
+kerning first=112 second=97 amount=1
+kerning first=112 second=110 amount=1
+kerning first=112 second=111 amount=1
+kerning first=112 second=114 amount=1
+kerning first=112 second=120 amount=1
+kerning first=112 second=99 amount=1
+kerning first=112 second=101 amount=1
+kerning first=112 second=115 amount=1
+kerning first=112 second=117 amount=1
+kerning first=112 second=35 amount=1
+kerning first=112 second=34 amount=-2
+kerning first=112 second=39 amount=-2
+kerning first=112 second=44 amount=-1
+kerning first=112 second=45 amount=1
+kerning first=113 second=106 amount=3
+kerning first=113 second=52 amount=1
+kerning first=113 second=104 amount=1
+kerning first=113 second=102 amount=1
+kerning first=113 second=49 amount=-3
+kerning first=113 second=40 amount=1
+kerning first=113 second=41 amount=1
+kerning first=113 second=108 amount=1
+kerning first=113 second=47 amount=1
+kerning first=113 second=92 amount=-2
+kerning first=113 second=107 amount=1
+kerning first=113 second=105 amount=1
+kerning first=113 second=33 amount=1
+kerning first=113 second=121 amount=1
+kerning first=113 second=98 amount=1
+kerning first=113 second=100 amount=1
+kerning first=113 second=112 amount=1
+kerning first=113 second=103 amount=1
+kerning first=113 second=116 amount=2
+kerning first=113 second=59 amount=2
+kerning first=113 second=119 amount=2
+kerning first=113 second=109 amount=1
+kerning first=113 second=118 amount=2
+kerning first=113 second=122 amount=1
+kerning first=113 second=97 amount=1
+kerning first=113 second=110 amount=1
+kerning first=113 second=111 amount=1
+kerning first=113 second=114 amount=1
+kerning first=113 second=120 amount=1
+kerning first=113 second=99 amount=1
+kerning first=113 second=101 amount=1
+kerning first=113 second=115 amount=1
+kerning first=113 second=117 amount=1
+kerning first=113 second=58 amount=1
+kerning first=113 second=35 amount=1
+kerning first=113 second=44 amount=2
+kerning first=113 second=46 amount=1
+kerning first=113 second=45 amount=1
+kerning first=103 second=106 amount=3
+kerning first=103 second=52 amount=1
+kerning first=103 second=53 amount=1
+kerning first=103 second=104 amount=1
+kerning first=103 second=102 amount=1
+kerning first=103 second=49 amount=-3
+kerning first=103 second=40 amount=1
+kerning first=103 second=41 amount=1
+kerning first=103 second=108 amount=1
+kerning first=103 second=47 amount=1
+kerning first=103 second=92 amount=-2
+kerning first=103 second=107 amount=1
+kerning first=103 second=105 amount=1
+kerning first=103 second=33 amount=1
+kerning first=103 second=121 amount=1
+kerning first=103 second=98 amount=1
+kerning first=103 second=100 amount=1
+kerning first=103 second=112 amount=1
+kerning first=103 second=113 amount=1
+kerning first=103 second=103 amount=1
+kerning first=103 second=116 amount=2
+kerning first=103 second=59 amount=2
+kerning first=103 second=119 amount=2
+kerning first=103 second=118 amount=2
+kerning first=103 second=122 amount=1
+kerning first=103 second=97 amount=1
+kerning first=103 second=110 amount=1
+kerning first=103 second=111 amount=1
+kerning first=103 second=114 amount=1
+kerning first=103 second=120 amount=1
+kerning first=103 second=99 amount=1
+kerning first=103 second=101 amount=1
+kerning first=103 second=115 amount=1
+kerning first=103 second=117 amount=1
+kerning first=103 second=58 amount=1
+kerning first=103 second=35 amount=1
+kerning first=103 second=34 amount=-1
+kerning first=103 second=44 amount=2
+kerning first=103 second=46 amount=1
+kerning first=103 second=45 amount=1
+kerning first=116 second=106 amount=2
+kerning first=116 second=52 amount=-1
+kerning first=116 second=55 amount=-1
+kerning first=116 second=104 amount=1
+kerning first=116 second=54 amount=1
+kerning first=116 second=57 amount=1
+kerning first=116 second=48 amount=1
+kerning first=116 second=102 amount=2
+kerning first=116 second=63 amount=1
+kerning first=116 second=93 amount=-1
+kerning first=116 second=49 amount=-3
+kerning first=116 second=40 amount=2
+kerning first=116 second=108 amount=2
+kerning first=116 second=50 amount=-1
+kerning first=116 second=92 amount=-1
+kerning first=116 second=107 amount=2
+kerning first=116 second=105 amount=2
+kerning first=116 second=33 amount=2
+kerning first=116 second=121 amount=2
+kerning first=116 second=98 amount=1
+kerning first=116 second=100 amount=1
+kerning first=116 second=112 amount=2
+kerning first=116 second=113 amount=1
+kerning first=116 second=103 amount=1
+kerning first=116 second=116 amount=2
+kerning first=116 second=59 amount=1
+kerning first=116 second=119 amount=3
+kerning first=116 second=109 amount=1
+kerning first=116 second=118 amount=3
+kerning first=116 second=122 amount=1
+kerning first=116 second=97 amount=1
+kerning first=116 second=110 amount=2
+kerning first=116 second=111 amount=1
+kerning first=116 second=114 amount=2
+kerning first=116 second=120 amount=2
+kerning first=116 second=99 amount=1
+kerning first=116 second=101 amount=1
+kerning first=116 second=115 amount=1
+kerning first=116 second=117 amount=2
+kerning first=116 second=58 amount=1
+kerning first=116 second=35 amount=1
+kerning first=116 second=34 amount=1
+kerning first=116 second=39 amount=1
+kerning first=116 second=45 amount=-1
+kerning first=116 second=32 amount=1
+kerning first=59 second=106 amount=1
+kerning first=59 second=87 amount=-1
+kerning first=59 second=89 amount=-2
+kerning first=59 second=52 amount=-1
+kerning first=59 second=86 amount=-1
+kerning first=59 second=53 amount=-1
+kerning first=59 second=84 amount=-2
+kerning first=59 second=51 amount=-1
+kerning first=59 second=67 amount=1
+kerning first=59 second=54 amount=-1
+kerning first=59 second=57 amount=-1
+kerning first=59 second=74 amount=-2
+kerning first=59 second=102 amount=1
+kerning first=59 second=56 amount=-1
+kerning first=59 second=63 amount=-1
+kerning first=59 second=93 amount=-1
+kerning first=59 second=49 amount=-4
+kerning first=59 second=64 amount=-1
+kerning first=59 second=92 amount=-2
+kerning first=59 second=105 amount=1
+kerning first=59 second=33 amount=1
+kerning first=59 second=121 amount=1
+kerning first=59 second=112 amount=1
+kerning first=59 second=116 amount=1
+kerning first=59 second=59 amount=1
+kerning first=59 second=119 amount=2
+kerning first=59 second=118 amount=1
+kerning first=59 second=110 amount=1
+kerning first=59 second=114 amount=1
+kerning first=59 second=120 amount=1
+kerning first=59 second=117 amount=1
+kerning first=59 second=34 amount=-1
+kerning first=59 second=44 amount=1
+kerning first=59 second=45 amount=-1
+kerning first=119 second=106 amount=1
+kerning first=119 second=55 amount=-2
+kerning first=119 second=104 amount=1
+kerning first=119 second=102 amount=1
+kerning first=119 second=63 amount=1
+kerning first=119 second=93 amount=-3
+kerning first=119 second=49 amount=-3
+kerning first=119 second=40 amount=1
+kerning first=119 second=108 amount=1
+kerning first=119 second=64 amount=-1
+kerning first=119 second=50 amount=-1
+kerning first=119 second=47 amount=-2
+kerning first=119 second=92 amount=-1
+kerning first=119 second=107 amount=1
+kerning first=119 second=105 amount=1
+kerning first=119 second=33 amount=1
+kerning first=119 second=121 amount=2
+kerning first=119 second=98 amount=1
+kerning first=119 second=112 amount=1
+kerning first=119 second=116 amount=1
+kerning first=119 second=59 amount=1
+kerning first=119 second=119 amount=2
+kerning first=119 second=109 amount=1
+kerning first=119 second=118 amount=2
+kerning first=119 second=110 amount=1
+kerning first=119 second=114 amount=1
+kerning first=119 second=120 amount=1
+kerning first=119 second=117 amount=1
+kerning first=119 second=35 amount=1
+kerning first=119 second=34 amount=1
+kerning first=119 second=39 amount=1
+kerning first=119 second=44 amount=-2
+kerning first=119 second=46 amount=-2
+kerning first=109 second=106 amount=1
+kerning first=109 second=51 amount=-1
+kerning first=109 second=55 amount=1
+kerning first=109 second=104 amount=1
+kerning first=109 second=54 amount=-1
+kerning first=109 second=57 amount=-1
+kerning first=109 second=102 amount=1
+kerning first=109 second=56 amount=-1
+kerning first=109 second=63 amount=-2
+kerning first=109 second=49 amount=-3
+kerning first=109 second=41 amount=1
+kerning first=109 second=108 amount=1
+kerning first=109 second=50 amount=1
+kerning first=109 second=47 amount=1
+kerning first=109 second=92 amount=-3
+kerning first=109 second=107 amount=1
+kerning first=109 second=105 amount=1
+kerning first=109 second=33 amount=1
+kerning first=109 second=121 amount=1
+kerning first=109 second=98 amount=1
+kerning first=109 second=100 amount=1
+kerning first=109 second=112 amount=1
+kerning first=109 second=116 amount=1
+kerning first=109 second=59 amount=2
+kerning first=109 second=119 amount=1
+kerning first=109 second=118 amount=1
+kerning first=109 second=122 amount=1
+kerning first=109 second=97 amount=1
+kerning first=109 second=110 amount=1
+kerning first=109 second=111 amount=1
+kerning first=109 second=114 amount=1
+kerning first=109 second=120 amount=2
+kerning first=109 second=115 amount=1
+kerning first=109 second=58 amount=1
+kerning first=109 second=39 amount=-1
+kerning first=109 second=44 amount=2
+kerning first=109 second=46 amount=1
+kerning first=118 second=106 amount=2
+kerning first=118 second=55 amount=-2
+kerning first=118 second=104 amount=1
+kerning first=118 second=54 amount=1
+kerning first=118 second=57 amount=1
+kerning first=118 second=48 amount=1
+kerning first=118 second=102 amount=2
+kerning first=118 second=63 amount=1
+kerning first=118 second=93 amount=-2
+kerning first=118 second=49 amount=-3
+kerning first=118 second=40 amount=2
+kerning first=118 second=108 amount=2
+kerning first=118 second=50 amount=-1
+kerning first=118 second=47 amount=-1
+kerning first=118 second=92 amount=-1
+kerning first=118 second=107 amount=2
+kerning first=118 second=105 amount=2
+kerning first=118 second=33 amount=2
+kerning first=118 second=121 amount=2
+kerning first=118 second=98 amount=1
+kerning first=118 second=100 amount=1
+kerning first=118 second=112 amount=2
+kerning first=118 second=113 amount=1
+kerning first=118 second=103 amount=1
+kerning first=118 second=116 amount=2
+kerning first=118 second=59 amount=1
+kerning first=118 second=119 amount=3
+kerning first=118 second=109 amount=1
+kerning first=118 second=118 amount=3
+kerning first=118 second=122 amount=1
+kerning first=118 second=97 amount=1
+kerning first=118 second=110 amount=2
+kerning first=118 second=111 amount=1
+kerning first=118 second=114 amount=2
+kerning first=118 second=120 amount=2
+kerning first=118 second=99 amount=1
+kerning first=118 second=101 amount=1
+kerning first=118 second=115 amount=1
+kerning first=118 second=117 amount=2
+kerning first=118 second=58 amount=1
+kerning first=118 second=35 amount=2
+kerning first=118 second=34 amount=1
+kerning first=118 second=39 amount=1
+kerning first=118 second=44 amount=-2
+kerning first=118 second=46 amount=-1
+kerning first=118 second=32 amount=1
+kerning first=122 second=106 amount=1
+kerning first=122 second=52 amount=-1
+kerning first=122 second=104 amount=1
+kerning first=122 second=102 amount=1
+kerning first=122 second=49 amount=-3
+kerning first=122 second=40 amount=1
+kerning first=122 second=41 amount=1
+kerning first=122 second=108 amount=1
+kerning first=122 second=50 amount=1
+kerning first=122 second=47 amount=1
+kerning first=122 second=92 amount=-2
+kerning first=122 second=107 amount=1
+kerning first=122 second=105 amount=1
+kerning first=122 second=33 amount=1
+kerning first=122 second=121 amount=2
+kerning first=122 second=98 amount=1
+kerning first=122 second=100 amount=1
+kerning first=122 second=112 amount=1
+kerning first=122 second=103 amount=1
+kerning first=122 second=116 amount=2
+kerning first=122 second=59 amount=1
+kerning first=122 second=119 amount=2
+kerning first=122 second=109 amount=1
+kerning first=122 second=118 amount=2
+kerning first=122 second=122 amount=1
+kerning first=122 second=97 amount=1
+kerning first=122 second=110 amount=1
+kerning first=122 second=111 amount=1
+kerning first=122 second=114 amount=1
+kerning first=122 second=120 amount=1
+kerning first=122 second=99 amount=1
+kerning first=122 second=115 amount=1
+kerning first=122 second=117 amount=1
+kerning first=122 second=58 amount=1
+kerning first=122 second=35 amount=1
+kerning first=122 second=44 amount=1
+kerning first=122 second=46 amount=1
+kerning first=122 second=45 amount=-1
+kerning first=122 second=32 amount=1
+kerning first=97 second=106 amount=1
+kerning first=97 second=55 amount=1
+kerning first=97 second=104 amount=1
+kerning first=97 second=54 amount=-1
+kerning first=97 second=57 amount=-1
+kerning first=97 second=48 amount=-1
+kerning first=97 second=63 amount=-2
+kerning first=97 second=49 amount=-3
+kerning first=97 second=41 amount=1
+kerning first=97 second=108 amount=1
+kerning first=97 second=50 amount=1
+kerning first=97 second=47 amount=1
+kerning first=97 second=92 amount=-4
+kerning first=97 second=107 amount=1
+kerning first=97 second=105 amount=1
+kerning first=97 second=33 amount=1
+kerning first=97 second=98 amount=1
+kerning first=97 second=100 amount=1
+kerning first=97 second=112 amount=1
+kerning first=97 second=116 amount=1
+kerning first=97 second=59 amount=1
+kerning first=97 second=119 amount=1
+kerning first=97 second=118 amount=1
+kerning first=97 second=122 amount=1
+kerning first=97 second=97 amount=1
+kerning first=97 second=110 amount=1
+kerning first=97 second=111 amount=1
+kerning first=97 second=114 amount=1
+kerning first=97 second=120 amount=2
+kerning first=97 second=99 amount=1
+kerning first=97 second=115 amount=1
+kerning first=97 second=117 amount=1
+kerning first=97 second=58 amount=1
+kerning first=97 second=34 amount=-3
+kerning first=97 second=39 amount=-2
+kerning first=97 second=44 amount=1
+kerning first=97 second=46 amount=1
+kerning first=110 second=106 amount=1
+kerning first=110 second=52 amount=1
+kerning first=110 second=55 amount=1
+kerning first=110 second=104 amount=1
+kerning first=110 second=102 amount=1
+kerning first=110 second=63 amount=-1
+kerning first=110 second=49 amount=-3
+kerning first=110 second=40 amount=1
+kerning first=110 second=41 amount=1
+kerning first=110 second=108 amount=1
+kerning first=110 second=50 amount=1
+kerning first=110 second=47 amount=1
+kerning first=110 second=92 amount=-3
+kerning first=110 second=107 amount=1
+kerning first=110 second=105 amount=1
+kerning first=110 second=33 amount=1
+kerning first=110 second=121 amount=1
+kerning first=110 second=98 amount=1
+kerning first=110 second=100 amount=1
+kerning first=110 second=112 amount=1
+kerning first=110 second=113 amount=1
+kerning first=110 second=103 amount=1
+kerning first=110 second=116 amount=1
+kerning first=110 second=59 amount=1
+kerning first=110 second=119 amount=1
+kerning first=110 second=118 amount=1
+kerning first=110 second=122 amount=1
+kerning first=110 second=97 amount=1
+kerning first=110 second=110 amount=1
+kerning first=110 second=111 amount=1
+kerning first=110 second=114 amount=1
+kerning first=110 second=120 amount=2
+kerning first=110 second=99 amount=1
+kerning first=110 second=101 amount=1
+kerning first=110 second=115 amount=1
+kerning first=110 second=117 amount=1
+kerning first=110 second=58 amount=1
+kerning first=110 second=35 amount=1
+kerning first=110 second=34 amount=-1
+kerning first=110 second=39 amount=-1
+kerning first=110 second=46 amount=1
+kerning first=110 second=45 amount=1
+kerning first=111 second=106 amount=1
+kerning first=111 second=52 amount=1
+kerning first=111 second=53 amount=1
+kerning first=111 second=104 amount=1
+kerning first=111 second=102 amount=1
+kerning first=111 second=63 amount=-1
+kerning first=111 second=93 amount=-1
+kerning first=111 second=49 amount=-3
+kerning first=111 second=40 amount=1
+kerning first=111 second=108 amount=1
+kerning first=111 second=64 amount=1
+kerning first=111 second=47 amount=1
+kerning first=111 second=92 amount=-3
+kerning first=111 second=107 amount=1
+kerning first=111 second=105 amount=1
+kerning first=111 second=33 amount=1
+kerning first=111 second=121 amount=1
+kerning first=111 second=98 amount=1
+kerning first=111 second=100 amount=1
+kerning first=111 second=112 amount=1
+kerning first=111 second=113 amount=1
+kerning first=111 second=103 amount=1
+kerning first=111 second=116 amount=2
+kerning first=111 second=59 amount=1
+kerning first=111 second=119 amount=1
+kerning first=111 second=109 amount=1
+kerning first=111 second=118 amount=1
+kerning first=111 second=97 amount=1
+kerning first=111 second=110 amount=1
+kerning first=111 second=111 amount=1
+kerning first=111 second=114 amount=1
+kerning first=111 second=120 amount=1
+kerning first=111 second=99 amount=1
+kerning first=111 second=101 amount=1
+kerning first=111 second=115 amount=1
+kerning first=111 second=117 amount=1
+kerning first=111 second=35 amount=1
+kerning first=111 second=34 amount=-2
+kerning first=111 second=39 amount=-2
+kerning first=111 second=46 amount=1
+kerning first=111 second=45 amount=1
+kerning first=114 second=106 amount=1
+kerning first=114 second=52 amount=-1
+kerning first=114 second=55 amount=-2
+kerning first=114 second=104 amount=1
+kerning first=114 second=48 amount=1
+kerning first=114 second=102 amount=1
+kerning first=114 second=63 amount=1
+kerning first=114 second=93 amount=-3
+kerning first=114 second=49 amount=-3
+kerning first=114 second=40 amount=1
+kerning first=114 second=108 amount=1
+kerning first=114 second=64 amount=-1
+kerning first=114 second=50 amount=-1
+kerning first=114 second=47 amount=-3
+kerning first=114 second=92 amount=-1
+kerning first=114 second=107 amount=1
+kerning first=114 second=105 amount=1
+kerning first=114 second=33 amount=1
+kerning first=114 second=121 amount=2
+kerning first=114 second=98 amount=1
+kerning first=114 second=112 amount=1
+kerning first=114 second=113 amount=1
+kerning first=114 second=103 amount=1
+kerning first=114 second=116 amount=1
+kerning first=114 second=59 amount=1
+kerning first=114 second=119 amount=2
+kerning first=114 second=109 amount=1
+kerning first=114 second=118 amount=2
+kerning first=114 second=122 amount=1
+kerning first=114 second=97 amount=1
+kerning first=114 second=110 amount=1
+kerning first=114 second=111 amount=1
+kerning first=114 second=114 amount=2
+kerning first=114 second=120 amount=2
+kerning first=114 second=117 amount=1
+kerning first=114 second=35 amount=1
+kerning first=114 second=34 amount=1
+kerning first=114 second=39 amount=2
+kerning first=114 second=44 amount=-3
+kerning first=114 second=46 amount=-3
+kerning first=114 second=45 amount=-2
+kerning first=120 second=106 amount=1
+kerning first=120 second=52 amount=-1
+kerning first=120 second=53 amount=-1
+kerning first=120 second=104 amount=1
+kerning first=120 second=102 amount=1
+kerning first=120 second=63 amount=1
+kerning first=120 second=93 amount=-1
+kerning first=120 second=49 amount=-3
+kerning first=120 second=40 amount=1
+kerning first=120 second=108 amount=1
+kerning first=120 second=64 amount=-1
+kerning first=120 second=47 amount=1
+kerning first=120 second=92 amount=-1
+kerning first=120 second=107 amount=1
+kerning first=120 second=105 amount=1
+kerning first=120 second=33 amount=1
+kerning first=120 second=121 amount=2
+kerning first=120 second=98 amount=1
+kerning first=120 second=112 amount=1
+kerning first=120 second=116 amount=1
+kerning first=120 second=59 amount=1
+kerning first=120 second=119 amount=2
+kerning first=120 second=109 amount=1
+kerning first=120 second=118 amount=2
+kerning first=120 second=122 amount=1
+kerning first=120 second=97 amount=1
+kerning first=120 second=110 amount=1
+kerning first=120 second=114 amount=1
+kerning first=120 second=120 amount=1
+kerning first=120 second=117 amount=1
+kerning first=120 second=35 amount=1
+kerning first=120 second=34 amount=1
+kerning first=120 second=39 amount=1
+kerning first=120 second=44 amount=1
+kerning first=120 second=46 amount=1
+kerning first=120 second=45 amount=-1
+kerning first=120 second=32 amount=1
+kerning first=99 second=106 amount=1
+kerning first=99 second=52 amount=1
+kerning first=99 second=53 amount=1
+kerning first=99 second=104 amount=1
+kerning first=99 second=102 amount=1
+kerning first=99 second=63 amount=-1
+kerning first=99 second=93 amount=-1
+kerning first=99 second=49 amount=-4
+kerning first=99 second=40 amount=1
+kerning first=99 second=108 amount=1
+kerning first=99 second=50 amount=-1
+kerning first=99 second=92 amount=-3
+kerning first=99 second=107 amount=1
+kerning first=99 second=105 amount=1
+kerning first=99 second=33 amount=1
+kerning first=99 second=121 amount=1
+kerning first=99 second=98 amount=1
+kerning first=99 second=100 amount=1
+kerning first=99 second=112 amount=1
+kerning first=99 second=113 amount=1
+kerning first=99 second=103 amount=1
+kerning first=99 second=116 amount=1
+kerning first=99 second=119 amount=1
+kerning first=99 second=118 amount=1
+kerning first=99 second=97 amount=1
+kerning first=99 second=110 amount=1
+kerning first=99 second=111 amount=1
+kerning first=99 second=114 amount=1
+kerning first=99 second=120 amount=1
+kerning first=99 second=99 amount=1
+kerning first=99 second=101 amount=1
+kerning first=99 second=115 amount=1
+kerning first=99 second=117 amount=1
+kerning first=99 second=58 amount=1
+kerning first=99 second=35 amount=1
+kerning first=99 second=34 amount=-2
+kerning first=99 second=39 amount=-2
+kerning first=99 second=46 amount=1
+kerning first=99 second=45 amount=1
+kerning first=101 second=106 amount=1
+kerning first=101 second=52 amount=1
+kerning first=101 second=53 amount=1
+kerning first=101 second=51 amount=1
+kerning first=101 second=55 amount=1
+kerning first=101 second=104 amount=1
+kerning first=101 second=57 amount=1
+kerning first=101 second=102 amount=1
+kerning first=101 second=63 amount=-1
+kerning first=101 second=49 amount=-2
+kerning first=101 second=40 amount=1
+kerning first=101 second=41 amount=1
+kerning first=101 second=108 amount=2
+kerning first=101 second=64 amount=1
+kerning first=101 second=50 amount=1
+kerning first=101 second=47 amount=2
+kerning first=101 second=92 amount=-2
+kerning first=101 second=107 amount=1
+kerning first=101 second=105 amount=2
+kerning first=101 second=33 amount=1
+kerning first=101 second=121 amount=1
+kerning first=101 second=98 amount=1
+kerning first=101 second=100 amount=2
+kerning first=101 second=112 amount=1
+kerning first=101 second=113 amount=1
+kerning first=101 second=103 amount=1
+kerning first=101 second=116 amount=2
+kerning first=101 second=59 amount=1
+kerning first=101 second=119 amount=2
+kerning first=101 second=109 amount=1
+kerning first=101 second=118 amount=2
+kerning first=101 second=122 amount=1
+kerning first=101 second=97 amount=2
+kerning first=101 second=110 amount=2
+kerning first=101 second=111 amount=2
+kerning first=101 second=114 amount=1
+kerning first=101 second=120 amount=2
+kerning first=101 second=99 amount=1
+kerning first=101 second=101 amount=1
+kerning first=101 second=115 amount=2
+kerning first=101 second=117 amount=1
+kerning first=101 second=58 amount=1
+kerning first=101 second=35 amount=1
+kerning first=101 second=34 amount=-1
+kerning first=101 second=39 amount=-1
+kerning first=101 second=44 amount=1
+kerning first=101 second=46 amount=2
+kerning first=101 second=45 amount=1
+kerning first=115 second=106 amount=1
+kerning first=115 second=53 amount=1
+kerning first=115 second=104 amount=1
+kerning first=115 second=102 amount=1
+kerning first=115 second=63 amount=-1
+kerning first=115 second=49 amount=-3
+kerning first=115 second=40 amount=1
+kerning first=115 second=41 amount=1
+kerning first=115 second=108 amount=1
+kerning first=115 second=47 amount=1
+kerning first=115 second=92 amount=-3
+kerning first=115 second=107 amount=1
+kerning first=115 second=105 amount=1
+kerning first=115 second=33 amount=1
+kerning first=115 second=121 amount=1
+kerning first=115 second=98 amount=1
+kerning first=115 second=100 amount=1
+kerning first=115 second=112 amount=1
+kerning first=115 second=113 amount=1
+kerning first=115 second=103 amount=1
+kerning first=115 second=116 amount=2
+kerning first=115 second=59 amount=1
+kerning first=115 second=119 amount=1
+kerning first=115 second=109 amount=1
+kerning first=115 second=118 amount=1
+kerning first=115 second=122 amount=1
+kerning first=115 second=97 amount=1
+kerning first=115 second=110 amount=1
+kerning first=115 second=111 amount=1
+kerning first=115 second=114 amount=1
+kerning first=115 second=120 amount=1
+kerning first=115 second=99 amount=1
+kerning first=115 second=101 amount=1
+kerning first=115 second=115 amount=1
+kerning first=115 second=117 amount=1
+kerning first=115 second=58 amount=1
+kerning first=115 second=35 amount=1
+kerning first=115 second=34 amount=-2
+kerning first=115 second=39 amount=-2
+kerning first=115 second=46 amount=1
+kerning first=117 second=106 amount=1
+kerning first=117 second=52 amount=1
+kerning first=117 second=51 amount=-1
+kerning first=117 second=104 amount=1
+kerning first=117 second=102 amount=1
+kerning first=117 second=56 amount=-1
+kerning first=117 second=63 amount=-1
+kerning first=117 second=93 amount=-1
+kerning first=117 second=49 amount=-3
+kerning first=117 second=40 amount=1
+kerning first=117 second=108 amount=1
+kerning first=117 second=50 amount=-1
+kerning first=117 second=92 amount=-2
+kerning first=117 second=107 amount=1
+kerning first=117 second=105 amount=1
+kerning first=117 second=33 amount=1
+kerning first=117 second=121 amount=1
+kerning first=117 second=98 amount=1
+kerning first=117 second=100 amount=1
+kerning first=117 second=112 amount=1
+kerning first=117 second=113 amount=1
+kerning first=117 second=103 amount=1
+kerning first=117 second=116 amount=2
+kerning first=117 second=59 amount=1
+kerning first=117 second=119 amount=2
+kerning first=117 second=109 amount=1
+kerning first=117 second=118 amount=2
+kerning first=117 second=97 amount=1
+kerning first=117 second=110 amount=1
+kerning first=117 second=111 amount=1
+kerning first=117 second=114 amount=1
+kerning first=117 second=120 amount=1
+kerning first=117 second=99 amount=1
+kerning first=117 second=101 amount=1
+kerning first=117 second=115 amount=1
+kerning first=117 second=117 amount=1
+kerning first=117 second=35 amount=1
+kerning first=117 second=34 amount=-2
+kerning first=117 second=39 amount=-2
+kerning first=117 second=44 amount=-1
+kerning first=117 second=45 amount=1
+kerning first=58 second=87 amount=-1
+kerning first=58 second=77 amount=-1
+kerning first=58 second=89 amount=-2
+kerning first=58 second=65 amount=-1
+kerning first=58 second=52 amount=-1
+kerning first=58 second=86 amount=-1
+kerning first=58 second=53 amount=-1
+kerning first=58 second=84 amount=-2
+kerning first=58 second=51 amount=-1
+kerning first=58 second=55 amount=-1
+kerning first=58 second=54 amount=-1
+kerning first=58 second=57 amount=-1
+kerning first=58 second=48 amount=-1
+kerning first=58 second=74 amount=-2
+kerning first=58 second=56 amount=-1
+kerning first=58 second=63 amount=-1
+kerning first=58 second=93 amount=-1
+kerning first=58 second=49 amount=-4
+kerning first=58 second=64 amount=-1
+kerning first=58 second=50 amount=-1
+kerning first=58 second=92 amount=-3
+kerning first=58 second=121 amount=1
+kerning first=58 second=116 amount=1
+kerning first=58 second=119 amount=1
+kerning first=58 second=118 amount=1
+kerning first=58 second=114 amount=1
+kerning first=58 second=120 amount=1
+kerning first=58 second=58 amount=-1
+kerning first=58 second=34 amount=-2
+kerning first=58 second=39 amount=-1
+kerning first=58 second=45 amount=-2
+kerning first=35 second=106 amount=1
+kerning first=35 second=81 amount=1
+kerning first=35 second=72 amount=1
+kerning first=35 second=88 amount=-2
+kerning first=35 second=89 amount=-1
+kerning first=35 second=90 amount=-3
+kerning first=35 second=65 amount=-1
+kerning first=35 second=53 amount=-1
+kerning first=35 second=71 amount=1
+kerning first=35 second=79 amount=1
+kerning first=35 second=85 amount=1
+kerning first=35 second=51 amount=-1
+kerning first=35 second=55 amount=-1
+kerning first=35 second=67 amount=1
+kerning first=35 second=57 amount=-1
+kerning first=35 second=74 amount=-1
+kerning first=35 second=102 amount=1
+kerning first=35 second=56 amount=-1
+kerning first=35 second=63 amount=1
+kerning first=35 second=93 amount=-2
+kerning first=35 second=49 amount=-3
+kerning first=35 second=40 amount=1
+kerning first=35 second=41 amount=-1
+kerning first=35 second=108 amount=1
+kerning first=35 second=50 amount=-1
+kerning first=35 second=47 amount=-2
+kerning first=35 second=92 amount=-1
+kerning first=35 second=107 amount=1
+kerning first=35 second=105 amount=1
+kerning first=35 second=33 amount=1
+kerning first=35 second=121 amount=1
+kerning first=35 second=112 amount=1
+kerning first=35 second=113 amount=1
+kerning first=35 second=103 amount=1
+kerning first=35 second=116 amount=1
+kerning first=35 second=119 amount=2
+kerning first=35 second=109 amount=1
+kerning first=35 second=118 amount=2
+kerning first=35 second=122 amount=-1
+kerning first=35 second=97 amount=1
+kerning first=35 second=110 amount=1
+kerning first=35 second=111 amount=1
+kerning first=35 second=114 amount=1
+kerning first=35 second=120 amount=1
+kerning first=35 second=117 amount=1
+kerning first=35 second=34 amount=1
+kerning first=35 second=39 amount=1
+kerning first=35 second=44 amount=-5
+kerning first=35 second=46 amount=-3
+kerning first=42 second=83 amount=1
+kerning first=42 second=93 amount=1
+kerning first=42 second=113 amount=1
+kerning first=42 second=103 amount=1
+kerning first=34 second=106 amount=1
+kerning first=34 second=87 amount=1
+kerning first=34 second=88 amount=1
+kerning first=34 second=89 amount=1
+kerning first=34 second=90 amount=-1
+kerning first=34 second=65 amount=-3
+kerning first=34 second=75 amount=1
+kerning first=34 second=52 amount=-3
+kerning first=34 second=86 amount=1
+kerning first=34 second=53 amount=-1
+kerning first=34 second=84 amount=1
+kerning first=34 second=85 amount=1
+kerning first=34 second=66 amount=1
+kerning first=34 second=80 amount=1
+kerning first=34 second=54 amount=-1
+kerning first=34 second=57 amount=-1
+kerning first=34 second=48 amount=-1
+kerning first=34 second=74 amount=-4
+kerning first=34 second=76 amount=1
+kerning first=34 second=102 amount=-1
+kerning first=34 second=56 amount=-1
+kerning first=34 second=63 amount=1
+kerning first=34 second=93 amount=1
+kerning first=34 second=49 amount=-2
+kerning first=34 second=41 amount=1
+kerning first=34 second=108 amount=1
+kerning first=34 second=64 amount=-3
+kerning first=34 second=82 amount=1
+kerning first=34 second=50 amount=-1
+kerning first=34 second=47 amount=-1
+kerning first=34 second=92 amount=1
+kerning first=34 second=107 amount=1
+kerning first=34 second=73 amount=1
+kerning first=34 second=105 amount=1
+kerning first=34 second=33 amount=1
+kerning first=34 second=121 amount=2
+kerning first=34 second=98 amount=1
+kerning first=34 second=100 amount=-2
+kerning first=34 second=112 amount=1
+kerning first=34 second=113 amount=-1
+kerning first=34 second=103 amount=-1
+kerning first=34 second=116 amount=-1
+kerning first=34 second=119 amount=1
+kerning first=34 second=109 amount=1
+kerning first=34 second=118 amount=1
+kerning first=34 second=122 amount=-1
+kerning first=34 second=97 amount=-2
+kerning first=34 second=110 amount=1
+kerning first=34 second=111 amount=-1
+kerning first=34 second=120 amount=1
+kerning first=34 second=99 amount=-2
+kerning first=34 second=101 amount=-2
+kerning first=34 second=115 amount=-1
+kerning first=34 second=117 amount=1
+kerning first=34 second=35 amount=-1
+kerning first=34 second=34 amount=1
+kerning first=34 second=39 amount=1
+kerning first=34 second=44 amount=-3
+kerning first=34 second=46 amount=-2
+kerning first=34 second=45 amount=-1
+kerning first=39 second=87 amount=1
+kerning first=39 second=88 amount=1
+kerning first=39 second=89 amount=1
+kerning first=39 second=90 amount=-1
+kerning first=39 second=65 amount=-3
+kerning first=39 second=75 amount=1
+kerning first=39 second=52 amount=-2
+kerning first=39 second=78 amount=1
+kerning first=39 second=86 amount=1
+kerning first=39 second=53 amount=-1
+kerning first=39 second=84 amount=1
+kerning first=39 second=85 amount=1
+kerning first=39 second=66 amount=1
+kerning first=39 second=68 amount=1
+kerning first=39 second=80 amount=1
+kerning first=39 second=104 amount=1
+kerning first=39 second=54 amount=-1
+kerning first=39 second=74 amount=-4
+kerning first=39 second=76 amount=1
+kerning first=39 second=102 amount=-1
+kerning first=39 second=63 amount=1
+kerning first=39 second=69 amount=1
+kerning first=39 second=93 amount=1
+kerning first=39 second=49 amount=-1
+kerning first=39 second=41 amount=1
+kerning first=39 second=108 amount=1
+kerning first=39 second=64 amount=-5
+kerning first=39 second=82 amount=1
+kerning first=39 second=50 amount=-1
+kerning first=39 second=47 amount=-4
+kerning first=39 second=92 amount=2
+kerning first=39 second=107 amount=1
+kerning first=39 second=73 amount=1
+kerning first=39 second=105 amount=1
+kerning first=39 second=33 amount=1
+kerning first=39 second=121 amount=1
+kerning first=39 second=98 amount=1
+kerning first=39 second=100 amount=-2
+kerning first=39 second=113 amount=-2
+kerning first=39 second=103 amount=-1
+kerning first=39 second=116 amount=-1
+kerning first=39 second=59 amount=-1
+kerning first=39 second=118 amount=1
+kerning first=39 second=122 amount=-1
+kerning first=39 second=97 amount=-1
+kerning first=39 second=111 amount=-2
+kerning first=39 second=114 amount=-1
+kerning first=39 second=99 amount=-2
+kerning first=39 second=101 amount=-2
+kerning first=39 second=115 amount=-2
+kerning first=39 second=58 amount=-1
+kerning first=39 second=35 amount=-1
+kerning first=39 second=34 amount=1
+kerning first=39 second=39 amount=1
+kerning first=39 second=44 amount=-3
+kerning first=39 second=46 amount=-1
+kerning first=39 second=45 amount=-2
+kerning first=44 second=106 amount=1
+kerning first=44 second=87 amount=-3
+kerning first=44 second=81 amount=-2
+kerning first=44 second=88 amount=1
+kerning first=44 second=89 amount=-3
+kerning first=44 second=90 amount=1
+kerning first=44 second=65 amount=1
+kerning first=44 second=52 amount=-2
+kerning first=44 second=86 amount=-2
+kerning first=44 second=71 amount=-1
+kerning first=44 second=79 amount=-2
+kerning first=44 second=83 amount=-1
+kerning first=44 second=84 amount=-1
+kerning first=44 second=85 amount=-1
+kerning first=44 second=51 amount=-1
+kerning first=44 second=55 amount=1
+kerning first=44 second=80 amount=1
+kerning first=44 second=54 amount=-2
+kerning first=44 second=57 amount=-2
+kerning first=44 second=48 amount=-1
+kerning first=44 second=74 amount=-2
+kerning first=44 second=102 amount=-1
+kerning first=44 second=56 amount=-1
+kerning first=44 second=63 amount=-2
+kerning first=44 second=49 amount=-3
+kerning first=44 second=41 amount=1
+kerning first=44 second=108 amount=1
+kerning first=44 second=64 amount=-1
+kerning first=44 second=50 amount=1
+kerning first=44 second=47 amount=2
+kerning first=44 second=92 amount=-4
+kerning first=44 second=107 amount=1
+kerning first=44 second=73 amount=1
+kerning first=44 second=105 amount=1
+kerning first=44 second=33 amount=1
+kerning first=44 second=121 amount=-2
+kerning first=44 second=98 amount=1
+kerning first=44 second=113 amount=-1
+kerning first=44 second=116 amount=-1
+kerning first=44 second=59 amount=2
+kerning first=44 second=119 amount=-1
+kerning first=44 second=109 amount=-1
+kerning first=44 second=118 amount=-1
+kerning first=44 second=122 amount=1
+kerning first=44 second=97 amount=1
+kerning first=44 second=110 amount=1
+kerning first=44 second=114 amount=1
+kerning first=44 second=120 amount=1
+kerning first=44 second=58 amount=1
+kerning first=44 second=35 amount=-2
+kerning first=44 second=34 amount=-2
+kerning first=44 second=39 amount=-4
+kerning first=44 second=44 amount=1
+kerning first=44 second=46 amount=1
+kerning first=44 second=45 amount=-2
+kerning first=46 second=106 amount=1
+kerning first=46 second=87 amount=-2
+kerning first=46 second=88 amount=1
+kerning first=46 second=89 amount=-2
+kerning first=46 second=90 amount=2
+kerning first=46 second=65 amount=1
+kerning first=46 second=52 amount=-3
+kerning first=46 second=86 amount=-1
+kerning first=46 second=53 amount=1
+kerning first=46 second=79 amount=-1
+kerning first=46 second=84 amount=-2
+kerning first=46 second=85 amount=-1
+kerning first=46 second=55 amount=1
+kerning first=46 second=80 amount=1
+kerning first=46 second=104 amount=1
+kerning first=46 second=54 amount=-1
+kerning first=46 second=48 amount=-1
+kerning first=46 second=74 amount=-1
+kerning first=46 second=102 amount=-1
+kerning first=46 second=63 amount=-2
+kerning first=46 second=49 amount=-3
+kerning first=46 second=41 amount=1
+kerning first=46 second=108 amount=1
+kerning first=46 second=50 amount=1
+kerning first=46 second=47 amount=1
+kerning first=46 second=92 amount=-5
+kerning first=46 second=107 amount=1
+kerning first=46 second=73 amount=1
+kerning first=46 second=105 amount=1
+kerning first=46 second=33 amount=1
+kerning first=46 second=121 amount=-2
+kerning first=46 second=98 amount=1
+kerning first=46 second=100 amount=1
+kerning first=46 second=112 amount=1
+kerning first=46 second=103 amount=1
+kerning first=46 second=116 amount=-1
+kerning first=46 second=59 amount=1
+kerning first=46 second=118 amount=-1
+kerning first=46 second=122 amount=1
+kerning first=46 second=97 amount=1
+kerning first=46 second=110 amount=1
+kerning first=46 second=111 amount=1
+kerning first=46 second=114 amount=1
+kerning first=46 second=120 amount=1
+kerning first=46 second=99 amount=1
+kerning first=46 second=115 amount=1
+kerning first=46 second=117 amount=1
+kerning first=46 second=58 amount=1
+kerning first=46 second=35 amount=-4
+kerning first=46 second=34 amount=-4
+kerning first=46 second=39 amount=-1
+kerning first=46 second=44 amount=1
+kerning first=46 second=46 amount=1
+kerning first=46 second=45 amount=-2
+kerning first=45 second=87 amount=-1
+kerning first=45 second=81 amount=1
+kerning first=45 second=72 amount=1
+kerning first=45 second=88 amount=-2
+kerning first=45 second=89 amount=-3
+kerning first=45 second=90 amount=-2
+kerning first=45 second=65 amount=-1
+kerning first=45 second=52 amount=1
+kerning first=45 second=86 amount=-1
+kerning first=45 second=53 amount=-1
+kerning first=45 second=71 amount=1
+kerning first=45 second=79 amount=1
+kerning first=45 second=83 amount=-2
+kerning first=45 second=84 amount=-2
+kerning first=45 second=51 amount=-2
+kerning first=45 second=55 amount=-3
+kerning first=45 second=67 amount=1
+kerning first=45 second=57 amount=-1
+kerning first=45 second=56 amount=-2
+kerning first=45 second=63 amount=-1
+kerning first=45 second=93 amount=-4
+kerning first=45 second=49 amount=-4
+kerning first=45 second=40 amount=1
+kerning first=45 second=41 amount=-1
+kerning first=45 second=108 amount=1
+kerning first=45 second=50 amount=-4
+kerning first=45 second=47 amount=-2
+kerning first=45 second=92 amount=-4
+kerning first=45 second=107 amount=1
+kerning first=45 second=105 amount=1
+kerning first=45 second=33 amount=1
+kerning first=45 second=100 amount=1
+kerning first=45 second=113 amount=1
+kerning first=45 second=103 amount=1
+kerning first=45 second=116 amount=1
+kerning first=45 second=119 amount=1
+kerning first=45 second=118 amount=1
+kerning first=45 second=122 amount=-2
+kerning first=45 second=110 amount=1
+kerning first=45 second=111 amount=1
+kerning first=45 second=114 amount=1
+kerning first=45 second=120 amount=-1
+kerning first=45 second=99 amount=1
+kerning first=45 second=101 amount=1
+kerning first=45 second=117 amount=1
+kerning first=45 second=58 amount=-1
+kerning first=45 second=35 amount=1
+kerning first=45 second=34 amount=-1
+kerning first=45 second=39 amount=-1
+kerning first=45 second=44 amount=-3
+kerning first=45 second=46 amount=-3
+kerning first=45 second=45 amount=1
+kerning first=126 second=33 amount=-1
+kerning first=126 second=32 amount=-1
+kerning first=32 second=53 amount=-1
+kerning first=32 second=83 amount=1
+kerning first=32 second=123 amount=1
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/markerfelt24shadow.png b/tests/lua-tests/res/cocosbuilderRes/ccb/markerfelt24shadow.png
new file mode 100755
index 0000000000..5bab028496
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/markerfelt24shadow.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/particle-fire.png b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-fire.png
new file mode 100755
index 0000000000..81c6d2410b
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-fire.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/particle-smoke.png b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-smoke.png
new file mode 100755
index 0000000000..a289b1371e
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-smoke.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/particle-snow.png b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-snow.png
new file mode 100755
index 0000000000..9e12963498
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-snow.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/particle-stars.png b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-stars.png
new file mode 100755
index 0000000000..f493dcc334
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/particle-stars.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/ccb/scale-9-demo.png b/tests/lua-tests/res/cocosbuilderRes/ccb/scale-9-demo.png
new file mode 100755
index 0000000000..ee4537207f
Binary files /dev/null and b/tests/lua-tests/res/cocosbuilderRes/ccb/scale-9-demo.png differ
diff --git a/tests/lua-tests/res/cocosbuilderRes/fileLookup.plist b/tests/lua-tests/res/cocosbuilderRes/fileLookup.plist
new file mode 100755
index 0000000000..7a04cd9ea7
--- /dev/null
+++ b/tests/lua-tests/res/cocosbuilderRes/fileLookup.plist
@@ -0,0 +1,13 @@
+
+
+
+
+ filenames
+
+ metadata
+
+ version
+ 1
+
+
+