auto import from //depot/cupcake/@135843
diff --git a/ide/xcode/GL.xcodeproj/project.pbxproj b/ide/xcode/GL.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1a11676
--- /dev/null
+++ b/ide/xcode/GL.xcodeproj/project.pbxproj
@@ -0,0 +1,267 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 44;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		004BBD460DAC439E00E4E298 /* SkGLDevice_FBO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 004BBD440DAC439E00E4E298 /* SkGLDevice_FBO.cpp */; };
+		004BBD750DAC48A600E4E298 /* SkGLDevice_FBO.h in Headers */ = {isa = PBXBuildFile; fileRef = 004BBD740DAC48A600E4E298 /* SkGLDevice_FBO.h */; };
+		004BBE310DAC71A000E4E298 /* SkGLDevice_SWLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 004BBE2F0DAC71A000E4E298 /* SkGLDevice_SWLayer.cpp */; };
+		004BBE320DAC71A000E4E298 /* SkGLDevice_SWLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 004BBE300DAC71A000E4E298 /* SkGLDevice_SWLayer.h */; };
+		009A73DB0DA1179A00876C03 /* SkGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A73D40DA1179A00876C03 /* SkGL.cpp */; };
+		009A73DC0DA1179A00876C03 /* SkGL.h in Headers */ = {isa = PBXBuildFile; fileRef = 009A73D50DA1179A00876C03 /* SkGL.h */; };
+		009A73DD0DA1179A00876C03 /* SkGLCanvas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A73D60DA1179A00876C03 /* SkGLCanvas.cpp */; };
+		009A73DE0DA1179A00876C03 /* SkGLTextCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A73D70DA1179A00876C03 /* SkGLTextCache.cpp */; };
+		009A73DF0DA1179A00876C03 /* SkGLTextCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 009A73D80DA1179A00876C03 /* SkGLTextCache.h */; };
+		009A73E00DA1179A00876C03 /* SkTextureCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A73D90DA1179A00876C03 /* SkTextureCache.cpp */; };
+		009A73E10DA1179A00876C03 /* SkTextureCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 009A73DA0DA1179A00876C03 /* SkTextureCache.h */; };
+		009A75D90DA1DF3800876C03 /* SkGLDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A75D70DA1DF3800876C03 /* SkGLDevice.cpp */; };
+		009A75DA0DA1DF3800876C03 /* SkGLDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 009A75D80DA1DF3800876C03 /* SkGLDevice.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		004BBD440DAC439E00E4E298 /* SkGLDevice_FBO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGLDevice_FBO.cpp; path = ../../libs/graphics/gl/SkGLDevice_FBO.cpp; sourceTree = SOURCE_ROOT; };
+		004BBD740DAC48A600E4E298 /* SkGLDevice_FBO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGLDevice_FBO.h; path = ../../libs/graphics/gl/SkGLDevice_FBO.h; sourceTree = SOURCE_ROOT; };
+		004BBE2F0DAC71A000E4E298 /* SkGLDevice_SWLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGLDevice_SWLayer.cpp; path = ../../libs/graphics/gl/SkGLDevice_SWLayer.cpp; sourceTree = SOURCE_ROOT; };
+		004BBE300DAC71A000E4E298 /* SkGLDevice_SWLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGLDevice_SWLayer.h; path = ../../libs/graphics/gl/SkGLDevice_SWLayer.h; sourceTree = SOURCE_ROOT; };
+		009A73D40DA1179A00876C03 /* SkGL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGL.cpp; path = ../../libs/graphics/gl/SkGL.cpp; sourceTree = SOURCE_ROOT; };
+		009A73D50DA1179A00876C03 /* SkGL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGL.h; path = ../../libs/graphics/gl/SkGL.h; sourceTree = SOURCE_ROOT; };
+		009A73D60DA1179A00876C03 /* SkGLCanvas.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGLCanvas.cpp; path = ../../libs/graphics/gl/SkGLCanvas.cpp; sourceTree = SOURCE_ROOT; };
+		009A73D70DA1179A00876C03 /* SkGLTextCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGLTextCache.cpp; path = ../../libs/graphics/gl/SkGLTextCache.cpp; sourceTree = SOURCE_ROOT; };
+		009A73D80DA1179A00876C03 /* SkGLTextCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGLTextCache.h; path = ../../libs/graphics/gl/SkGLTextCache.h; sourceTree = SOURCE_ROOT; };
+		009A73D90DA1179A00876C03 /* SkTextureCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkTextureCache.cpp; path = ../../libs/graphics/gl/SkTextureCache.cpp; sourceTree = SOURCE_ROOT; };
+		009A73DA0DA1179A00876C03 /* SkTextureCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkTextureCache.h; path = ../../libs/graphics/gl/SkTextureCache.h; sourceTree = SOURCE_ROOT; };
+		009A75D70DA1DF3800876C03 /* SkGLDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGLDevice.cpp; path = ../../libs/graphics/gl/SkGLDevice.cpp; sourceTree = SOURCE_ROOT; };
+		009A75D80DA1DF3800876C03 /* SkGLDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGLDevice.h; path = ../../libs/graphics/gl/SkGLDevice.h; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libGL.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libGL.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* GL */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = GL;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				004BBE2F0DAC71A000E4E298 /* SkGLDevice_SWLayer.cpp */,
+				004BBE300DAC71A000E4E298 /* SkGLDevice_SWLayer.h */,
+				004BBD740DAC48A600E4E298 /* SkGLDevice_FBO.h */,
+				004BBD440DAC439E00E4E298 /* SkGLDevice_FBO.cpp */,
+				009A75D70DA1DF3800876C03 /* SkGLDevice.cpp */,
+				009A75D80DA1DF3800876C03 /* SkGLDevice.h */,
+				009A73D40DA1179A00876C03 /* SkGL.cpp */,
+				009A73D50DA1179A00876C03 /* SkGL.h */,
+				009A73D60DA1179A00876C03 /* SkGLCanvas.cpp */,
+				009A73D70DA1179A00876C03 /* SkGLTextCache.cpp */,
+				009A73D80DA1179A00876C03 /* SkGLTextCache.h */,
+				009A73D90DA1179A00876C03 /* SkTextureCache.cpp */,
+				009A73DA0DA1179A00876C03 /* SkTextureCache.h */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libGL.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				009A73DC0DA1179A00876C03 /* SkGL.h in Headers */,
+				009A73DF0DA1179A00876C03 /* SkGLTextCache.h in Headers */,
+				009A73E10DA1179A00876C03 /* SkTextureCache.h in Headers */,
+				009A75DA0DA1DF3800876C03 /* SkGLDevice.h in Headers */,
+				004BBD750DAC48A600E4E298 /* SkGLDevice_FBO.h in Headers */,
+				004BBE320DAC71A000E4E298 /* SkGLDevice_SWLayer.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* GL */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "GL" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = GL;
+			productName = GL;
+			productReference = D2AAC046055464E500DB518D /* libGL.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "GL" */;
+			compatibilityVersion = "Xcode 3.0";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* GL */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC045055464E500DB518D /* GL */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				009A73DB0DA1179A00876C03 /* SkGL.cpp in Sources */,
+				009A73DD0DA1179A00876C03 /* SkGLCanvas.cpp in Sources */,
+				009A73DE0DA1179A00876C03 /* SkGLTextCache.cpp in Sources */,
+				009A73E00DA1179A00876C03 /* SkTextureCache.cpp in Sources */,
+				009A75D90DA1DF3800876C03 /* SkGLDevice.cpp in Sources */,
+				004BBD460DAC439E00E4E298 /* SkGLDevice_FBO.cpp in Sources */,
+				004BBE310DAC71A000E4E298 /* SkGLDevice_SWLayer.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = GL;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = GL;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_DEBUG,
+					SK_BUILD_FOR_MAC,
+				);
+				GCC_THREADSAFE_STATICS = NO;
+				GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../libs/graphics/sgl ../../include/corecg ../../include/graphics";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = (
+					ppc,
+					i386,
+				);
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				GCC_THREADSAFE_STATICS = NO;
+				GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../libs/graphics/sgl ../../include/corecg ../../include/graphics";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "GL" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "GL" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/SampleCode/English.lproj/InfoPlist.strings b/ide/xcode/SampleCode/English.lproj/InfoPlist.strings
new file mode 100644
index 0000000..e842e19
--- /dev/null
+++ b/ide/xcode/SampleCode/English.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+/* Localized versions of Info.plist keys */
+
+NSHumanReadableCopyright = "© __MyCompanyName__, 2008";
diff --git a/ide/xcode/SampleCode/English.lproj/main.nib/classes.nib b/ide/xcode/SampleCode/English.lproj/main.nib/classes.nib
new file mode 100644
index 0000000..c4b887e
--- /dev/null
+++ b/ide/xcode/SampleCode/English.lproj/main.nib/classes.nib
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBVersion</key>
+	<string>1</string>
+</dict>
+</plist>
diff --git a/ide/xcode/SampleCode/English.lproj/main.nib/info.nib b/ide/xcode/SampleCode/English.lproj/main.nib/info.nib
new file mode 100644
index 0000000..2af896b
--- /dev/null
+++ b/ide/xcode/SampleCode/English.lproj/main.nib/info.nib
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBFramework Version</key>
+	<string>629</string>
+	<key>IBLastKnownRelativeProjectPath</key>
+	<string>../../SampleCode.xcodeproj</string>
+	<key>IBOldestOS</key>
+	<integer>5</integer>
+	<key>IBOpenObjects</key>
+	<array/>
+	<key>IBSystem Version</key>
+	<string>9B18</string>
+	<key>targetFramework</key>
+	<string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/ide/xcode/SampleCode/English.lproj/main.nib/objects.xib b/ide/xcode/SampleCode/English.lproj/main.nib/objects.xib
new file mode 100644
index 0000000..a9e438e
--- /dev/null
+++ b/ide/xcode/SampleCode/English.lproj/main.nib/objects.xib
@@ -0,0 +1,269 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+  <object name="rootObject" class="NSCustomObject" id="1">
+  </object>
+  <array count="38" name="allObjects">
+    <object class="IBCarbonMenuItem" id="193">
+      <string name="title">Arrange in Front</string>
+      <boolean name="dynamic">TRUE</boolean>
+      <int name="keyEquivalentModifier">1572864</int>
+      <ostype name="command">frnt</ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="148">
+      <string name="title">Select All</string>
+      <string name="keyEquivalent">a</string>
+      <ostype name="command">sall</ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="152">
+      <string name="title">Edit</string>
+      <object name="submenu" class="IBCarbonMenu" id="147">
+        <string name="title">Edit</string>
+        <array count="10" name="items">
+          <object class="IBCarbonMenuItem" id="141">
+            <string name="title">Undo</string>
+            <string name="keyEquivalent">z</string>
+            <ostype name="command">undo</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="146">
+            <string name="title">Redo</string>
+            <string name="keyEquivalent">Z</string>
+            <ostype name="command">redo</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="142">
+            <boolean name="separator">TRUE</boolean>
+          </object>
+          <object class="IBCarbonMenuItem" id="143">
+            <string name="title">Cut</string>
+            <string name="keyEquivalent">x</string>
+            <ostype name="command">cut </ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="149">
+            <string name="title">Copy</string>
+            <string name="keyEquivalent">c</string>
+            <ostype name="command">copy</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="144">
+            <string name="title">Paste</string>
+            <string name="keyEquivalent">v</string>
+            <ostype name="command">past</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="151">
+            <string name="title">Delete</string>
+            <ostype name="command">clea</ostype>
+          </object>
+          <reference idRef="148"/>
+          <object class="IBCarbonMenuItem" id="199">
+            <boolean name="separator">TRUE</boolean>
+          </object>
+          <object class="IBCarbonMenuItem" id="198">
+            <string name="title">Special Characters…</string>
+            <ostype name="command">chrp</ostype>
+          </object>
+        </array>
+      </object>
+    </object>
+    <object class="IBCarbonRootControl" id="167">
+      <string name="bounds">0 0 360 480 </string>
+    </object>
+    <object class="IBCarbonMenuItem" id="139">
+      <string name="title">New</string>
+      <string name="keyEquivalent">n</string>
+      <ostype name="command">new </ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="192">
+      <string name="title">Window</string>
+      <object name="submenu" class="IBCarbonMenu" id="195">
+        <string name="title">Window</string>
+        <string name="name">_NSWindowsMenu</string>
+        <array count="6" name="items">
+          <object class="IBCarbonMenuItem" id="190">
+            <string name="title">Minimize</string>
+            <string name="keyEquivalent">m</string>
+            <boolean name="dynamic">TRUE</boolean>
+            <ostype name="command">mini</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="191">
+            <string name="title">Minimize All</string>
+            <string name="keyEquivalent">m</string>
+            <boolean name="dynamic">TRUE</boolean>
+            <int name="keyEquivalentModifier">1572864</int>
+            <ostype name="command">mina</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="197">
+            <string name="title">Zoom</string>
+            <ostype name="command">zoom</ostype>
+          </object>
+          <object class="IBCarbonMenuItem" id="194">
+            <boolean name="separator">TRUE</boolean>
+          </object>
+          <object class="IBCarbonMenuItem" id="196">
+            <string name="title">Bring All to Front</string>
+            <boolean name="dynamic">TRUE</boolean>
+            <ostype name="command">bfrt</ostype>
+          </object>
+          <reference idRef="193"/>
+        </array>
+      </object>
+    </object>
+    <object class="IBCarbonMenuItem" id="132">
+      <string name="title">Revert</string>
+      <string name="keyEquivalent">r</string>
+      <ostype name="command">rvrt</ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="187">
+      <string name="title">About Foo</string>
+      <int name="keyEquivalentModifier">0</int>
+      <ostype name="command">abou</ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="138">
+      <string name="title">Save</string>
+      <string name="keyEquivalent">s</string>
+      <ostype name="command">save</ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="137">
+      <string name="title">Save As…</string>
+      <string name="keyEquivalent">S</string>
+      <ostype name="command">svas</ostype>
+    </object>
+    <object class="IBCarbonMenuItem" id="136">
+      <string name="title">Print…</string>
+      <string name="keyEquivalent">p</string>
+      <ostype name="command">prnt</ostype>
+    </object>
+    <reference idRef="146"/>
+    <reference idRef="142"/>
+    <reference idRef="143"/>
+    <object class="IBCarbonWindow" id="166">
+      <boolean name="liveResize">TRUE</boolean>
+      <int name="scalingMode">1048576</int>
+      <string name="title">Window</string>
+      <reference name="rootControl" idRef="167"/>
+      <string name="windowRect">1001 727 1361 1207 </string>
+      <string name="ScreenRectAtEncodeTime">0 0 768 1024 </string>
+    </object>
+    <reference idRef="199"/>
+    <object class="IBCarbonMenuItem" id="135">
+      <string name="title">Page Setup…</string>
+      <string name="keyEquivalent">P</string>
+      <ostype name="command">page</ostype>
+    </object>
+    <reference idRef="144"/>
+    <object class="IBCarbonMenuItem" id="134">
+      <string name="title">Open…</string>
+      <string name="keyEquivalent">o</string>
+      <ostype name="command">open</ostype>
+    </object>
+    <object class="IBCarbonMenu" id="131">
+      <string name="title">File</string>
+      <array count="10" name="items">
+        <reference idRef="139"/>
+        <reference idRef="134"/>
+        <object class="IBCarbonMenuItem" id="133">
+          <boolean name="separator">TRUE</boolean>
+        </object>
+        <object class="IBCarbonMenuItem" id="130">
+          <string name="title">Close</string>
+          <string name="keyEquivalent">w</string>
+          <ostype name="command">clos</ostype>
+        </object>
+        <reference idRef="138"/>
+        <reference idRef="137"/>
+        <reference idRef="132"/>
+        <object class="IBCarbonMenuItem" id="128">
+          <boolean name="separator">TRUE</boolean>
+        </object>
+        <reference idRef="135"/>
+        <reference idRef="136"/>
+      </array>
+    </object>
+    <reference idRef="128"/>
+    <reference idRef="141"/>
+    <reference idRef="198"/>
+    <object class="IBCarbonMenu" id="29">
+      <string name="title">main</string>
+      <string name="name">_NSMainMenu</string>
+      <array count="4" name="items">
+        <object class="IBCarbonMenuItem" id="185">
+          <string name="title">Foo</string>
+          <object name="submenu" class="IBCarbonMenu" id="184">
+            <string name="title">Foo</string>
+            <string name="name">_NSAppleMenu</string>
+            <array count="1" name="items">
+              <reference idRef="187"/>
+            </array>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="127">
+          <string name="title">File</string>
+          <reference name="submenu" idRef="131"/>
+        </object>
+        <reference idRef="152"/>
+        <reference idRef="192"/>
+      </array>
+    </object>
+    <reference idRef="184"/>
+    <reference idRef="194"/>
+    <reference idRef="195"/>
+    <reference idRef="127"/>
+    <reference idRef="147"/>
+    <reference idRef="133"/>
+    <reference idRef="149"/>
+    <reference idRef="151"/>
+    <reference idRef="190"/>
+    <reference idRef="185"/>
+    <reference idRef="197"/>
+    <reference idRef="130"/>
+    <reference idRef="191"/>
+    <reference idRef="196"/>
+  </array>
+  <array count="38" name="allParents">
+    <reference idRef="195"/>
+    <reference idRef="147"/>
+    <reference idRef="29"/>
+    <reference idRef="166"/>
+    <reference idRef="131"/>
+    <reference idRef="29"/>
+    <reference idRef="131"/>
+    <reference idRef="184"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="1"/>
+    <reference idRef="147"/>
+    <reference idRef="131"/>
+    <reference idRef="147"/>
+    <reference idRef="131"/>
+    <reference idRef="127"/>
+    <reference idRef="131"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="1"/>
+    <reference idRef="185"/>
+    <reference idRef="195"/>
+    <reference idRef="192"/>
+    <reference idRef="29"/>
+    <reference idRef="152"/>
+    <reference idRef="131"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="195"/>
+    <reference idRef="29"/>
+    <reference idRef="195"/>
+    <reference idRef="131"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+  </array>
+  <dictionary count="3" name="nameTable">
+    <string>File&apos;s Owner</string>
+    <reference idRef="1"/>
+    <string>MainWindow</string>
+    <reference idRef="166"/>
+    <string>MenuBar</string>
+    <reference idRef="29"/>
+  </dictionary>
+  <string name="targetFramework">IBCarbonFramework</string>
+  <unsigned_int name="nextObjectID">200</unsigned_int>
+</object>
diff --git a/ide/xcode/SampleCode/Info.plist b/ide/xcode/SampleCode/Info.plist
new file mode 100644
index 0000000..e12ff9b
--- /dev/null
+++ b/ide/xcode/SampleCode/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>com.yourcompany.SampleCode</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ide/xcode/SampleCode/SampleCode.xcodeproj/project.pbxproj b/ide/xcode/SampleCode/SampleCode.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..826bb6a
--- /dev/null
+++ b/ide/xcode/SampleCode/SampleCode.xcodeproj/project.pbxproj
@@ -0,0 +1,1082 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 44;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		0007A8F30DB4DFF30068AF40 /* SampleXfermodes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0007A8F20DB4DFF30068AF40 /* SampleXfermodes.cpp */; };
+		0008AEE10DABF08F00477EFB /* libgiflib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0008AEDE0DABF01400477EFB /* libgiflib.a */; };
+		000A1CB00DA522ED003DAC04 /* SamplePolyToPoly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000A1CAF0DA522ED003DAC04 /* SamplePolyToPoly.cpp */; };
+		000DC0C60D63796E00854F5A /* SampleTextAlpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000DC0C50D63796E00854F5A /* SampleTextAlpha.cpp */; };
+		001142AB0DCA20650070D0A3 /* SamplePicture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001142AA0DCA20650070D0A3 /* SamplePicture.cpp */; };
+		0017F1490D6A0A6A008D9B31 /* SampleEmboss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0017F1460D6A0A6A008D9B31 /* SampleEmboss.cpp */; };
+		0017F14A0D6A0A6A008D9B31 /* SampleLines.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0017F1470D6A0A6A008D9B31 /* SampleLines.cpp */; };
+		0017F2CF0D6F3933008D9B31 /* libgraphics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C440D3E999300651393 /* libgraphics.a */; };
+		0017F2D00D6F393F008D9B31 /* libcorecg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C2C0D3E999300651393 /* libcorecg.a */; };
+		0017F2D60D6F3949008D9B31 /* libviews.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C5E0D3E999300651393 /* libviews.a */; };
+		0019628A0EACB9D300447A07 /* SamplePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001962890EACB9D300447A07 /* SamplePatch.cpp */; };
+		001962900EACBA2A00447A07 /* SamplePageFlip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0019628F0EACBA2A00447A07 /* SamplePageFlip.cpp */; };
+		002919440DEBA08100AF67D5 /* SkBitmapFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002919430DEBA08100AF67D5 /* SkBitmapFilter.cpp */; };
+		002919510DEC39C700AF67D5 /* SkConvolutionBitmapFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002919500DEC39C700AF67D5 /* SkConvolutionBitmapFilter.cpp */; };
+		00298C2A0E7085E7005E85ED /* SampleStrokeText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00298C290E7085E7005E85ED /* SampleStrokeText.cpp */; };
+		003474ED0D5B61BA00F3F389 /* SampleVertices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003474EC0D5B61BA00F3F389 /* SampleVertices.cpp */; };
+		003476840DF8DEC400A270A4 /* SampleCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003476830DF8DEC400A270A4 /* SampleCircle.cpp */; };
+		003A10170E0C29F800136848 /* SampleOverflow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003A10160E0C29F800136848 /* SampleOverflow.cpp */; };
+		003FA70A0D58CA4D0063AD75 /* SampleMeasure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003FA7090D58CA4D0063AD75 /* SampleMeasure.cpp */; };
+		0061A77B0DB7A7150007094E /* SampleFillType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0061A77A0DB7A7150007094E /* SampleFillType.cpp */; };
+		00648B5A0DDB15B90087F2E8 /* SampleTypeface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00648B590DDB15B90087F2E8 /* SampleTypeface.cpp */; };
+		00685FCE0D8A16C300CD71AA /* SampleAll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C650D3E99A800651393 /* SampleAll.cpp */; };
+		006860100D8A1C8B00CD71AA /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0068600F0D8A1C8A00CD71AA /* OpenGL.framework */; };
+		006860290D8A1DFB00CD71AA /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 006860280D8A1DFB00CD71AA /* AGL.framework */; };
+		0071BCEF0D746BDF00F667CE /* SampleFilter2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0071BCEE0D746BDF00F667CE /* SampleFilter2.cpp */; };
+		009A74250DA11C5D00876C03 /* libGL.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 009A740E0DA11B1F00876C03 /* libGL.a */; };
+		00B8EBFC0EB64ABC003C2F6F /* SampleDrawLooper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00B8EBFB0EB64ABC003C2F6F /* SampleDrawLooper.cpp */; };
+		00C5D1E10EBFFE4D00C6702C /* test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00C5D1E00EBFFE4D00C6702C /* test.cpp */; };
+		00C5D1E50EC0007400C6702C /* test_drawcolor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00C5D1E40EC0007400C6702C /* test_drawcolor.cpp */; };
+		00C5D2010EC00F0300C6702C /* SampleTests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00C5D2000EC00F0300C6702C /* SampleTests.cpp */; };
+		00C5D20E0EC0106F00C6702C /* test_drawrect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00C5D1F00EC0044600C6702C /* test_drawrect.cpp */; };
+		00D12E4D0DAD3D0A003918C5 /* libanimator.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0013C7920D94043200B41703 /* libanimator.a */; };
+		00D315710D5A5B1D004B2209 /* SampleBitmapRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00D315700D5A5B1D004B2209 /* SampleBitmapRect.cpp */; };
+		00ED8C7C0D3E99A800651393 /* SampleApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C660D3E99A800651393 /* SampleApp.cpp */; };
+		00ED8C7D0D3E99A800651393 /* SampleArc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C670D3E99A800651393 /* SampleArc.cpp */; };
+		00ED8C7E0D3E99A800651393 /* SampleCamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C680D3E99A800651393 /* SampleCamera.cpp */; };
+		00ED8C7F0D3E99A800651393 /* SampleCull.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C6A0D3E99A800651393 /* SampleCull.cpp */; };
+		00ED8C800D3E99A800651393 /* SampleDither.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C6B0D3E99A800651393 /* SampleDither.cpp */; };
+		00ED8C810D3E99A800651393 /* SampleEncode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C6C0D3E99A800651393 /* SampleEncode.cpp */; };
+		00ED8C820D3E99A800651393 /* SampleFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C6D0D3E99A800651393 /* SampleFilter.cpp */; };
+		00ED8C830D3E99A800651393 /* SampleFontCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C6E0D3E99A800651393 /* SampleFontCache.cpp */; };
+		00ED8C840D3E99A800651393 /* SampleImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C6F0D3E99A800651393 /* SampleImage.cpp */; };
+		00ED8C850D3E99A800651393 /* SampleImageDir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C700D3E99A800651393 /* SampleImageDir.cpp */; };
+		00ED8C860D3E99A800651393 /* SampleLayers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C710D3E99A800651393 /* SampleLayers.cpp */; };
+		00ED8C870D3E99A800651393 /* SamplePath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C720D3E99A800651393 /* SamplePath.cpp */; };
+		00ED8C880D3E99A800651393 /* SamplePathEffects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C730D3E99A800651393 /* SamplePathEffects.cpp */; };
+		00ED8C890D3E99A800651393 /* SamplePoints.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C740D3E99A800651393 /* SamplePoints.cpp */; };
+		00ED8C8A0D3E99A800651393 /* SampleRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C750D3E99A800651393 /* SampleRegion.cpp */; };
+		00ED8C8B0D3E99A800651393 /* SampleShaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C760D3E99A800651393 /* SampleShaders.cpp */; };
+		00ED8C8C0D3E99A800651393 /* SampleText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C770D3E99A800651393 /* SampleText.cpp */; };
+		00ED8C8D0D3E99A800651393 /* SampleTextEffects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C780D3E99A800651393 /* SampleTextEffects.cpp */; };
+		00ED8C8E0D3E99A800651393 /* SampleTextOnPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C790D3E99A800651393 /* SampleTextOnPath.cpp */; };
+		00ED8C8F0D3E99A800651393 /* SampleTiling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00ED8C7A0D3E99A800651393 /* SampleTiling.cpp */; };
+		00ED8CD70D3E9FD900651393 /* libexpat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C320D3E999300651393 /* libexpat.a */; };
+		00ED8CD80D3E9FDB00651393 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C380D3E999300651393 /* libfreetype.a */; };
+		00ED8CDB0D3E9FE300651393 /* libjpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C480D3E999300651393 /* libjpeg.a */; };
+		00ED8CDC0D3E9FE500651393 /* liblibpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C4C0D3E999300651393 /* liblibpng.a */; };
+		00ED8CDD0D3E9FE700651393 /* libports-mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C520D3E999300651393 /* libports-mac.a */; };
+		00ED8CDE0D3E9FEA00651393 /* libports.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C580D3E999300651393 /* libports.a */; };
+		00ED8CE00D3E9FEF00651393 /* libzlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00ED8C620D3E999300651393 /* libzlib.a */; };
+		00F9D6860E7F51680031AAA2 /* SkSetPoly3To3_A.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00F9D6850E7F51670031AAA2 /* SkSetPoly3To3_A.cpp */; };
+		8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+		8D0C4E8E0486CD37000505A6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+		8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		0008AEDD0DABF01400477EFB /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0008AED90DABF01300477EFB /* giflib.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = giflib;
+		};
+		0008AF0F0DABF9BD00477EFB /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0008AED90DABF01300477EFB /* giflib.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = giflib;
+		};
+		0013C7910D94043200B41703 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0013C78A0D94043200B41703 /* animator.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = animator;
+		};
+		0013C7940D94044800B41703 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 0013C78A0D94043200B41703 /* animator.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = animator;
+		};
+		009A740D0DA11B1F00876C03 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 009A74060DA11B1F00876C03 /* GL.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = GL;
+		};
+		009A741C0DA11BAE00876C03 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 009A74060DA11B1F00876C03 /* GL.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = GL;
+		};
+		00ED8C2B0D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C060D3E999300651393 /* corecg.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = corecg;
+		};
+		00ED8C310D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C090D3E999300651393 /* expat.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = expat;
+		};
+		00ED8C370D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C0C0D3E999300651393 /* freetype2.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = freetype;
+		};
+		00ED8C430D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C120D3E999300651393 /* graphics.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC06F0554671400DB518D;
+			remoteInfo = graphics;
+		};
+		00ED8C470D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C150D3E999300651393 /* jpeg.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = jpeg;
+		};
+		00ED8C4B0D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C180D3E999300651393 /* libpng.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = libpng;
+		};
+		00ED8C510D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C1B0D3E999300651393 /* ports-mac.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = "ports-mac";
+		};
+		00ED8C570D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C1E0D3E999300651393 /* ports.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = ports;
+		};
+		00ED8C5D0D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C210D3E999300651393 /* views.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = views;
+		};
+		00ED8C610D3E999300651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C240D3E999300651393 /* zlib.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = zlib;
+		};
+		00ED8C9D0D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C1B0D3E999300651393 /* ports-mac.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = "ports-mac";
+		};
+		00ED8C9F0D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C1E0D3E999300651393 /* ports.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = ports;
+		};
+		00ED8CA10D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C150D3E999300651393 /* jpeg.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = jpeg;
+		};
+		00ED8CA30D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C120D3E999300651393 /* graphics.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC06E0554671400DB518D;
+			remoteInfo = graphics;
+		};
+		00ED8CA70D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C090D3E999300651393 /* expat.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = expat;
+		};
+		00ED8CA90D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C210D3E999300651393 /* views.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = views;
+		};
+		00ED8CAB0D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C060D3E999300651393 /* corecg.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = corecg;
+		};
+		00ED8CAD0D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C240D3E999300651393 /* zlib.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = zlib;
+		};
+		00ED8CAF0D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C0C0D3E999300651393 /* freetype2.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = freetype;
+		};
+		00ED8CB10D3E9AFA00651393 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 00ED8C180D3E999300651393 /* libpng.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = libpng;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		0007A8F20DB4DFF30068AF40 /* SampleXfermodes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleXfermodes.cpp; path = ../../../tests/skia/SampleCode/SampleXfermodes.cpp; sourceTree = SOURCE_ROOT; };
+		0008AED90DABF01300477EFB /* giflib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = giflib.xcodeproj; path = ../giflib.xcodeproj; sourceTree = SOURCE_ROOT; };
+		000A1CAF0DA522ED003DAC04 /* SamplePolyToPoly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePolyToPoly.cpp; path = ../../../tests/skia/SampleCode/SamplePolyToPoly.cpp; sourceTree = SOURCE_ROOT; };
+		000DC0C50D63796E00854F5A /* SampleTextAlpha.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleTextAlpha.cpp; path = ../../../tests/skia/SampleCode/SampleTextAlpha.cpp; sourceTree = SOURCE_ROOT; };
+		001142AA0DCA20650070D0A3 /* SamplePicture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePicture.cpp; path = ../../../tests/skia/SampleCode/SamplePicture.cpp; sourceTree = SOURCE_ROOT; };
+		0013C78A0D94043200B41703 /* animator.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = animator.xcodeproj; path = ../animator.xcodeproj; sourceTree = SOURCE_ROOT; };
+		0017F1460D6A0A6A008D9B31 /* SampleEmboss.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleEmboss.cpp; path = ../../../tests/skia/SampleCode/SampleEmboss.cpp; sourceTree = SOURCE_ROOT; };
+		0017F1470D6A0A6A008D9B31 /* SampleLines.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleLines.cpp; path = ../../../tests/skia/SampleCode/SampleLines.cpp; sourceTree = SOURCE_ROOT; };
+		0017F1510D6A0A8A008D9B31 /* SkGeometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGeometry.h; path = ../../../libs/graphics/sgl/SkGeometry.h; sourceTree = SOURCE_ROOT; };
+		001962890EACB9D300447A07 /* SamplePatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePatch.cpp; path = ../../../tests/skia/SampleCode/SamplePatch.cpp; sourceTree = SOURCE_ROOT; };
+		0019628F0EACBA2A00447A07 /* SamplePageFlip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePageFlip.cpp; path = ../../../tests/skia/SampleCode/SamplePageFlip.cpp; sourceTree = SOURCE_ROOT; };
+		002919430DEBA08100AF67D5 /* SkBitmapFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmapFilter.cpp; path = ../../../libs/graphics/sgl/SkBitmapFilter.cpp; sourceTree = SOURCE_ROOT; };
+		002919500DEC39C700AF67D5 /* SkConvolutionBitmapFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkConvolutionBitmapFilter.cpp; path = ../../../libs/graphics/effects/SkConvolutionBitmapFilter.cpp; sourceTree = SOURCE_ROOT; };
+		00298C290E7085E7005E85ED /* SampleStrokeText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleStrokeText.cpp; path = ../../../tests/skia/SampleCode/SampleStrokeText.cpp; sourceTree = SOURCE_ROOT; };
+		003474EC0D5B61BA00F3F389 /* SampleVertices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleVertices.cpp; path = ../../../tests/skia/SampleCode/SampleVertices.cpp; sourceTree = SOURCE_ROOT; };
+		003476830DF8DEC400A270A4 /* SampleCircle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleCircle.cpp; path = ../../../tests/skia/SampleCode/SampleCircle.cpp; sourceTree = SOURCE_ROOT; };
+		003A10160E0C29F800136848 /* SampleOverflow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleOverflow.cpp; path = ../../../tests/skia/SampleCode/SampleOverflow.cpp; sourceTree = SOURCE_ROOT; };
+		003FA7090D58CA4D0063AD75 /* SampleMeasure.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleMeasure.cpp; path = ../../../tests/skia/SampleCode/SampleMeasure.cpp; sourceTree = SOURCE_ROOT; };
+		0041F4860DE1157900C74590 /* SkFontHost_FONTPATH.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_FONTPATH.cpp; path = ../../../libs/graphics/ports/SkFontHost_FONTPATH.cpp; sourceTree = SOURCE_ROOT; };
+		0041F4870DE1157900C74590 /* SkFontHost_none.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_none.cpp; path = ../../../libs/graphics/ports/SkFontHost_none.cpp; sourceTree = SOURCE_ROOT; };
+		0041F4880DE1157900C74590 /* SkFontHost_win.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_win.cpp; path = ../../../libs/graphics/ports/SkFontHost_win.cpp; sourceTree = SOURCE_ROOT; };
+		0061A77A0DB7A7150007094E /* SampleFillType.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleFillType.cpp; path = ../../../tests/skia/SampleCode/SampleFillType.cpp; sourceTree = SOURCE_ROOT; };
+		00648B590DDB15B90087F2E8 /* SampleTypeface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleTypeface.cpp; path = ../../../tests/skia/SampleCode/SampleTypeface.cpp; sourceTree = SOURCE_ROOT; };
+		0068600F0D8A1C8A00CD71AA /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework; sourceTree = DEVELOPER_DIR; };
+		006860280D8A1DFB00CD71AA /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AGL.framework; sourceTree = DEVELOPER_DIR; };
+		0071BCEE0D746BDF00F667CE /* SampleFilter2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleFilter2.cpp; path = ../../../tests/skia/SampleCode/SampleFilter2.cpp; sourceTree = SOURCE_ROOT; };
+		009A74060DA11B1F00876C03 /* GL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GL.xcodeproj; path = ../GL.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00B8EBDF0EB63983003C2F6F /* SkLayerDrawLooper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkLayerDrawLooper.cpp; path = ../../../libs/graphics/effects/SkLayerDrawLooper.cpp; sourceTree = SOURCE_ROOT; };
+		00B8EBFB0EB64ABC003C2F6F /* SampleDrawLooper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleDrawLooper.cpp; path = ../../../tests/skia/SampleCode/SampleDrawLooper.cpp; sourceTree = SOURCE_ROOT; };
+		00C5D1DD0EBFFC5C00C6702C /* test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = test.h; path = ../../../tests/skia/test/test.h; sourceTree = SOURCE_ROOT; };
+		00C5D1E00EBFFE4D00C6702C /* test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test.cpp; path = ../../../tests/skia/test/test.cpp; sourceTree = SOURCE_ROOT; };
+		00C5D1E40EC0007400C6702C /* test_drawcolor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test_drawcolor.cpp; path = ../../../tests/skia/test/test_drawcolor.cpp; sourceTree = SOURCE_ROOT; };
+		00C5D1F00EC0044600C6702C /* test_drawrect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = test_drawrect.cpp; path = ../../../tests/skia/test/test_drawrect.cpp; sourceTree = SOURCE_ROOT; };
+		00C5D2000EC00F0300C6702C /* SampleTests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleTests.cpp; path = ../../../tests/skia/SampleCode/SampleTests.cpp; sourceTree = SOURCE_ROOT; };
+		00D315700D5A5B1D004B2209 /* SampleBitmapRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleBitmapRect.cpp; path = ../../../tests/skia/SampleCode/SampleBitmapRect.cpp; sourceTree = SOURCE_ROOT; };
+		00DB0B0D0E06CEC80061DE48 /* SampleNinePatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleNinePatch.cpp; path = ../../../tests/skia/SampleCode/SampleNinePatch.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C060D3E999300651393 /* corecg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = corecg.xcodeproj; path = ../corecg.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C090D3E999300651393 /* expat.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = expat.xcodeproj; path = ../expat.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C0C0D3E999300651393 /* freetype2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = freetype2.xcodeproj; path = ../freetype2.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C120D3E999300651393 /* graphics.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = graphics.xcodeproj; path = ../graphics.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C150D3E999300651393 /* jpeg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = jpeg.xcodeproj; path = ../jpeg.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C180D3E999300651393 /* libpng.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libpng.xcodeproj; path = ../libpng.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C1B0D3E999300651393 /* ports-mac.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "ports-mac.xcodeproj"; path = "../ports-mac.xcodeproj"; sourceTree = SOURCE_ROOT; };
+		00ED8C1E0D3E999300651393 /* ports.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ports.xcodeproj; path = ../ports.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C210D3E999300651393 /* views.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = views.xcodeproj; path = ../views.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C240D3E999300651393 /* zlib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = zlib.xcodeproj; path = ../zlib.xcodeproj; sourceTree = SOURCE_ROOT; };
+		00ED8C650D3E99A800651393 /* SampleAll.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleAll.cpp; path = ../../../tests/skia/SampleCode/SampleAll.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C660D3E99A800651393 /* SampleApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleApp.cpp; path = ../../../tests/skia/SampleCode/SampleApp.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C670D3E99A800651393 /* SampleArc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleArc.cpp; path = ../../../tests/skia/SampleCode/SampleArc.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C680D3E99A800651393 /* SampleCamera.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleCamera.cpp; path = ../../../tests/skia/SampleCode/SampleCamera.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C690D3E99A800651393 /* SampleCode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleCode.h; path = ../../../tests/skia/SampleCode/SampleCode.h; sourceTree = SOURCE_ROOT; };
+		00ED8C6A0D3E99A800651393 /* SampleCull.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleCull.cpp; path = ../../../tests/skia/SampleCode/SampleCull.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C6B0D3E99A800651393 /* SampleDither.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleDither.cpp; path = ../../../tests/skia/SampleCode/SampleDither.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C6C0D3E99A800651393 /* SampleEncode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleEncode.cpp; path = ../../../tests/skia/SampleCode/SampleEncode.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C6D0D3E99A800651393 /* SampleFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleFilter.cpp; path = ../../../tests/skia/SampleCode/SampleFilter.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C6E0D3E99A800651393 /* SampleFontCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleFontCache.cpp; path = ../../../tests/skia/SampleCode/SampleFontCache.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C6F0D3E99A800651393 /* SampleImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleImage.cpp; path = ../../../tests/skia/SampleCode/SampleImage.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C700D3E99A800651393 /* SampleImageDir.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleImageDir.cpp; path = ../../../tests/skia/SampleCode/SampleImageDir.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C710D3E99A800651393 /* SampleLayers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleLayers.cpp; path = ../../../tests/skia/SampleCode/SampleLayers.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C720D3E99A800651393 /* SamplePath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePath.cpp; path = ../../../tests/skia/SampleCode/SamplePath.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C730D3E99A800651393 /* SamplePathEffects.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePathEffects.cpp; path = ../../../tests/skia/SampleCode/SamplePathEffects.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C740D3E99A800651393 /* SamplePoints.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SamplePoints.cpp; path = ../../../tests/skia/SampleCode/SamplePoints.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C750D3E99A800651393 /* SampleRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleRegion.cpp; path = ../../../tests/skia/SampleCode/SampleRegion.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C760D3E99A800651393 /* SampleShaders.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleShaders.cpp; path = ../../../tests/skia/SampleCode/SampleShaders.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C770D3E99A800651393 /* SampleText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleText.cpp; path = ../../../tests/skia/SampleCode/SampleText.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C780D3E99A800651393 /* SampleTextEffects.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleTextEffects.cpp; path = ../../../tests/skia/SampleCode/SampleTextEffects.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C790D3E99A800651393 /* SampleTextOnPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleTextOnPath.cpp; path = ../../../tests/skia/SampleCode/SampleTextOnPath.cpp; sourceTree = SOURCE_ROOT; };
+		00ED8C7A0D3E99A800651393 /* SampleTiling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleTiling.cpp; path = ../../../tests/skia/SampleCode/SampleTiling.cpp; sourceTree = SOURCE_ROOT; };
+		00F9D6230E7EC9E60031AAA2 /* SkSetPoly3To3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSetPoly3To3.cpp; path = ../../../libs/corecg/SkSetPoly3To3.cpp; sourceTree = SOURCE_ROOT; };
+		00F9D6540E7EEE580031AAA2 /* SkSetPoly3To3_D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSetPoly3To3_D.cpp; path = ../../../libs/corecg/SkSetPoly3To3_D.cpp; sourceTree = SOURCE_ROOT; };
+		00F9D6850E7F51670031AAA2 /* SkSetPoly3To3_A.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSetPoly3To3_A.cpp; path = ../../../libs/corecg/SkSetPoly3To3_A.cpp; sourceTree = SOURCE_ROOT; };
+		0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = "<group>"; };
+		20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+		8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		8D0C4E970486CD37000505A6 /* SampleCode.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleCode.app; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8D0C4E910486CD37000505A6 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				00ED8CD70D3E9FD900651393 /* libexpat.a in Frameworks */,
+				00ED8CD80D3E9FDB00651393 /* libfreetype.a in Frameworks */,
+				00ED8CDB0D3E9FE300651393 /* libjpeg.a in Frameworks */,
+				00ED8CDC0D3E9FE500651393 /* liblibpng.a in Frameworks */,
+				00ED8CDD0D3E9FE700651393 /* libports-mac.a in Frameworks */,
+				00ED8CDE0D3E9FEA00651393 /* libports.a in Frameworks */,
+				00ED8CE00D3E9FEF00651393 /* libzlib.a in Frameworks */,
+				8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */,
+				0017F2CF0D6F3933008D9B31 /* libgraphics.a in Frameworks */,
+				0017F2D00D6F393F008D9B31 /* libcorecg.a in Frameworks */,
+				0017F2D60D6F3949008D9B31 /* libviews.a in Frameworks */,
+				006860100D8A1C8B00CD71AA /* OpenGL.framework in Frameworks */,
+				006860290D8A1DFB00CD71AA /* AGL.framework in Frameworks */,
+				009A74250DA11C5D00876C03 /* libGL.a in Frameworks */,
+				0008AEE10DABF08F00477EFB /* libgiflib.a in Frameworks */,
+				00D12E4D0DAD3D0A003918C5 /* libanimator.a in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		0008AEDA0DABF01300477EFB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				0008AEDE0DABF01400477EFB /* libgiflib.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0013C78B0D94043200B41703 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				0013C7920D94043200B41703 /* libanimator.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0041F4850DE1154C00C74590 /* fonthosts */ = {
+			isa = PBXGroup;
+			children = (
+				0041F4860DE1157900C74590 /* SkFontHost_FONTPATH.cpp */,
+				0041F4870DE1157900C74590 /* SkFontHost_none.cpp */,
+				0041F4880DE1157900C74590 /* SkFontHost_win.cpp */,
+			);
+			name = fonthosts;
+			sourceTree = "<group>";
+		};
+		009A74070DA11B1F00876C03 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				009A740E0DA11B1F00876C03 /* libGL.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00C5D1DB0EBFF83100C6702C /* tests */ = {
+			isa = PBXGroup;
+			children = (
+				00C5D1E00EBFFE4D00C6702C /* test.cpp */,
+				00C5D1F00EC0044600C6702C /* test_drawrect.cpp */,
+				00C5D1E40EC0007400C6702C /* test_drawcolor.cpp */,
+				00C5D1DD0EBFFC5C00C6702C /* test.h */,
+			);
+			name = tests;
+			sourceTree = "<group>";
+		};
+		00ED8C070D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C2C0D3E999300651393 /* libcorecg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C0A0D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C320D3E999300651393 /* libexpat.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C0D0D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C380D3E999300651393 /* libfreetype.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C130D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C440D3E999300651393 /* libgraphics.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C160D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C480D3E999300651393 /* libjpeg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C190D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C4C0D3E999300651393 /* liblibpng.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C1C0D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C520D3E999300651393 /* libports-mac.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C1F0D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C580D3E999300651393 /* libports.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C220D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C5E0D3E999300651393 /* libviews.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		00ED8C250D3E999300651393 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				00ED8C620D3E999300651393 /* libzlib.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		195DF8CFFE9D517E11CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E970486CD37000505A6 /* SampleCode.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		20286C29FDCF999611CA2CEA /* SampleCode */ = {
+			isa = PBXGroup;
+			children = (
+				00C5D1DB0EBFF83100C6702C /* tests */,
+				00F9D6230E7EC9E60031AAA2 /* SkSetPoly3To3.cpp */,
+				00B8EBDF0EB63983003C2F6F /* SkLayerDrawLooper.cpp */,
+				00F9D6850E7F51670031AAA2 /* SkSetPoly3To3_A.cpp */,
+				00F9D6540E7EEE580031AAA2 /* SkSetPoly3To3_D.cpp */,
+				002919500DEC39C700AF67D5 /* SkConvolutionBitmapFilter.cpp */,
+				002919430DEBA08100AF67D5 /* SkBitmapFilter.cpp */,
+				0041F4850DE1154C00C74590 /* fonthosts */,
+				0008AED90DABF01300477EFB /* giflib.xcodeproj */,
+				009A74060DA11B1F00876C03 /* GL.xcodeproj */,
+				0013C78A0D94043200B41703 /* animator.xcodeproj */,
+				00ED8C060D3E999300651393 /* corecg.xcodeproj */,
+				00ED8C090D3E999300651393 /* expat.xcodeproj */,
+				00ED8C0C0D3E999300651393 /* freetype2.xcodeproj */,
+				00ED8C120D3E999300651393 /* graphics.xcodeproj */,
+				00ED8C150D3E999300651393 /* jpeg.xcodeproj */,
+				00ED8C180D3E999300651393 /* libpng.xcodeproj */,
+				00ED8C1B0D3E999300651393 /* ports-mac.xcodeproj */,
+				00ED8C1E0D3E999300651393 /* ports.xcodeproj */,
+				00ED8C210D3E999300651393 /* views.xcodeproj */,
+				00ED8C240D3E999300651393 /* zlib.xcodeproj */,
+				20286C2AFDCF999611CA2CEA /* Sources */,
+				20286C2CFDCF999611CA2CEA /* Resources */,
+				20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
+				195DF8CFFE9D517E11CA2CBB /* Products */,
+			);
+			name = SampleCode;
+			sourceTree = "<group>";
+		};
+		20286C2AFDCF999611CA2CEA /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				001962890EACB9D300447A07 /* SamplePatch.cpp */,
+				00298C290E7085E7005E85ED /* SampleStrokeText.cpp */,
+				001142AA0DCA20650070D0A3 /* SamplePicture.cpp */,
+				0007A8F20DB4DFF30068AF40 /* SampleXfermodes.cpp */,
+				000A1CAF0DA522ED003DAC04 /* SamplePolyToPoly.cpp */,
+				0017F1510D6A0A8A008D9B31 /* SkGeometry.h */,
+				0017F1460D6A0A6A008D9B31 /* SampleEmboss.cpp */,
+				0017F1470D6A0A6A008D9B31 /* SampleLines.cpp */,
+				00ED8C650D3E99A800651393 /* SampleAll.cpp */,
+				00ED8C660D3E99A800651393 /* SampleApp.cpp */,
+				00ED8C670D3E99A800651393 /* SampleArc.cpp */,
+				00ED8C680D3E99A800651393 /* SampleCamera.cpp */,
+				00ED8C690D3E99A800651393 /* SampleCode.h */,
+				00ED8C6A0D3E99A800651393 /* SampleCull.cpp */,
+				0061A77A0DB7A7150007094E /* SampleFillType.cpp */,
+				00ED8C6B0D3E99A800651393 /* SampleDither.cpp */,
+				00648B590DDB15B90087F2E8 /* SampleTypeface.cpp */,
+				003FA7090D58CA4D0063AD75 /* SampleMeasure.cpp */,
+				00ED8C6C0D3E99A800651393 /* SampleEncode.cpp */,
+				00ED8C6D0D3E99A800651393 /* SampleFilter.cpp */,
+				00ED8C6E0D3E99A800651393 /* SampleFontCache.cpp */,
+				0019628F0EACBA2A00447A07 /* SamplePageFlip.cpp */,
+				00B8EBFB0EB64ABC003C2F6F /* SampleDrawLooper.cpp */,
+				00ED8C6F0D3E99A800651393 /* SampleImage.cpp */,
+				00ED8C700D3E99A800651393 /* SampleImageDir.cpp */,
+				0071BCEE0D746BDF00F667CE /* SampleFilter2.cpp */,
+				00D315700D5A5B1D004B2209 /* SampleBitmapRect.cpp */,
+				003474EC0D5B61BA00F3F389 /* SampleVertices.cpp */,
+				000DC0C50D63796E00854F5A /* SampleTextAlpha.cpp */,
+				00ED8C710D3E99A800651393 /* SampleLayers.cpp */,
+				00C5D2000EC00F0300C6702C /* SampleTests.cpp */,
+				00ED8C720D3E99A800651393 /* SamplePath.cpp */,
+				00ED8C730D3E99A800651393 /* SamplePathEffects.cpp */,
+				00ED8C740D3E99A800651393 /* SamplePoints.cpp */,
+				00ED8C750D3E99A800651393 /* SampleRegion.cpp */,
+				00ED8C760D3E99A800651393 /* SampleShaders.cpp */,
+				00ED8C770D3E99A800651393 /* SampleText.cpp */,
+				00ED8C780D3E99A800651393 /* SampleTextEffects.cpp */,
+				00ED8C790D3E99A800651393 /* SampleTextOnPath.cpp */,
+				00ED8C7A0D3E99A800651393 /* SampleTiling.cpp */,
+				003476830DF8DEC400A270A4 /* SampleCircle.cpp */,
+				003A10160E0C29F800136848 /* SampleOverflow.cpp */,
+				00DB0B0D0E06CEC80061DE48 /* SampleNinePatch.cpp */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		20286C2CFDCF999611CA2CEA /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E960486CD37000505A6 /* Info.plist */,
+				0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */,
+				02345980000FD03B11CA0E72 /* main.nib */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				006860280D8A1DFB00CD71AA /* AGL.framework */,
+				0068600F0D8A1C8A00CD71AA /* OpenGL.framework */,
+				20286C33FDCF999611CA2CEA /* Carbon.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8D0C4E890486CD37000505A6 /* SampleCode */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "SampleCode" */;
+			buildPhases = (
+				8D0C4E8C0486CD37000505A6 /* Resources */,
+				8D0C4E8F0486CD37000505A6 /* Sources */,
+				8D0C4E910486CD37000505A6 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				00ED8C9E0D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CA00D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CA20D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CA40D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CA80D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CAA0D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CAC0D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CAE0D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CB00D3E9AFA00651393 /* PBXTargetDependency */,
+				00ED8CB20D3E9AFA00651393 /* PBXTargetDependency */,
+				0013C7950D94044800B41703 /* PBXTargetDependency */,
+				009A741D0DA11BAE00876C03 /* PBXTargetDependency */,
+				0008AF100DABF9BD00477EFB /* PBXTargetDependency */,
+			);
+			name = SampleCode;
+			productInstallPath = "$(HOME)/Applications";
+			productName = SampleCode;
+			productReference = 8D0C4E970486CD37000505A6 /* SampleCode.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		20286C28FDCF999611CA2CEA /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "SampleCode" */;
+			compatibilityVersion = "Xcode 3.0";
+			hasScannedForEncodings = 1;
+			mainGroup = 20286C29FDCF999611CA2CEA /* SampleCode */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = 0013C78B0D94043200B41703 /* Products */;
+					ProjectRef = 0013C78A0D94043200B41703 /* animator.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C070D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C060D3E999300651393 /* corecg.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C0A0D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C090D3E999300651393 /* expat.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C0D0D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C0C0D3E999300651393 /* freetype2.xcodeproj */;
+				},
+				{
+					ProductGroup = 0008AEDA0DABF01300477EFB /* Products */;
+					ProjectRef = 0008AED90DABF01300477EFB /* giflib.xcodeproj */;
+				},
+				{
+					ProductGroup = 009A74070DA11B1F00876C03 /* Products */;
+					ProjectRef = 009A74060DA11B1F00876C03 /* GL.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C130D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C120D3E999300651393 /* graphics.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C160D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C150D3E999300651393 /* jpeg.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C190D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C180D3E999300651393 /* libpng.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C1C0D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C1B0D3E999300651393 /* ports-mac.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C1F0D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C1E0D3E999300651393 /* ports.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C220D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C210D3E999300651393 /* views.xcodeproj */;
+				},
+				{
+					ProductGroup = 00ED8C250D3E999300651393 /* Products */;
+					ProjectRef = 00ED8C240D3E999300651393 /* zlib.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				8D0C4E890486CD37000505A6 /* SampleCode */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		0008AEDE0DABF01400477EFB /* libgiflib.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libgiflib.a;
+			remoteRef = 0008AEDD0DABF01400477EFB /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		0013C7920D94043200B41703 /* libanimator.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libanimator.a;
+			remoteRef = 0013C7910D94043200B41703 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		009A740E0DA11B1F00876C03 /* libGL.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libGL.a;
+			remoteRef = 009A740D0DA11B1F00876C03 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C2C0D3E999300651393 /* libcorecg.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libcorecg.a;
+			remoteRef = 00ED8C2B0D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C320D3E999300651393 /* libexpat.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libexpat.a;
+			remoteRef = 00ED8C310D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C380D3E999300651393 /* libfreetype.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libfreetype.a;
+			remoteRef = 00ED8C370D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C440D3E999300651393 /* libgraphics.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libgraphics.a;
+			remoteRef = 00ED8C430D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C480D3E999300651393 /* libjpeg.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libjpeg.a;
+			remoteRef = 00ED8C470D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C4C0D3E999300651393 /* liblibpng.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = liblibpng.a;
+			remoteRef = 00ED8C4B0D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C520D3E999300651393 /* libports-mac.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libports-mac.a";
+			remoteRef = 00ED8C510D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C580D3E999300651393 /* libports.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libports.a;
+			remoteRef = 00ED8C570D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C5E0D3E999300651393 /* libviews.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libviews.a;
+			remoteRef = 00ED8C5D0D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		00ED8C620D3E999300651393 /* libzlib.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libzlib.a;
+			remoteRef = 00ED8C610D3E999300651393 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		8D0C4E8C0486CD37000505A6 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */,
+				8D0C4E8E0486CD37000505A6 /* main.nib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8D0C4E8F0486CD37000505A6 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				00685FCE0D8A16C300CD71AA /* SampleAll.cpp in Sources */,
+				00ED8C7C0D3E99A800651393 /* SampleApp.cpp in Sources */,
+				00ED8C7F0D3E99A800651393 /* SampleCull.cpp in Sources */,
+				00ED8C820D3E99A800651393 /* SampleFilter.cpp in Sources */,
+				00ED8C830D3E99A800651393 /* SampleFontCache.cpp in Sources */,
+				00ED8C870D3E99A800651393 /* SamplePath.cpp in Sources */,
+				00ED8C8A0D3E99A800651393 /* SampleRegion.cpp in Sources */,
+				00ED8C8B0D3E99A800651393 /* SampleShaders.cpp in Sources */,
+				00ED8C8C0D3E99A800651393 /* SampleText.cpp in Sources */,
+				003FA70A0D58CA4D0063AD75 /* SampleMeasure.cpp in Sources */,
+				00ED8C8D0D3E99A800651393 /* SampleTextEffects.cpp in Sources */,
+				0017F1490D6A0A6A008D9B31 /* SampleEmboss.cpp in Sources */,
+				0017F14A0D6A0A6A008D9B31 /* SampleLines.cpp in Sources */,
+				0071BCEF0D746BDF00F667CE /* SampleFilter2.cpp in Sources */,
+				00D315710D5A5B1D004B2209 /* SampleBitmapRect.cpp in Sources */,
+				00ED8C7E0D3E99A800651393 /* SampleCamera.cpp in Sources */,
+				003474ED0D5B61BA00F3F389 /* SampleVertices.cpp in Sources */,
+				000DC0C60D63796E00854F5A /* SampleTextAlpha.cpp in Sources */,
+				00ED8C8F0D3E99A800651393 /* SampleTiling.cpp in Sources */,
+				00ED8C890D3E99A800651393 /* SamplePoints.cpp in Sources */,
+				00ED8C880D3E99A800651393 /* SamplePathEffects.cpp in Sources */,
+				00ED8C8E0D3E99A800651393 /* SampleTextOnPath.cpp in Sources */,
+				00648B5A0DDB15B90087F2E8 /* SampleTypeface.cpp in Sources */,
+				00ED8C840D3E99A800651393 /* SampleImage.cpp in Sources */,
+				0007A8F30DB4DFF30068AF40 /* SampleXfermodes.cpp in Sources */,
+				002919440DEBA08100AF67D5 /* SkBitmapFilter.cpp in Sources */,
+				002919510DEC39C700AF67D5 /* SkConvolutionBitmapFilter.cpp in Sources */,
+				001142AB0DCA20650070D0A3 /* SamplePicture.cpp in Sources */,
+				00298C2A0E7085E7005E85ED /* SampleStrokeText.cpp in Sources */,
+				00ED8C810D3E99A800651393 /* SampleEncode.cpp in Sources */,
+				000A1CB00DA522ED003DAC04 /* SamplePolyToPoly.cpp in Sources */,
+				00F9D6860E7F51680031AAA2 /* SkSetPoly3To3_A.cpp in Sources */,
+				0019628A0EACB9D300447A07 /* SamplePatch.cpp in Sources */,
+				001962900EACBA2A00447A07 /* SamplePageFlip.cpp in Sources */,
+				00ED8C860D3E99A800651393 /* SampleLayers.cpp in Sources */,
+				00C5D1E10EBFFE4D00C6702C /* test.cpp in Sources */,
+				00C5D1E50EC0007400C6702C /* test_drawcolor.cpp in Sources */,
+				00C5D2010EC00F0300C6702C /* SampleTests.cpp in Sources */,
+				00C5D20E0EC0106F00C6702C /* test_drawrect.cpp in Sources */,
+				00ED8C850D3E99A800651393 /* SampleImageDir.cpp in Sources */,
+				003A10170E0C29F800136848 /* SampleOverflow.cpp in Sources */,
+				00ED8C800D3E99A800651393 /* SampleDither.cpp in Sources */,
+				00ED8C7D0D3E99A800651393 /* SampleArc.cpp in Sources */,
+				0061A77B0DB7A7150007094E /* SampleFillType.cpp in Sources */,
+				003476840DF8DEC400A270A4 /* SampleCircle.cpp in Sources */,
+				00B8EBFC0EB64ABC003C2F6F /* SampleDrawLooper.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		0008AF100DABF9BD00477EFB /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = giflib;
+			targetProxy = 0008AF0F0DABF9BD00477EFB /* PBXContainerItemProxy */;
+		};
+		0013C7950D94044800B41703 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = animator;
+			targetProxy = 0013C7940D94044800B41703 /* PBXContainerItemProxy */;
+		};
+		009A741D0DA11BAE00876C03 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = GL;
+			targetProxy = 009A741C0DA11BAE00876C03 /* PBXContainerItemProxy */;
+		};
+		00ED8C9E0D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "ports-mac";
+			targetProxy = 00ED8C9D0D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CA00D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = ports;
+			targetProxy = 00ED8C9F0D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CA20D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = jpeg;
+			targetProxy = 00ED8CA10D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CA40D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = graphics;
+			targetProxy = 00ED8CA30D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CA80D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = expat;
+			targetProxy = 00ED8CA70D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CAA0D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = views;
+			targetProxy = 00ED8CA90D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CAC0D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = corecg;
+			targetProxy = 00ED8CAB0D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CAE0D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = zlib;
+			targetProxy = 00ED8CAD0D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CB00D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = freetype;
+			targetProxy = 00ED8CAF0D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+		00ED8CB20D3E9AFA00651393 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = libpng;
+			targetProxy = 00ED8CB10D3E9AFA00651393 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		02345980000FD03B11CA0E72 /* main.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				1870340FFE93FCAF11CA0CD7 /* English */,
+			);
+			name = main.nib;
+			sourceTree = "<group>";
+		};
+		0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				0867D6ABFE840B52C02AAC07 /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		C0E91AC608A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_DIR)/SDKs/MacOSX10.5.sdk/System/Library/Frameworks\"",
+				);
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = NO;
+				GCC_PREFIX_HEADER = SampleCode_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				PRODUCT_NAME = SampleCode;
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		C0E91AC708A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"\"$(DEVELOPER_DIR)/SDKs/MacOSX10.5.sdk/System/Library/Frameworks\"",
+				);
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = SampleCode_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				PRODUCT_NAME = SampleCode;
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+		C0E91ACA08A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_DEBUGGING_SYMBOLS = full;
+				GCC_ENABLE_ASM_KEYWORD = NO;
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREFIX_HEADER = " ";
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_DEBUG,
+					SK_BUILD_FOR_MAC,
+				);
+				GCC_THREADSAFE_STATICS = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../../include/corecg/** ../../../include/graphics/**";
+			};
+			name = Debug;
+		};
+		C0E91ACB08A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = (
+					ppc,
+					i386,
+				);
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_DEBUGGING_SYMBOLS = full;
+				GCC_ENABLE_ASM_KEYWORD = NO;
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PRECOMPILE_PREFIX_HEADER = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				GCC_THREADSAFE_STATICS = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+				GCC_WARN_PEDANTIC = NO;
+				GCC_WARN_SHADOW = YES;
+				GCC_WARN_SIGN_COMPARE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../../include/corecg/** ../../../include/graphics/**";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "SampleCode" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91AC608A95435008D54AB /* Debug */,
+				C0E91AC708A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "SampleCode" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91ACA08A95435008D54AB /* Debug */,
+				C0E91ACB08A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
+}
diff --git a/ide/xcode/SampleCode/SampleCode_Prefix.pch b/ide/xcode/SampleCode/SampleCode_Prefix.pch
new file mode 100644
index 0000000..4291858
--- /dev/null
+++ b/ide/xcode/SampleCode/SampleCode_Prefix.pch
@@ -0,0 +1,5 @@
+//
+// Prefix header for all source files of the 'SampleCode' target in the 'SampleCode' project.
+//
+
+#include <Carbon/Carbon.h>
diff --git a/ide/xcode/animator.xcodeproj/project.pbxproj b/ide/xcode/animator.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..3b3bee4
--- /dev/null
+++ b/ide/xcode/animator.xcodeproj/project.pbxproj
@@ -0,0 +1,851 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		FE49EAAC09FD5DB800D28411 /* SkDrawExtraPathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = FE49EAAB09FD5DB800D28411 /* SkDrawExtraPathEffect.h */; };
+		FE49EB4D09FE783600D28411 /* SkDisplayNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = FE49EB4C09FE783600D28411 /* SkDisplayNumber.h */; };
+		FE49EB5109FE785E00D28411 /* SkDisplayNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE49EB5009FE785E00D28411 /* SkDisplayNumber.cpp */; };
+		FE49EE0C09FFDB0300D28411 /* SkAnimateProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = FE49EE0B09FFDB0300D28411 /* SkAnimateProperties.h */; };
+		FE51FB850A6FDCE500ABA91D /* SkDrawSaveLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE51FB840A6FDCE400ABA91D /* SkDrawSaveLayer.h */; };
+		FE51FB8F0A6FE7DC00ABA91D /* SkDrawSaveLayer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE51FB8E0A6FE7DC00ABA91D /* SkDrawSaveLayer.cpp */; };
+		FE5F49840948A5390095980F /* SkAnimateBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F48F30948A5380095980F /* SkAnimateBase.h */; };
+		FE5F49850948A5390095980F /* SkAnimateActive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48F60948A5380095980F /* SkAnimateActive.cpp */; };
+		FE5F49860948A5390095980F /* SkAnimateActive.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F48F70948A5380095980F /* SkAnimateActive.h */; };
+		FE5F49870948A5390095980F /* SkAnimateField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48F80948A5380095980F /* SkAnimateField.cpp */; };
+		FE5F49880948A5390095980F /* SkAnimate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F48F90948A5380095980F /* SkAnimate.h */; };
+		FE5F49890948A5390095980F /* SkAnimateMaker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48FA0948A5380095980F /* SkAnimateMaker.cpp */; };
+		FE5F498A0948A5390095980F /* SkAnimateMaker.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F48FB0948A5380095980F /* SkAnimateMaker.h */; };
+		FE5F498B0948A5390095980F /* SkAnimateSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48FE0948A5380095980F /* SkAnimateSet.cpp */; };
+		FE5F498C0948A5390095980F /* SkAnimateSet.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F48FF0948A5380095980F /* SkAnimateSet.h */; };
+		FE5F498D0948A5390095980F /* SkAnimator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49000948A5380095980F /* SkAnimator.cpp */; };
+		FE5F498E0948A5390095980F /* SkAnimatorScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49010948A5380095980F /* SkAnimatorScript.cpp */; };
+		FE5F498F0948A5390095980F /* SkAnimatorScript.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49020948A5380095980F /* SkAnimatorScript.h */; };
+		FE5F49900948A5390095980F /* SkBase64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49030948A5380095980F /* SkBase64.cpp */; };
+		FE5F49910948A5390095980F /* SkBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49040948A5380095980F /* SkBase64.h */; };
+		FE5F49920948A5390095980F /* SkBoundable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49050948A5380095980F /* SkBoundable.cpp */; };
+		FE5F49930948A5390095980F /* SkBoundable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49060948A5380095980F /* SkBoundable.h */; };
+		FE5F49940948A5390095980F /* SkBuildCondensedInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49070948A5380095980F /* SkBuildCondensedInfo.cpp */; };
+		FE5F49970948A5390095980F /* SkDisplayable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F490A0948A5380095980F /* SkDisplayable.cpp */; };
+		FE5F49980948A5390095980F /* SkDisplayable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F490B0948A5380095980F /* SkDisplayable.h */; };
+		FE5F49990948A5390095980F /* SkDisplayAdd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F490C0948A5380095980F /* SkDisplayAdd.cpp */; };
+		FE5F499A0948A5390095980F /* SkDisplayAdd.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F490D0948A5380095980F /* SkDisplayAdd.h */; };
+		FE5F499B0948A5390095980F /* SkDisplayApply.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F490E0948A5380095980F /* SkDisplayApply.cpp */; };
+		FE5F499C0948A5390095980F /* SkDisplayApply.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F490F0948A5380095980F /* SkDisplayApply.h */; };
+		FE5F499D0948A5390095980F /* SkDisplayBounds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49100948A5380095980F /* SkDisplayBounds.cpp */; };
+		FE5F499E0948A5390095980F /* SkDisplayBounds.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49110948A5380095980F /* SkDisplayBounds.h */; };
+		FE5F499F0948A5390095980F /* SkDisplayEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49120948A5380095980F /* SkDisplayEvent.cpp */; };
+		FE5F49A00948A5390095980F /* SkDisplayEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49130948A5380095980F /* SkDisplayEvent.h */; };
+		FE5F49A10948A5390095980F /* SkDisplayEvents.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49140948A5380095980F /* SkDisplayEvents.cpp */; };
+		FE5F49A20948A5390095980F /* SkDisplayEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49150948A5380095980F /* SkDisplayEvents.h */; };
+		FE5F49A30948A5390095980F /* SkDisplayInclude.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49160948A5380095980F /* SkDisplayInclude.cpp */; };
+		FE5F49A40948A5390095980F /* SkDisplayInclude.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49170948A5380095980F /* SkDisplayInclude.h */; };
+		FE5F49A50948A5390095980F /* SkDisplayInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49180948A5380095980F /* SkDisplayInput.cpp */; };
+		FE5F49A60948A5390095980F /* SkDisplayInput.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49190948A5380095980F /* SkDisplayInput.h */; };
+		FE5F49A70948A5390095980F /* SkDisplayList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F491A0948A5380095980F /* SkDisplayList.cpp */; };
+		FE5F49A80948A5390095980F /* SkDisplayList.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F491B0948A5380095980F /* SkDisplayList.h */; };
+		FE5F49A90948A5390095980F /* SkDisplayMath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F491C0948A5380095980F /* SkDisplayMath.cpp */; };
+		FE5F49AA0948A5390095980F /* SkDisplayMath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F491D0948A5380095980F /* SkDisplayMath.h */; };
+		FE5F49AB0948A5390095980F /* SkDisplayMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F491E0948A5380095980F /* SkDisplayMovie.cpp */; };
+		FE5F49AC0948A5390095980F /* SkDisplayMovie.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F491F0948A5380095980F /* SkDisplayMovie.h */; };
+		FE5F49AD0948A5390095980F /* SkDisplayPost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49200948A5380095980F /* SkDisplayPost.cpp */; };
+		FE5F49AE0948A5390095980F /* SkDisplayPost.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49210948A5380095980F /* SkDisplayPost.h */; };
+		FE5F49AF0948A5390095980F /* SkDisplayRandom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49220948A5380095980F /* SkDisplayRandom.cpp */; };
+		FE5F49B00948A5390095980F /* SkDisplayRandom.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49230948A5380095980F /* SkDisplayRandom.h */; };
+		FE5F49B10948A5390095980F /* SkDisplayScreenplay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49240948A5380095980F /* SkDisplayScreenplay.cpp */; };
+		FE5F49B20948A5390095980F /* SkDisplayScreenplay.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49250948A5380095980F /* SkDisplayScreenplay.h */; };
+		FE5F49B30948A5390095980F /* SkDisplayType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49260948A5380095980F /* SkDisplayType.cpp */; };
+		FE5F49B40948A5390095980F /* SkDisplayType.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49270948A5380095980F /* SkDisplayType.h */; };
+		FE5F49B50948A5390095980F /* SkDisplayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49280948A5380095980F /* SkDisplayTypes.cpp */; };
+		FE5F49B60948A5390095980F /* SkDisplayTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49290948A5380095980F /* SkDisplayTypes.h */; };
+		FE5F49B70948A5390095980F /* SkDisplayXMLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F492A0948A5380095980F /* SkDisplayXMLParser.cpp */; };
+		FE5F49B80948A5390095980F /* SkDisplayXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F492B0948A5380095980F /* SkDisplayXMLParser.h */; };
+		FE5F49B90948A5390095980F /* SkDraw3D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F492C0948A5380095980F /* SkDraw3D.cpp */; };
+		FE5F49BA0948A5390095980F /* SkDraw3D.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F492D0948A5380095980F /* SkDraw3D.h */; };
+		FE5F49BB0948A5390095980F /* SkDrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F492E0948A5380095980F /* SkDrawable.cpp */; };
+		FE5F49BC0948A5390095980F /* SkDrawable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F492F0948A5380095980F /* SkDrawable.h */; };
+		FE5F49BD0948A5390095980F /* SkDrawBitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49300948A5380095980F /* SkDrawBitmap.cpp */; };
+		FE5F49BE0948A5390095980F /* SkDrawBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49310948A5380095980F /* SkDrawBitmap.h */; };
+		FE5F49BF0948A5390095980F /* SkDrawBlur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49320948A5380095980F /* SkDrawBlur.cpp */; };
+		FE5F49C00948A5390095980F /* SkDrawBlur.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49330948A5380095980F /* SkDrawBlur.h */; };
+		FE5F49C10948A5390095980F /* SkDrawClip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49340948A5380095980F /* SkDrawClip.cpp */; };
+		FE5F49C20948A5390095980F /* SkDrawClip.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49350948A5380095980F /* SkDrawClip.h */; };
+		FE5F49C30948A5390095980F /* SkDrawColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49360948A5380095980F /* SkDrawColor.cpp */; };
+		FE5F49C40948A5390095980F /* SkDrawColor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49370948A5380095980F /* SkDrawColor.h */; };
+		FE5F49C50948A5390095980F /* SkDrawDash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49380948A5380095980F /* SkDrawDash.cpp */; };
+		FE5F49C60948A5390095980F /* SkDrawDash.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49390948A5380095980F /* SkDrawDash.h */; };
+		FE5F49C70948A5390095980F /* SkDrawDiscrete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F493A0948A5380095980F /* SkDrawDiscrete.cpp */; };
+		FE5F49C80948A5390095980F /* SkDrawDiscrete.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F493B0948A5380095980F /* SkDrawDiscrete.h */; };
+		FE5F49C90948A5390095980F /* SkDrawEmboss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F493C0948A5380095980F /* SkDrawEmboss.cpp */; };
+		FE5F49CA0948A5390095980F /* SkDrawEmboss.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F493D0948A5380095980F /* SkDrawEmboss.h */; };
+		FE5F49CB0948A5390095980F /* SkDrawExtraPathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F493E0948A5380095980F /* SkDrawExtraPathEffect.cpp */; };
+		FE5F49CC0948A5390095980F /* SkDrawFull.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F493F0948A5380095980F /* SkDrawFull.cpp */; };
+		FE5F49CD0948A5390095980F /* SkDrawFull.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49400948A5380095980F /* SkDrawFull.h */; };
+		FE5F49CE0948A5390095980F /* SkDrawGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49410948A5380095980F /* SkDrawGradient.cpp */; };
+		FE5F49CF0948A5390095980F /* SkDrawGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49420948A5380095980F /* SkDrawGradient.h */; };
+		FE5F49D00948A5390095980F /* SkDrawGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49430948A5380095980F /* SkDrawGroup.cpp */; };
+		FE5F49D10948A5390095980F /* SkDrawGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49440948A5380095980F /* SkDrawGroup.h */; };
+		FE5F49D20948A5390095980F /* SkDrawLine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49450948A5380095980F /* SkDrawLine.cpp */; };
+		FE5F49D30948A5390095980F /* SkDrawLine.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49460948A5380095980F /* SkDrawLine.h */; };
+		FE5F49D40948A5390095980F /* SkDrawMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49470948A5380095980F /* SkDrawMatrix.cpp */; };
+		FE5F49D50948A5390095980F /* SkDrawMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49480948A5380095980F /* SkDrawMatrix.h */; };
+		FE5F49D60948A5390095980F /* SkDrawOval.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49490948A5380095980F /* SkDrawOval.cpp */; };
+		FE5F49D70948A5390095980F /* SkDrawOval.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F494A0948A5380095980F /* SkDrawOval.h */; };
+		FE5F49D80948A5390095980F /* SkDrawPaint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F494B0948A5390095980F /* SkDrawPaint.cpp */; };
+		FE5F49D90948A5390095980F /* SkDrawPaint.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F494C0948A5390095980F /* SkDrawPaint.h */; };
+		FE5F49DA0948A5390095980F /* SkDrawPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F494D0948A5390095980F /* SkDrawPath.cpp */; };
+		FE5F49DB0948A5390095980F /* SkDrawPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F494E0948A5390095980F /* SkDrawPath.h */; };
+		FE5F49DC0948A5390095980F /* SkDrawPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F494F0948A5390095980F /* SkDrawPoint.cpp */; };
+		FE5F49DD0948A5390095980F /* SkDrawPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49500948A5390095980F /* SkDrawPoint.h */; };
+		FE5F49DE0948A5390095980F /* SkDrawRectangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49510948A5390095980F /* SkDrawRectangle.cpp */; };
+		FE5F49DF0948A5390095980F /* SkDrawRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49520948A5390095980F /* SkDrawRectangle.h */; };
+		FE5F49E00948A5390095980F /* SkDrawShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49530948A5390095980F /* SkDrawShader.cpp */; };
+		FE5F49E10948A5390095980F /* SkDrawShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49540948A5390095980F /* SkDrawShader.h */; };
+		FE5F49E20948A5390095980F /* SkDrawText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49550948A5390095980F /* SkDrawText.cpp */; };
+		FE5F49E30948A5390095980F /* SkDrawText.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49560948A5390095980F /* SkDrawText.h */; };
+		FE5F49E40948A5390095980F /* SkDrawTextBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49570948A5390095980F /* SkDrawTextBox.cpp */; };
+		FE5F49E50948A5390095980F /* SkDrawTextBox.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49580948A5390095980F /* SkDrawTextBox.h */; };
+		FE5F49E60948A5390095980F /* SkDrawTo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49590948A5390095980F /* SkDrawTo.cpp */; };
+		FE5F49E70948A5390095980F /* SkDrawTo.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F495A0948A5390095980F /* SkDrawTo.h */; };
+		FE5F49E80948A5390095980F /* SkDrawTransparentShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F495B0948A5390095980F /* SkDrawTransparentShader.cpp */; };
+		FE5F49E90948A5390095980F /* SkDrawTransparentShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F495C0948A5390095980F /* SkDrawTransparentShader.h */; };
+		FE5F49EA0948A5390095980F /* SkDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F495D0948A5390095980F /* SkDump.cpp */; };
+		FE5F49EB0948A5390095980F /* SkDump.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F495E0948A5390095980F /* SkDump.h */; };
+		FE5F49EC0948A5390095980F /* SkExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49600948A5390095980F /* SkExtras.h */; };
+		FE5F49ED0948A5390095980F /* SkGetCondensedInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49610948A5390095980F /* SkGetCondensedInfo.cpp */; };
+		FE5F49EE0948A5390095980F /* SkHitClear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49620948A5390095980F /* SkHitClear.cpp */; };
+		FE5F49EF0948A5390095980F /* SkHitClear.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49630948A5390095980F /* SkHitClear.h */; };
+		FE5F49F00948A5390095980F /* SkHitTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49640948A5390095980F /* SkHitTest.cpp */; };
+		FE5F49F10948A5390095980F /* SkHitTest.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49650948A5390095980F /* SkHitTest.h */; };
+		FE5F49F20948A5390095980F /* SkIntArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49660948A5390095980F /* SkIntArray.h */; };
+		FE5F49F40948A5390095980F /* SkMatrixParts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49680948A5390095980F /* SkMatrixParts.cpp */; };
+		FE5F49F50948A5390095980F /* SkMatrixParts.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49690948A5390095980F /* SkMatrixParts.h */; };
+		FE5F49F60948A5390095980F /* SkMemberInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F496A0948A5390095980F /* SkMemberInfo.cpp */; };
+		FE5F49F70948A5390095980F /* SkMemberInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F496B0948A5390095980F /* SkMemberInfo.h */; };
+		FE5F49F80948A5390095980F /* SkOperand.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F496C0948A5390095980F /* SkOperand.h */; };
+		FE5F49F90948A5390095980F /* SkOperandInterpolator.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F496D0948A5390095980F /* SkOperandInterpolator.h */; };
+		FE5F49FA0948A5390095980F /* SkOperandIterpolator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F496E0948A5390095980F /* SkOperandIterpolator.cpp */; };
+		FE5F49FB0948A5390095980F /* SkPaintParts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F496F0948A5390095980F /* SkPaintParts.cpp */; };
+		FE5F49FC0948A5390095980F /* SkPaintParts.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49700948A5390095980F /* SkPaintParts.h */; };
+		FE5F49FD0948A5390095980F /* SkPathParts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49710948A5390095980F /* SkPathParts.cpp */; };
+		FE5F49FE0948A5390095980F /* SkPathParts.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49720948A5390095980F /* SkPathParts.h */; };
+		FE5F49FF0948A5390095980F /* SkPostParts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49730948A5390095980F /* SkPostParts.cpp */; };
+		FE5F4A000948A5390095980F /* SkPostParts.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49740948A5390095980F /* SkPostParts.h */; };
+		FE5F4A010948A5390095980F /* SkScript.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49750948A5390095980F /* SkScript.cpp */; };
+		FE5F4A020948A5390095980F /* SkScript.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49760948A5390095980F /* SkScript.h */; };
+		FE5F4A030948A5390095980F /* SkSnapshot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49770948A5390095980F /* SkSnapshot.cpp */; };
+		FE5F4A040948A5390095980F /* SkSnapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49780948A5390095980F /* SkSnapshot.h */; };
+		FE5F4A050948A5390095980F /* SkSVGPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49790948A5390095980F /* SkSVGPath.cpp */; };
+		FE5F4A060948A5390095980F /* SkTDArray_Experimental.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F497A0948A5390095980F /* SkTDArray_Experimental.h */; };
+		FE5F4A070948A5390095980F /* SkTextOnPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F497B0948A5390095980F /* SkTextOnPath.cpp */; };
+		FE5F4A080948A5390095980F /* SkTextOnPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F497C0948A5390095980F /* SkTextOnPath.h */; };
+		FE5F4A090948A5390095980F /* SkTextToPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F497D0948A5390095980F /* SkTextToPath.cpp */; };
+		FE5F4A0A0948A5390095980F /* SkTextToPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F497E0948A5390095980F /* SkTextToPath.h */; };
+		FE5F4A0B0948A5390095980F /* SkTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F497F0948A5390095980F /* SkTime.cpp */; };
+		FE5F4A0C0948A5390095980F /* SkTypedArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49800948A5390095980F /* SkTypedArray.cpp */; };
+		FE5F4A0D0948A5390095980F /* SkTypedArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49810948A5390095980F /* SkTypedArray.h */; };
+		FE5F4A0E0948A5390095980F /* SkXMLAnimatorWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F49820948A5390095980F /* SkXMLAnimatorWriter.cpp */; };
+		FE5F4A0F0948A5390095980F /* SkXMLAnimatorWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F49830948A5390095980F /* SkXMLAnimatorWriter.h */; };
+		FE76553E09DFF6610088D6CA /* SkScriptTokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE76553D09DFF6610088D6CA /* SkScriptTokenizer.cpp */; };
+		FECB4EF409DF3E3600D03FF8 /* SkAnimatorScript2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECB4EEA09DF3E3600D03FF8 /* SkAnimatorScript2.cpp */; };
+		FECB4EF509DF3E3600D03FF8 /* SkAnimatorScript2.h in Headers */ = {isa = PBXBuildFile; fileRef = FECB4EEB09DF3E3600D03FF8 /* SkAnimatorScript2.h */; };
+		FECB4EF609DF3E3600D03FF8 /* SkOpArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECB4EEC09DF3E3600D03FF8 /* SkOpArray.cpp */; };
+		FECB4EF709DF3E3600D03FF8 /* SkOpArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FECB4EED09DF3E3600D03FF8 /* SkOpArray.h */; };
+		FECB4EF809DF3E3600D03FF8 /* SkOperand2.h in Headers */ = {isa = PBXBuildFile; fileRef = FECB4EEE09DF3E3600D03FF8 /* SkOperand2.h */; };
+		FECB4EF909DF3E3600D03FF8 /* SkScript2.h in Headers */ = {isa = PBXBuildFile; fileRef = FECB4EEF09DF3E3600D03FF8 /* SkScript2.h */; };
+		FECB4EFA09DF3E3600D03FF8 /* SkScriptCallBack.h in Headers */ = {isa = PBXBuildFile; fileRef = FECB4EF009DF3E3600D03FF8 /* SkScriptCallBack.h */; };
+		FECB4EFB09DF3E3600D03FF8 /* SkScriptDecompile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECB4EF109DF3E3600D03FF8 /* SkScriptDecompile.cpp */; };
+		FECB4EFC09DF3E3600D03FF8 /* SkScriptRuntime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECB4EF209DF3E3600D03FF8 /* SkScriptRuntime.cpp */; };
+		FECB4EFD09DF3E3600D03FF8 /* SkScriptRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = FECB4EF309DF3E3600D03FF8 /* SkScriptRuntime.h */; };
+		FEE7D79F094613A600B11B76 /* SkAnimateBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEE7D79E094613A600B11B76 /* SkAnimateBase.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		D2AAC046055464E500DB518D /* libanimator.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libanimator.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE49EAAB09FD5DB800D28411 /* SkDrawExtraPathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawExtraPathEffect.h; path = ../../include/graphics/SkDrawExtraPathEffect.h; sourceTree = SOURCE_ROOT; };
+		FE49EB4C09FE783600D28411 /* SkDisplayNumber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayNumber.h; path = ../../libs/graphics/animator/SkDisplayNumber.h; sourceTree = SOURCE_ROOT; };
+		FE49EB5009FE785E00D28411 /* SkDisplayNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayNumber.cpp; path = ../../libs/graphics/animator/SkDisplayNumber.cpp; sourceTree = SOURCE_ROOT; };
+		FE49EE0B09FFDB0300D28411 /* SkAnimateProperties.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimateProperties.h; path = ../../libs/graphics/animator/SkAnimateProperties.h; sourceTree = SOURCE_ROOT; };
+		FE51FB840A6FDCE400ABA91D /* SkDrawSaveLayer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawSaveLayer.h; path = ../../libs/graphics/animator/SkDrawSaveLayer.h; sourceTree = SOURCE_ROOT; };
+		FE51FB8E0A6FE7DC00ABA91D /* SkDrawSaveLayer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawSaveLayer.cpp; path = ../../libs/graphics/animator/SkDrawSaveLayer.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48F30948A5380095980F /* SkAnimateBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimateBase.h; path = ../../libs/graphics/animator/SkAnimateBase.h; sourceTree = SOURCE_ROOT; };
+		FE5F48F40948A5380095980F /* SkAnimate3DSchema.xsd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = SkAnimate3DSchema.xsd; path = ../../libs/graphics/animator/SkAnimate3DSchema.xsd; sourceTree = SOURCE_ROOT; };
+		FE5F48F50948A5380095980F /* SkAnimate3DSchema.xsx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; name = SkAnimate3DSchema.xsx; path = ../../libs/graphics/animator/SkAnimate3DSchema.xsx; sourceTree = SOURCE_ROOT; };
+		FE5F48F60948A5380095980F /* SkAnimateActive.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimateActive.cpp; path = ../../libs/graphics/animator/SkAnimateActive.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48F70948A5380095980F /* SkAnimateActive.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimateActive.h; path = ../../libs/graphics/animator/SkAnimateActive.h; sourceTree = SOURCE_ROOT; };
+		FE5F48F80948A5380095980F /* SkAnimateField.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimateField.cpp; path = ../../libs/graphics/animator/SkAnimateField.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48F90948A5380095980F /* SkAnimate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimate.h; path = ../../libs/graphics/animator/SkAnimate.h; sourceTree = SOURCE_ROOT; };
+		FE5F48FA0948A5380095980F /* SkAnimateMaker.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimateMaker.cpp; path = ../../libs/graphics/animator/SkAnimateMaker.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48FB0948A5380095980F /* SkAnimateMaker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimateMaker.h; path = ../../libs/graphics/animator/SkAnimateMaker.h; sourceTree = SOURCE_ROOT; };
+		FE5F48FC0948A5380095980F /* SkAnimateSchema.xsd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = SkAnimateSchema.xsd; path = ../../libs/graphics/animator/SkAnimateSchema.xsd; sourceTree = SOURCE_ROOT; };
+		FE5F48FD0948A5380095980F /* SkAnimateSchema.xsx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; name = SkAnimateSchema.xsx; path = ../../libs/graphics/animator/SkAnimateSchema.xsx; sourceTree = SOURCE_ROOT; };
+		FE5F48FE0948A5380095980F /* SkAnimateSet.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimateSet.cpp; path = ../../libs/graphics/animator/SkAnimateSet.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48FF0948A5380095980F /* SkAnimateSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimateSet.h; path = ../../libs/graphics/animator/SkAnimateSet.h; sourceTree = SOURCE_ROOT; };
+		FE5F49000948A5380095980F /* SkAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimator.cpp; path = ../../libs/graphics/animator/SkAnimator.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49010948A5380095980F /* SkAnimatorScript.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimatorScript.cpp; path = ../../libs/graphics/animator/SkAnimatorScript.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49020948A5380095980F /* SkAnimatorScript.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimatorScript.h; path = ../../libs/graphics/animator/SkAnimatorScript.h; sourceTree = SOURCE_ROOT; };
+		FE5F49030948A5380095980F /* SkBase64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBase64.cpp; path = ../../libs/graphics/animator/SkBase64.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49040948A5380095980F /* SkBase64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBase64.h; path = ../../libs/graphics/animator/SkBase64.h; sourceTree = SOURCE_ROOT; };
+		FE5F49050948A5380095980F /* SkBoundable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBoundable.cpp; path = ../../libs/graphics/animator/SkBoundable.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49060948A5380095980F /* SkBoundable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBoundable.h; path = ../../libs/graphics/animator/SkBoundable.h; sourceTree = SOURCE_ROOT; };
+		FE5F49070948A5380095980F /* SkBuildCondensedInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBuildCondensedInfo.cpp; path = ../../libs/graphics/animator/SkBuildCondensedInfo.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F490A0948A5380095980F /* SkDisplayable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayable.cpp; path = ../../libs/graphics/animator/SkDisplayable.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F490B0948A5380095980F /* SkDisplayable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayable.h; path = ../../libs/graphics/animator/SkDisplayable.h; sourceTree = SOURCE_ROOT; };
+		FE5F490C0948A5380095980F /* SkDisplayAdd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayAdd.cpp; path = ../../libs/graphics/animator/SkDisplayAdd.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F490D0948A5380095980F /* SkDisplayAdd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayAdd.h; path = ../../libs/graphics/animator/SkDisplayAdd.h; sourceTree = SOURCE_ROOT; };
+		FE5F490E0948A5380095980F /* SkDisplayApply.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayApply.cpp; path = ../../libs/graphics/animator/SkDisplayApply.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F490F0948A5380095980F /* SkDisplayApply.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayApply.h; path = ../../libs/graphics/animator/SkDisplayApply.h; sourceTree = SOURCE_ROOT; };
+		FE5F49100948A5380095980F /* SkDisplayBounds.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayBounds.cpp; path = ../../libs/graphics/animator/SkDisplayBounds.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49110948A5380095980F /* SkDisplayBounds.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayBounds.h; path = ../../libs/graphics/animator/SkDisplayBounds.h; sourceTree = SOURCE_ROOT; };
+		FE5F49120948A5380095980F /* SkDisplayEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayEvent.cpp; path = ../../libs/graphics/animator/SkDisplayEvent.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49130948A5380095980F /* SkDisplayEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayEvent.h; path = ../../libs/graphics/animator/SkDisplayEvent.h; sourceTree = SOURCE_ROOT; };
+		FE5F49140948A5380095980F /* SkDisplayEvents.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayEvents.cpp; path = ../../libs/graphics/animator/SkDisplayEvents.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49150948A5380095980F /* SkDisplayEvents.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayEvents.h; path = ../../libs/graphics/animator/SkDisplayEvents.h; sourceTree = SOURCE_ROOT; };
+		FE5F49160948A5380095980F /* SkDisplayInclude.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayInclude.cpp; path = ../../libs/graphics/animator/SkDisplayInclude.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49170948A5380095980F /* SkDisplayInclude.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayInclude.h; path = ../../libs/graphics/animator/SkDisplayInclude.h; sourceTree = SOURCE_ROOT; };
+		FE5F49180948A5380095980F /* SkDisplayInput.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayInput.cpp; path = ../../libs/graphics/animator/SkDisplayInput.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49190948A5380095980F /* SkDisplayInput.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayInput.h; path = ../../libs/graphics/animator/SkDisplayInput.h; sourceTree = SOURCE_ROOT; };
+		FE5F491A0948A5380095980F /* SkDisplayList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayList.cpp; path = ../../libs/graphics/animator/SkDisplayList.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F491B0948A5380095980F /* SkDisplayList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayList.h; path = ../../libs/graphics/animator/SkDisplayList.h; sourceTree = SOURCE_ROOT; };
+		FE5F491C0948A5380095980F /* SkDisplayMath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayMath.cpp; path = ../../libs/graphics/animator/SkDisplayMath.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F491D0948A5380095980F /* SkDisplayMath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayMath.h; path = ../../libs/graphics/animator/SkDisplayMath.h; sourceTree = SOURCE_ROOT; };
+		FE5F491E0948A5380095980F /* SkDisplayMovie.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayMovie.cpp; path = ../../libs/graphics/animator/SkDisplayMovie.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F491F0948A5380095980F /* SkDisplayMovie.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayMovie.h; path = ../../libs/graphics/animator/SkDisplayMovie.h; sourceTree = SOURCE_ROOT; };
+		FE5F49200948A5380095980F /* SkDisplayPost.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayPost.cpp; path = ../../libs/graphics/animator/SkDisplayPost.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49210948A5380095980F /* SkDisplayPost.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayPost.h; path = ../../libs/graphics/animator/SkDisplayPost.h; sourceTree = SOURCE_ROOT; };
+		FE5F49220948A5380095980F /* SkDisplayRandom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayRandom.cpp; path = ../../libs/graphics/animator/SkDisplayRandom.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49230948A5380095980F /* SkDisplayRandom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayRandom.h; path = ../../libs/graphics/animator/SkDisplayRandom.h; sourceTree = SOURCE_ROOT; };
+		FE5F49240948A5380095980F /* SkDisplayScreenplay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayScreenplay.cpp; path = ../../libs/graphics/animator/SkDisplayScreenplay.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49250948A5380095980F /* SkDisplayScreenplay.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayScreenplay.h; path = ../../libs/graphics/animator/SkDisplayScreenplay.h; sourceTree = SOURCE_ROOT; };
+		FE5F49260948A5380095980F /* SkDisplayType.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayType.cpp; path = ../../libs/graphics/animator/SkDisplayType.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49270948A5380095980F /* SkDisplayType.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayType.h; path = ../../libs/graphics/animator/SkDisplayType.h; sourceTree = SOURCE_ROOT; };
+		FE5F49280948A5380095980F /* SkDisplayTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayTypes.cpp; path = ../../libs/graphics/animator/SkDisplayTypes.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49290948A5380095980F /* SkDisplayTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayTypes.h; path = ../../libs/graphics/animator/SkDisplayTypes.h; sourceTree = SOURCE_ROOT; };
+		FE5F492A0948A5380095980F /* SkDisplayXMLParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDisplayXMLParser.cpp; path = ../../libs/graphics/animator/SkDisplayXMLParser.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F492B0948A5380095980F /* SkDisplayXMLParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDisplayXMLParser.h; path = ../../libs/graphics/animator/SkDisplayXMLParser.h; sourceTree = SOURCE_ROOT; };
+		FE5F492C0948A5380095980F /* SkDraw3D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDraw3D.cpp; path = ../../libs/graphics/animator/SkDraw3D.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F492D0948A5380095980F /* SkDraw3D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDraw3D.h; path = ../../libs/graphics/animator/SkDraw3D.h; sourceTree = SOURCE_ROOT; };
+		FE5F492E0948A5380095980F /* SkDrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawable.cpp; path = ../../libs/graphics/animator/SkDrawable.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F492F0948A5380095980F /* SkDrawable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawable.h; path = ../../libs/graphics/animator/SkDrawable.h; sourceTree = SOURCE_ROOT; };
+		FE5F49300948A5380095980F /* SkDrawBitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawBitmap.cpp; path = ../../libs/graphics/animator/SkDrawBitmap.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49310948A5380095980F /* SkDrawBitmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawBitmap.h; path = ../../libs/graphics/animator/SkDrawBitmap.h; sourceTree = SOURCE_ROOT; };
+		FE5F49320948A5380095980F /* SkDrawBlur.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawBlur.cpp; path = ../../libs/graphics/animator/SkDrawBlur.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49330948A5380095980F /* SkDrawBlur.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawBlur.h; path = ../../libs/graphics/animator/SkDrawBlur.h; sourceTree = SOURCE_ROOT; };
+		FE5F49340948A5380095980F /* SkDrawClip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawClip.cpp; path = ../../libs/graphics/animator/SkDrawClip.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49350948A5380095980F /* SkDrawClip.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawClip.h; path = ../../libs/graphics/animator/SkDrawClip.h; sourceTree = SOURCE_ROOT; };
+		FE5F49360948A5380095980F /* SkDrawColor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawColor.cpp; path = ../../libs/graphics/animator/SkDrawColor.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49370948A5380095980F /* SkDrawColor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawColor.h; path = ../../libs/graphics/animator/SkDrawColor.h; sourceTree = SOURCE_ROOT; };
+		FE5F49380948A5380095980F /* SkDrawDash.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawDash.cpp; path = ../../libs/graphics/animator/SkDrawDash.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49390948A5380095980F /* SkDrawDash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawDash.h; path = ../../libs/graphics/animator/SkDrawDash.h; sourceTree = SOURCE_ROOT; };
+		FE5F493A0948A5380095980F /* SkDrawDiscrete.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawDiscrete.cpp; path = ../../libs/graphics/animator/SkDrawDiscrete.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F493B0948A5380095980F /* SkDrawDiscrete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawDiscrete.h; path = ../../libs/graphics/animator/SkDrawDiscrete.h; sourceTree = SOURCE_ROOT; };
+		FE5F493C0948A5380095980F /* SkDrawEmboss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawEmboss.cpp; path = ../../libs/graphics/animator/SkDrawEmboss.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F493D0948A5380095980F /* SkDrawEmboss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawEmboss.h; path = ../../libs/graphics/animator/SkDrawEmboss.h; sourceTree = SOURCE_ROOT; };
+		FE5F493E0948A5380095980F /* SkDrawExtraPathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawExtraPathEffect.cpp; path = ../../libs/graphics/animator/SkDrawExtraPathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F493F0948A5380095980F /* SkDrawFull.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawFull.cpp; path = ../../libs/graphics/animator/SkDrawFull.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49400948A5380095980F /* SkDrawFull.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawFull.h; path = ../../libs/graphics/animator/SkDrawFull.h; sourceTree = SOURCE_ROOT; };
+		FE5F49410948A5380095980F /* SkDrawGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawGradient.cpp; path = ../../libs/graphics/animator/SkDrawGradient.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49420948A5380095980F /* SkDrawGradient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawGradient.h; path = ../../libs/graphics/animator/SkDrawGradient.h; sourceTree = SOURCE_ROOT; };
+		FE5F49430948A5380095980F /* SkDrawGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawGroup.cpp; path = ../../libs/graphics/animator/SkDrawGroup.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49440948A5380095980F /* SkDrawGroup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawGroup.h; path = ../../libs/graphics/animator/SkDrawGroup.h; sourceTree = SOURCE_ROOT; };
+		FE5F49450948A5380095980F /* SkDrawLine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawLine.cpp; path = ../../libs/graphics/animator/SkDrawLine.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49460948A5380095980F /* SkDrawLine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawLine.h; path = ../../libs/graphics/animator/SkDrawLine.h; sourceTree = SOURCE_ROOT; };
+		FE5F49470948A5380095980F /* SkDrawMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawMatrix.cpp; path = ../../libs/graphics/animator/SkDrawMatrix.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49480948A5380095980F /* SkDrawMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawMatrix.h; path = ../../libs/graphics/animator/SkDrawMatrix.h; sourceTree = SOURCE_ROOT; };
+		FE5F49490948A5380095980F /* SkDrawOval.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawOval.cpp; path = ../../libs/graphics/animator/SkDrawOval.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F494A0948A5380095980F /* SkDrawOval.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawOval.h; path = ../../libs/graphics/animator/SkDrawOval.h; sourceTree = SOURCE_ROOT; };
+		FE5F494B0948A5390095980F /* SkDrawPaint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawPaint.cpp; path = ../../libs/graphics/animator/SkDrawPaint.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F494C0948A5390095980F /* SkDrawPaint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawPaint.h; path = ../../libs/graphics/animator/SkDrawPaint.h; sourceTree = SOURCE_ROOT; };
+		FE5F494D0948A5390095980F /* SkDrawPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawPath.cpp; path = ../../libs/graphics/animator/SkDrawPath.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F494E0948A5390095980F /* SkDrawPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawPath.h; path = ../../libs/graphics/animator/SkDrawPath.h; sourceTree = SOURCE_ROOT; };
+		FE5F494F0948A5390095980F /* SkDrawPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawPoint.cpp; path = ../../libs/graphics/animator/SkDrawPoint.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49500948A5390095980F /* SkDrawPoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawPoint.h; path = ../../libs/graphics/animator/SkDrawPoint.h; sourceTree = SOURCE_ROOT; };
+		FE5F49510948A5390095980F /* SkDrawRectangle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawRectangle.cpp; path = ../../libs/graphics/animator/SkDrawRectangle.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49520948A5390095980F /* SkDrawRectangle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawRectangle.h; path = ../../libs/graphics/animator/SkDrawRectangle.h; sourceTree = SOURCE_ROOT; };
+		FE5F49530948A5390095980F /* SkDrawShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawShader.cpp; path = ../../libs/graphics/animator/SkDrawShader.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49540948A5390095980F /* SkDrawShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawShader.h; path = ../../libs/graphics/animator/SkDrawShader.h; sourceTree = SOURCE_ROOT; };
+		FE5F49550948A5390095980F /* SkDrawText.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawText.cpp; path = ../../libs/graphics/animator/SkDrawText.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49560948A5390095980F /* SkDrawText.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawText.h; path = ../../libs/graphics/animator/SkDrawText.h; sourceTree = SOURCE_ROOT; };
+		FE5F49570948A5390095980F /* SkDrawTextBox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawTextBox.cpp; path = ../../libs/graphics/animator/SkDrawTextBox.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49580948A5390095980F /* SkDrawTextBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawTextBox.h; path = ../../libs/graphics/animator/SkDrawTextBox.h; sourceTree = SOURCE_ROOT; };
+		FE5F49590948A5390095980F /* SkDrawTo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawTo.cpp; path = ../../libs/graphics/animator/SkDrawTo.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F495A0948A5390095980F /* SkDrawTo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawTo.h; path = ../../libs/graphics/animator/SkDrawTo.h; sourceTree = SOURCE_ROOT; };
+		FE5F495B0948A5390095980F /* SkDrawTransparentShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDrawTransparentShader.cpp; path = ../../libs/graphics/animator/SkDrawTransparentShader.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F495C0948A5390095980F /* SkDrawTransparentShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDrawTransparentShader.h; path = ../../libs/graphics/animator/SkDrawTransparentShader.h; sourceTree = SOURCE_ROOT; };
+		FE5F495D0948A5390095980F /* SkDump.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDump.cpp; path = ../../libs/graphics/animator/SkDump.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F495E0948A5390095980F /* SkDump.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkDump.h; path = ../../libs/graphics/animator/SkDump.h; sourceTree = SOURCE_ROOT; };
+		FE5F495F0948A5390095980F /* SkExtraPathEffects.xsd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = SkExtraPathEffects.xsd; path = ../../libs/graphics/animator/SkExtraPathEffects.xsd; sourceTree = SOURCE_ROOT; };
+		FE5F49600948A5390095980F /* SkExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkExtras.h; path = ../../libs/graphics/animator/SkExtras.h; sourceTree = SOURCE_ROOT; };
+		FE5F49610948A5390095980F /* SkGetCondensedInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGetCondensedInfo.cpp; path = ../../libs/graphics/animator/SkGetCondensedInfo.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49620948A5390095980F /* SkHitClear.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkHitClear.cpp; path = ../../libs/graphics/animator/SkHitClear.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49630948A5390095980F /* SkHitClear.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkHitClear.h; path = ../../libs/graphics/animator/SkHitClear.h; sourceTree = SOURCE_ROOT; };
+		FE5F49640948A5390095980F /* SkHitTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkHitTest.cpp; path = ../../libs/graphics/animator/SkHitTest.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49650948A5390095980F /* SkHitTest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkHitTest.h; path = ../../libs/graphics/animator/SkHitTest.h; sourceTree = SOURCE_ROOT; };
+		FE5F49660948A5390095980F /* SkIntArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkIntArray.h; path = ../../libs/graphics/animator/SkIntArray.h; sourceTree = SOURCE_ROOT; };
+		FE5F49680948A5390095980F /* SkMatrixParts.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMatrixParts.cpp; path = ../../libs/graphics/animator/SkMatrixParts.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49690948A5390095980F /* SkMatrixParts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkMatrixParts.h; path = ../../libs/graphics/animator/SkMatrixParts.h; sourceTree = SOURCE_ROOT; };
+		FE5F496A0948A5390095980F /* SkMemberInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMemberInfo.cpp; path = ../../libs/graphics/animator/SkMemberInfo.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F496B0948A5390095980F /* SkMemberInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkMemberInfo.h; path = ../../libs/graphics/animator/SkMemberInfo.h; sourceTree = SOURCE_ROOT; };
+		FE5F496C0948A5390095980F /* SkOperand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkOperand.h; path = ../../libs/graphics/animator/SkOperand.h; sourceTree = SOURCE_ROOT; };
+		FE5F496D0948A5390095980F /* SkOperandInterpolator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkOperandInterpolator.h; path = ../../libs/graphics/animator/SkOperandInterpolator.h; sourceTree = SOURCE_ROOT; };
+		FE5F496E0948A5390095980F /* SkOperandIterpolator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOperandIterpolator.cpp; path = ../../libs/graphics/animator/SkOperandIterpolator.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F496F0948A5390095980F /* SkPaintParts.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPaintParts.cpp; path = ../../libs/graphics/animator/SkPaintParts.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49700948A5390095980F /* SkPaintParts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPaintParts.h; path = ../../libs/graphics/animator/SkPaintParts.h; sourceTree = SOURCE_ROOT; };
+		FE5F49710948A5390095980F /* SkPathParts.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPathParts.cpp; path = ../../libs/graphics/animator/SkPathParts.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49720948A5390095980F /* SkPathParts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPathParts.h; path = ../../libs/graphics/animator/SkPathParts.h; sourceTree = SOURCE_ROOT; };
+		FE5F49730948A5390095980F /* SkPostParts.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPostParts.cpp; path = ../../libs/graphics/animator/SkPostParts.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49740948A5390095980F /* SkPostParts.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPostParts.h; path = ../../libs/graphics/animator/SkPostParts.h; sourceTree = SOURCE_ROOT; };
+		FE5F49750948A5390095980F /* SkScript.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScript.cpp; path = ../../libs/graphics/animator/SkScript.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49760948A5390095980F /* SkScript.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScript.h; path = ../../libs/graphics/animator/SkScript.h; sourceTree = SOURCE_ROOT; };
+		FE5F49770948A5390095980F /* SkSnapshot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkSnapshot.cpp; path = ../../libs/graphics/animator/SkSnapshot.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49780948A5390095980F /* SkSnapshot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkSnapshot.h; path = ../../libs/graphics/animator/SkSnapshot.h; sourceTree = SOURCE_ROOT; };
+		FE5F49790948A5390095980F /* SkSVGPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkSVGPath.cpp; path = ../../libs/graphics/animator/SkSVGPath.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F497A0948A5390095980F /* SkTDArray_Experimental.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTDArray_Experimental.h; path = ../../libs/graphics/animator/SkTDArray_Experimental.h; sourceTree = SOURCE_ROOT; };
+		FE5F497B0948A5390095980F /* SkTextOnPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTextOnPath.cpp; path = ../../libs/graphics/animator/SkTextOnPath.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F497C0948A5390095980F /* SkTextOnPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTextOnPath.h; path = ../../libs/graphics/animator/SkTextOnPath.h; sourceTree = SOURCE_ROOT; };
+		FE5F497D0948A5390095980F /* SkTextToPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTextToPath.cpp; path = ../../libs/graphics/animator/SkTextToPath.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F497E0948A5390095980F /* SkTextToPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTextToPath.h; path = ../../libs/graphics/animator/SkTextToPath.h; sourceTree = SOURCE_ROOT; };
+		FE5F497F0948A5390095980F /* SkTime.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTime.cpp; path = ../../libs/graphics/animator/SkTime.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49800948A5390095980F /* SkTypedArray.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTypedArray.cpp; path = ../../libs/graphics/animator/SkTypedArray.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49810948A5390095980F /* SkTypedArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTypedArray.h; path = ../../libs/graphics/animator/SkTypedArray.h; sourceTree = SOURCE_ROOT; };
+		FE5F49820948A5390095980F /* SkXMLAnimatorWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXMLAnimatorWriter.cpp; path = ../../libs/graphics/animator/SkXMLAnimatorWriter.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F49830948A5390095980F /* SkXMLAnimatorWriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkXMLAnimatorWriter.h; path = ../../libs/graphics/animator/SkXMLAnimatorWriter.h; sourceTree = SOURCE_ROOT; };
+		FE6C3DFA0A061B0D00602871 /* thingstodo.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = thingstodo.txt; path = ../../libs/graphics/animator/thingstodo.txt; sourceTree = SOURCE_ROOT; };
+		FE76553D09DFF6610088D6CA /* SkScriptTokenizer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScriptTokenizer.cpp; path = ../../libs/graphics/animator/SkScriptTokenizer.cpp; sourceTree = SOURCE_ROOT; };
+		FECB4EEA09DF3E3600D03FF8 /* SkAnimatorScript2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimatorScript2.cpp; path = ../../libs/graphics/animator/SkAnimatorScript2.cpp; sourceTree = SOURCE_ROOT; };
+		FECB4EEB09DF3E3600D03FF8 /* SkAnimatorScript2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAnimatorScript2.h; path = ../../libs/graphics/animator/SkAnimatorScript2.h; sourceTree = SOURCE_ROOT; };
+		FECB4EEC09DF3E3600D03FF8 /* SkOpArray.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOpArray.cpp; path = ../../libs/graphics/animator/SkOpArray.cpp; sourceTree = SOURCE_ROOT; };
+		FECB4EED09DF3E3600D03FF8 /* SkOpArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkOpArray.h; path = ../../libs/graphics/animator/SkOpArray.h; sourceTree = SOURCE_ROOT; };
+		FECB4EEE09DF3E3600D03FF8 /* SkOperand2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkOperand2.h; path = ../../libs/graphics/animator/SkOperand2.h; sourceTree = SOURCE_ROOT; };
+		FECB4EEF09DF3E3600D03FF8 /* SkScript2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScript2.h; path = ../../libs/graphics/animator/SkScript2.h; sourceTree = SOURCE_ROOT; };
+		FECB4EF009DF3E3600D03FF8 /* SkScriptCallBack.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScriptCallBack.h; path = ../../libs/graphics/animator/SkScriptCallBack.h; sourceTree = SOURCE_ROOT; };
+		FECB4EF109DF3E3600D03FF8 /* SkScriptDecompile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScriptDecompile.cpp; path = ../../libs/graphics/animator/SkScriptDecompile.cpp; sourceTree = SOURCE_ROOT; };
+		FECB4EF209DF3E3600D03FF8 /* SkScriptRuntime.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScriptRuntime.cpp; path = ../../libs/graphics/animator/SkScriptRuntime.cpp; sourceTree = SOURCE_ROOT; };
+		FECB4EF309DF3E3600D03FF8 /* SkScriptRuntime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScriptRuntime.h; path = ../../libs/graphics/animator/SkScriptRuntime.h; sourceTree = SOURCE_ROOT; };
+		FEE7D79E094613A600B11B76 /* SkAnimateBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAnimateBase.cpp; path = ../../libs/graphics/animator/SkAnimateBase.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* animator */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = animator;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				FE6C3DFA0A061B0D00602871 /* thingstodo.txt */,
+				FE76553D09DFF6610088D6CA /* SkScriptTokenizer.cpp */,
+				FECB4EEA09DF3E3600D03FF8 /* SkAnimatorScript2.cpp */,
+				FECB4EEB09DF3E3600D03FF8 /* SkAnimatorScript2.h */,
+				FECB4EEC09DF3E3600D03FF8 /* SkOpArray.cpp */,
+				FECB4EED09DF3E3600D03FF8 /* SkOpArray.h */,
+				FECB4EEE09DF3E3600D03FF8 /* SkOperand2.h */,
+				FECB4EEF09DF3E3600D03FF8 /* SkScript2.h */,
+				FECB4EF009DF3E3600D03FF8 /* SkScriptCallBack.h */,
+				FECB4EF109DF3E3600D03FF8 /* SkScriptDecompile.cpp */,
+				FECB4EF209DF3E3600D03FF8 /* SkScriptRuntime.cpp */,
+				FECB4EF309DF3E3600D03FF8 /* SkScriptRuntime.h */,
+				FEE7D79E094613A600B11B76 /* SkAnimateBase.cpp */,
+				FE5F48F30948A5380095980F /* SkAnimateBase.h */,
+				FE5F48F40948A5380095980F /* SkAnimate3DSchema.xsd */,
+				FE5F48F50948A5380095980F /* SkAnimate3DSchema.xsx */,
+				FE5F48F60948A5380095980F /* SkAnimateActive.cpp */,
+				FE5F48F70948A5380095980F /* SkAnimateActive.h */,
+				FE5F48F80948A5380095980F /* SkAnimateField.cpp */,
+				FE5F48F90948A5380095980F /* SkAnimate.h */,
+				FE5F48FA0948A5380095980F /* SkAnimateMaker.cpp */,
+				FE5F48FB0948A5380095980F /* SkAnimateMaker.h */,
+				FE49EAAB09FD5DB800D28411 /* SkDrawExtraPathEffect.h */,
+				FE5F48FC0948A5380095980F /* SkAnimateSchema.xsd */,
+				FE49EE0B09FFDB0300D28411 /* SkAnimateProperties.h */,
+				FE5F48FD0948A5380095980F /* SkAnimateSchema.xsx */,
+				FE5F48FE0948A5380095980F /* SkAnimateSet.cpp */,
+				FE5F48FF0948A5380095980F /* SkAnimateSet.h */,
+				FE5F49000948A5380095980F /* SkAnimator.cpp */,
+				FE5F49010948A5380095980F /* SkAnimatorScript.cpp */,
+				FE5F49020948A5380095980F /* SkAnimatorScript.h */,
+				FE5F49030948A5380095980F /* SkBase64.cpp */,
+				FE5F49040948A5380095980F /* SkBase64.h */,
+				FE5F49050948A5380095980F /* SkBoundable.cpp */,
+				FE5F49060948A5380095980F /* SkBoundable.h */,
+				FE5F49070948A5380095980F /* SkBuildCondensedInfo.cpp */,
+				FE5F490A0948A5380095980F /* SkDisplayable.cpp */,
+				FE5F490B0948A5380095980F /* SkDisplayable.h */,
+				FE5F490C0948A5380095980F /* SkDisplayAdd.cpp */,
+				FE5F490D0948A5380095980F /* SkDisplayAdd.h */,
+				FE5F490E0948A5380095980F /* SkDisplayApply.cpp */,
+				FE5F490F0948A5380095980F /* SkDisplayApply.h */,
+				FE5F49100948A5380095980F /* SkDisplayBounds.cpp */,
+				FE5F49110948A5380095980F /* SkDisplayBounds.h */,
+				FE5F49120948A5380095980F /* SkDisplayEvent.cpp */,
+				FE5F49130948A5380095980F /* SkDisplayEvent.h */,
+				FE5F49140948A5380095980F /* SkDisplayEvents.cpp */,
+				FE5F49150948A5380095980F /* SkDisplayEvents.h */,
+				FE5F49160948A5380095980F /* SkDisplayInclude.cpp */,
+				FE5F49170948A5380095980F /* SkDisplayInclude.h */,
+				FE5F49180948A5380095980F /* SkDisplayInput.cpp */,
+				FE5F49190948A5380095980F /* SkDisplayInput.h */,
+				FE5F491A0948A5380095980F /* SkDisplayList.cpp */,
+				FE5F491B0948A5380095980F /* SkDisplayList.h */,
+				FE5F491C0948A5380095980F /* SkDisplayMath.cpp */,
+				FE49EB5009FE785E00D28411 /* SkDisplayNumber.cpp */,
+				FE49EB4C09FE783600D28411 /* SkDisplayNumber.h */,
+				FE5F491D0948A5380095980F /* SkDisplayMath.h */,
+				FE5F491E0948A5380095980F /* SkDisplayMovie.cpp */,
+				FE5F491F0948A5380095980F /* SkDisplayMovie.h */,
+				FE5F49200948A5380095980F /* SkDisplayPost.cpp */,
+				FE5F49210948A5380095980F /* SkDisplayPost.h */,
+				FE5F49220948A5380095980F /* SkDisplayRandom.cpp */,
+				FE5F49230948A5380095980F /* SkDisplayRandom.h */,
+				FE5F49240948A5380095980F /* SkDisplayScreenplay.cpp */,
+				FE5F49250948A5380095980F /* SkDisplayScreenplay.h */,
+				FE5F49260948A5380095980F /* SkDisplayType.cpp */,
+				FE5F49270948A5380095980F /* SkDisplayType.h */,
+				FE5F49280948A5380095980F /* SkDisplayTypes.cpp */,
+				FE5F49290948A5380095980F /* SkDisplayTypes.h */,
+				FE5F492A0948A5380095980F /* SkDisplayXMLParser.cpp */,
+				FE5F492B0948A5380095980F /* SkDisplayXMLParser.h */,
+				FE5F492C0948A5380095980F /* SkDraw3D.cpp */,
+				FE5F492D0948A5380095980F /* SkDraw3D.h */,
+				FE5F492E0948A5380095980F /* SkDrawable.cpp */,
+				FE5F492F0948A5380095980F /* SkDrawable.h */,
+				FE5F49300948A5380095980F /* SkDrawBitmap.cpp */,
+				FE5F49310948A5380095980F /* SkDrawBitmap.h */,
+				FE5F49320948A5380095980F /* SkDrawBlur.cpp */,
+				FE5F49330948A5380095980F /* SkDrawBlur.h */,
+				FE5F49340948A5380095980F /* SkDrawClip.cpp */,
+				FE5F49350948A5380095980F /* SkDrawClip.h */,
+				FE5F49360948A5380095980F /* SkDrawColor.cpp */,
+				FE5F49370948A5380095980F /* SkDrawColor.h */,
+				FE5F49380948A5380095980F /* SkDrawDash.cpp */,
+				FE5F49390948A5380095980F /* SkDrawDash.h */,
+				FE5F493A0948A5380095980F /* SkDrawDiscrete.cpp */,
+				FE5F493B0948A5380095980F /* SkDrawDiscrete.h */,
+				FE5F493C0948A5380095980F /* SkDrawEmboss.cpp */,
+				FE5F493D0948A5380095980F /* SkDrawEmboss.h */,
+				FE5F493E0948A5380095980F /* SkDrawExtraPathEffect.cpp */,
+				FE5F493F0948A5380095980F /* SkDrawFull.cpp */,
+				FE5F49400948A5380095980F /* SkDrawFull.h */,
+				FE5F49410948A5380095980F /* SkDrawGradient.cpp */,
+				FE5F49420948A5380095980F /* SkDrawGradient.h */,
+				FE5F49430948A5380095980F /* SkDrawGroup.cpp */,
+				FE5F49440948A5380095980F /* SkDrawGroup.h */,
+				FE5F49450948A5380095980F /* SkDrawLine.cpp */,
+				FE5F49460948A5380095980F /* SkDrawLine.h */,
+				FE5F49470948A5380095980F /* SkDrawMatrix.cpp */,
+				FE5F49480948A5380095980F /* SkDrawMatrix.h */,
+				FE5F49490948A5380095980F /* SkDrawOval.cpp */,
+				FE5F494A0948A5380095980F /* SkDrawOval.h */,
+				FE5F494B0948A5390095980F /* SkDrawPaint.cpp */,
+				FE5F494C0948A5390095980F /* SkDrawPaint.h */,
+				FE5F494D0948A5390095980F /* SkDrawPath.cpp */,
+				FE5F494E0948A5390095980F /* SkDrawPath.h */,
+				FE5F494F0948A5390095980F /* SkDrawPoint.cpp */,
+				FE5F49500948A5390095980F /* SkDrawPoint.h */,
+				FE5F49510948A5390095980F /* SkDrawRectangle.cpp */,
+				FE5F49520948A5390095980F /* SkDrawRectangle.h */,
+				FE5F49530948A5390095980F /* SkDrawShader.cpp */,
+				FE5F49540948A5390095980F /* SkDrawShader.h */,
+				FE5F49550948A5390095980F /* SkDrawText.cpp */,
+				FE5F49560948A5390095980F /* SkDrawText.h */,
+				FE5F49570948A5390095980F /* SkDrawTextBox.cpp */,
+				FE5F49580948A5390095980F /* SkDrawTextBox.h */,
+				FE5F49590948A5390095980F /* SkDrawTo.cpp */,
+				FE51FB840A6FDCE400ABA91D /* SkDrawSaveLayer.h */,
+				FE51FB8E0A6FE7DC00ABA91D /* SkDrawSaveLayer.cpp */,
+				FE5F495A0948A5390095980F /* SkDrawTo.h */,
+				FE5F495B0948A5390095980F /* SkDrawTransparentShader.cpp */,
+				FE5F495C0948A5390095980F /* SkDrawTransparentShader.h */,
+				FE5F495D0948A5390095980F /* SkDump.cpp */,
+				FE5F495E0948A5390095980F /* SkDump.h */,
+				FE5F495F0948A5390095980F /* SkExtraPathEffects.xsd */,
+				FE5F49600948A5390095980F /* SkExtras.h */,
+				FE5F49610948A5390095980F /* SkGetCondensedInfo.cpp */,
+				FE5F49620948A5390095980F /* SkHitClear.cpp */,
+				FE5F49630948A5390095980F /* SkHitClear.h */,
+				FE5F49640948A5390095980F /* SkHitTest.cpp */,
+				FE5F49650948A5390095980F /* SkHitTest.h */,
+				FE5F49660948A5390095980F /* SkIntArray.h */,
+				FE5F49680948A5390095980F /* SkMatrixParts.cpp */,
+				FE5F49690948A5390095980F /* SkMatrixParts.h */,
+				FE5F496A0948A5390095980F /* SkMemberInfo.cpp */,
+				FE5F496B0948A5390095980F /* SkMemberInfo.h */,
+				FE5F496C0948A5390095980F /* SkOperand.h */,
+				FE5F496D0948A5390095980F /* SkOperandInterpolator.h */,
+				FE5F496E0948A5390095980F /* SkOperandIterpolator.cpp */,
+				FE5F496F0948A5390095980F /* SkPaintParts.cpp */,
+				FE5F49700948A5390095980F /* SkPaintParts.h */,
+				FE5F49710948A5390095980F /* SkPathParts.cpp */,
+				FE5F49720948A5390095980F /* SkPathParts.h */,
+				FE5F49730948A5390095980F /* SkPostParts.cpp */,
+				FE5F49740948A5390095980F /* SkPostParts.h */,
+				FE5F49750948A5390095980F /* SkScript.cpp */,
+				FE5F49760948A5390095980F /* SkScript.h */,
+				FE5F49770948A5390095980F /* SkSnapshot.cpp */,
+				FE5F49780948A5390095980F /* SkSnapshot.h */,
+				FE5F49790948A5390095980F /* SkSVGPath.cpp */,
+				FE5F497A0948A5390095980F /* SkTDArray_Experimental.h */,
+				FE5F497B0948A5390095980F /* SkTextOnPath.cpp */,
+				FE5F497C0948A5390095980F /* SkTextOnPath.h */,
+				FE5F497D0948A5390095980F /* SkTextToPath.cpp */,
+				FE5F497E0948A5390095980F /* SkTextToPath.h */,
+				FE5F497F0948A5390095980F /* SkTime.cpp */,
+				FE5F49800948A5390095980F /* SkTypedArray.cpp */,
+				FE5F49810948A5390095980F /* SkTypedArray.h */,
+				FE5F49820948A5390095980F /* SkXMLAnimatorWriter.cpp */,
+				FE5F49830948A5390095980F /* SkXMLAnimatorWriter.h */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libanimator.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE5F49840948A5390095980F /* SkAnimateBase.h in Headers */,
+				FE5F49860948A5390095980F /* SkAnimateActive.h in Headers */,
+				FE5F49880948A5390095980F /* SkAnimate.h in Headers */,
+				FE5F498A0948A5390095980F /* SkAnimateMaker.h in Headers */,
+				FE5F498C0948A5390095980F /* SkAnimateSet.h in Headers */,
+				FE5F498F0948A5390095980F /* SkAnimatorScript.h in Headers */,
+				FE5F49910948A5390095980F /* SkBase64.h in Headers */,
+				FE5F49930948A5390095980F /* SkBoundable.h in Headers */,
+				FE5F49980948A5390095980F /* SkDisplayable.h in Headers */,
+				FE5F499A0948A5390095980F /* SkDisplayAdd.h in Headers */,
+				FE5F499C0948A5390095980F /* SkDisplayApply.h in Headers */,
+				FE5F499E0948A5390095980F /* SkDisplayBounds.h in Headers */,
+				FE5F49A00948A5390095980F /* SkDisplayEvent.h in Headers */,
+				FE5F49A20948A5390095980F /* SkDisplayEvents.h in Headers */,
+				FE5F49A40948A5390095980F /* SkDisplayInclude.h in Headers */,
+				FE5F49A60948A5390095980F /* SkDisplayInput.h in Headers */,
+				FE5F49A80948A5390095980F /* SkDisplayList.h in Headers */,
+				FE5F49AA0948A5390095980F /* SkDisplayMath.h in Headers */,
+				FE5F49AC0948A5390095980F /* SkDisplayMovie.h in Headers */,
+				FE5F49AE0948A5390095980F /* SkDisplayPost.h in Headers */,
+				FE5F49B00948A5390095980F /* SkDisplayRandom.h in Headers */,
+				FE5F49B20948A5390095980F /* SkDisplayScreenplay.h in Headers */,
+				FE5F49B40948A5390095980F /* SkDisplayType.h in Headers */,
+				FE5F49B60948A5390095980F /* SkDisplayTypes.h in Headers */,
+				FE5F49B80948A5390095980F /* SkDisplayXMLParser.h in Headers */,
+				FE5F49BA0948A5390095980F /* SkDraw3D.h in Headers */,
+				FE5F49BC0948A5390095980F /* SkDrawable.h in Headers */,
+				FE5F49BE0948A5390095980F /* SkDrawBitmap.h in Headers */,
+				FE5F49C00948A5390095980F /* SkDrawBlur.h in Headers */,
+				FE5F49C20948A5390095980F /* SkDrawClip.h in Headers */,
+				FE5F49C40948A5390095980F /* SkDrawColor.h in Headers */,
+				FE5F49C60948A5390095980F /* SkDrawDash.h in Headers */,
+				FE5F49C80948A5390095980F /* SkDrawDiscrete.h in Headers */,
+				FE5F49CA0948A5390095980F /* SkDrawEmboss.h in Headers */,
+				FE5F49CD0948A5390095980F /* SkDrawFull.h in Headers */,
+				FE5F49CF0948A5390095980F /* SkDrawGradient.h in Headers */,
+				FE5F49D10948A5390095980F /* SkDrawGroup.h in Headers */,
+				FE5F49D30948A5390095980F /* SkDrawLine.h in Headers */,
+				FE5F49D50948A5390095980F /* SkDrawMatrix.h in Headers */,
+				FE5F49D70948A5390095980F /* SkDrawOval.h in Headers */,
+				FE5F49D90948A5390095980F /* SkDrawPaint.h in Headers */,
+				FE5F49DB0948A5390095980F /* SkDrawPath.h in Headers */,
+				FE5F49DD0948A5390095980F /* SkDrawPoint.h in Headers */,
+				FE5F49DF0948A5390095980F /* SkDrawRectangle.h in Headers */,
+				FE5F49E10948A5390095980F /* SkDrawShader.h in Headers */,
+				FE5F49E30948A5390095980F /* SkDrawText.h in Headers */,
+				FE5F49E50948A5390095980F /* SkDrawTextBox.h in Headers */,
+				FE5F49E70948A5390095980F /* SkDrawTo.h in Headers */,
+				FE5F49E90948A5390095980F /* SkDrawTransparentShader.h in Headers */,
+				FE5F49EB0948A5390095980F /* SkDump.h in Headers */,
+				FE5F49EC0948A5390095980F /* SkExtras.h in Headers */,
+				FE5F49EF0948A5390095980F /* SkHitClear.h in Headers */,
+				FE5F49F10948A5390095980F /* SkHitTest.h in Headers */,
+				FE5F49F20948A5390095980F /* SkIntArray.h in Headers */,
+				FE5F49F50948A5390095980F /* SkMatrixParts.h in Headers */,
+				FE5F49F70948A5390095980F /* SkMemberInfo.h in Headers */,
+				FE5F49F80948A5390095980F /* SkOperand.h in Headers */,
+				FE5F49F90948A5390095980F /* SkOperandInterpolator.h in Headers */,
+				FE5F49FC0948A5390095980F /* SkPaintParts.h in Headers */,
+				FE5F49FE0948A5390095980F /* SkPathParts.h in Headers */,
+				FE5F4A000948A5390095980F /* SkPostParts.h in Headers */,
+				FE5F4A020948A5390095980F /* SkScript.h in Headers */,
+				FE5F4A040948A5390095980F /* SkSnapshot.h in Headers */,
+				FE5F4A060948A5390095980F /* SkTDArray_Experimental.h in Headers */,
+				FE5F4A080948A5390095980F /* SkTextOnPath.h in Headers */,
+				FE5F4A0A0948A5390095980F /* SkTextToPath.h in Headers */,
+				FE5F4A0D0948A5390095980F /* SkTypedArray.h in Headers */,
+				FE5F4A0F0948A5390095980F /* SkXMLAnimatorWriter.h in Headers */,
+				FECB4EF509DF3E3600D03FF8 /* SkAnimatorScript2.h in Headers */,
+				FECB4EF709DF3E3600D03FF8 /* SkOpArray.h in Headers */,
+				FECB4EF809DF3E3600D03FF8 /* SkOperand2.h in Headers */,
+				FECB4EF909DF3E3600D03FF8 /* SkScript2.h in Headers */,
+				FECB4EFA09DF3E3600D03FF8 /* SkScriptCallBack.h in Headers */,
+				FECB4EFD09DF3E3600D03FF8 /* SkScriptRuntime.h in Headers */,
+				FE49EAAC09FD5DB800D28411 /* SkDrawExtraPathEffect.h in Headers */,
+				FE49EB4D09FE783600D28411 /* SkDisplayNumber.h in Headers */,
+				FE49EE0C09FFDB0300D28411 /* SkAnimateProperties.h in Headers */,
+				FE51FB850A6FDCE500ABA91D /* SkDrawSaveLayer.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* animator */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "animator" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = animator;
+			productName = animator;
+			productReference = D2AAC046055464E500DB518D /* libanimator.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "animator" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* animator */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* animator */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FEE7D79F094613A600B11B76 /* SkAnimateBase.cpp in Sources */,
+				FE5F49850948A5390095980F /* SkAnimateActive.cpp in Sources */,
+				FE5F49870948A5390095980F /* SkAnimateField.cpp in Sources */,
+				FE5F49890948A5390095980F /* SkAnimateMaker.cpp in Sources */,
+				FE5F498B0948A5390095980F /* SkAnimateSet.cpp in Sources */,
+				FE5F498D0948A5390095980F /* SkAnimator.cpp in Sources */,
+				FE5F498E0948A5390095980F /* SkAnimatorScript.cpp in Sources */,
+				FE5F49900948A5390095980F /* SkBase64.cpp in Sources */,
+				FE5F49920948A5390095980F /* SkBoundable.cpp in Sources */,
+				FE5F49940948A5390095980F /* SkBuildCondensedInfo.cpp in Sources */,
+				FE5F49970948A5390095980F /* SkDisplayable.cpp in Sources */,
+				FE5F49990948A5390095980F /* SkDisplayAdd.cpp in Sources */,
+				FE5F499B0948A5390095980F /* SkDisplayApply.cpp in Sources */,
+				FE5F499D0948A5390095980F /* SkDisplayBounds.cpp in Sources */,
+				FE5F499F0948A5390095980F /* SkDisplayEvent.cpp in Sources */,
+				FE5F49A10948A5390095980F /* SkDisplayEvents.cpp in Sources */,
+				FE5F49A30948A5390095980F /* SkDisplayInclude.cpp in Sources */,
+				FE5F49A50948A5390095980F /* SkDisplayInput.cpp in Sources */,
+				FE5F49A70948A5390095980F /* SkDisplayList.cpp in Sources */,
+				FE5F49A90948A5390095980F /* SkDisplayMath.cpp in Sources */,
+				FE5F49AB0948A5390095980F /* SkDisplayMovie.cpp in Sources */,
+				FE5F49AD0948A5390095980F /* SkDisplayPost.cpp in Sources */,
+				FE5F49AF0948A5390095980F /* SkDisplayRandom.cpp in Sources */,
+				FE5F49B10948A5390095980F /* SkDisplayScreenplay.cpp in Sources */,
+				FE5F49B30948A5390095980F /* SkDisplayType.cpp in Sources */,
+				FE5F49B50948A5390095980F /* SkDisplayTypes.cpp in Sources */,
+				FE5F49B70948A5390095980F /* SkDisplayXMLParser.cpp in Sources */,
+				FE5F49B90948A5390095980F /* SkDraw3D.cpp in Sources */,
+				FE5F49BB0948A5390095980F /* SkDrawable.cpp in Sources */,
+				FE5F49BD0948A5390095980F /* SkDrawBitmap.cpp in Sources */,
+				FE5F49BF0948A5390095980F /* SkDrawBlur.cpp in Sources */,
+				FE5F49C10948A5390095980F /* SkDrawClip.cpp in Sources */,
+				FE5F49C30948A5390095980F /* SkDrawColor.cpp in Sources */,
+				FE5F49C50948A5390095980F /* SkDrawDash.cpp in Sources */,
+				FE5F49C70948A5390095980F /* SkDrawDiscrete.cpp in Sources */,
+				FE5F49C90948A5390095980F /* SkDrawEmboss.cpp in Sources */,
+				FE5F49CB0948A5390095980F /* SkDrawExtraPathEffect.cpp in Sources */,
+				FE5F49CC0948A5390095980F /* SkDrawFull.cpp in Sources */,
+				FE5F49CE0948A5390095980F /* SkDrawGradient.cpp in Sources */,
+				FE5F49D00948A5390095980F /* SkDrawGroup.cpp in Sources */,
+				FE5F49D20948A5390095980F /* SkDrawLine.cpp in Sources */,
+				FE5F49D40948A5390095980F /* SkDrawMatrix.cpp in Sources */,
+				FE5F49D60948A5390095980F /* SkDrawOval.cpp in Sources */,
+				FE5F49D80948A5390095980F /* SkDrawPaint.cpp in Sources */,
+				FE5F49DA0948A5390095980F /* SkDrawPath.cpp in Sources */,
+				FE5F49DC0948A5390095980F /* SkDrawPoint.cpp in Sources */,
+				FE5F49DE0948A5390095980F /* SkDrawRectangle.cpp in Sources */,
+				FE5F49E00948A5390095980F /* SkDrawShader.cpp in Sources */,
+				FE5F49E20948A5390095980F /* SkDrawText.cpp in Sources */,
+				FE5F49E40948A5390095980F /* SkDrawTextBox.cpp in Sources */,
+				FE5F49E60948A5390095980F /* SkDrawTo.cpp in Sources */,
+				FE5F49E80948A5390095980F /* SkDrawTransparentShader.cpp in Sources */,
+				FE5F49EA0948A5390095980F /* SkDump.cpp in Sources */,
+				FE5F49ED0948A5390095980F /* SkGetCondensedInfo.cpp in Sources */,
+				FE5F49EE0948A5390095980F /* SkHitClear.cpp in Sources */,
+				FE5F49F00948A5390095980F /* SkHitTest.cpp in Sources */,
+				FE5F49F40948A5390095980F /* SkMatrixParts.cpp in Sources */,
+				FE5F49F60948A5390095980F /* SkMemberInfo.cpp in Sources */,
+				FE5F49FA0948A5390095980F /* SkOperandIterpolator.cpp in Sources */,
+				FE5F49FB0948A5390095980F /* SkPaintParts.cpp in Sources */,
+				FE5F49FD0948A5390095980F /* SkPathParts.cpp in Sources */,
+				FE5F49FF0948A5390095980F /* SkPostParts.cpp in Sources */,
+				FE5F4A010948A5390095980F /* SkScript.cpp in Sources */,
+				FE5F4A030948A5390095980F /* SkSnapshot.cpp in Sources */,
+				FE5F4A050948A5390095980F /* SkSVGPath.cpp in Sources */,
+				FE5F4A070948A5390095980F /* SkTextOnPath.cpp in Sources */,
+				FE5F4A090948A5390095980F /* SkTextToPath.cpp in Sources */,
+				FE5F4A0B0948A5390095980F /* SkTime.cpp in Sources */,
+				FE5F4A0C0948A5390095980F /* SkTypedArray.cpp in Sources */,
+				FE5F4A0E0948A5390095980F /* SkXMLAnimatorWriter.cpp in Sources */,
+				FECB4EF409DF3E3600D03FF8 /* SkAnimatorScript2.cpp in Sources */,
+				FECB4EF609DF3E3600D03FF8 /* SkOpArray.cpp in Sources */,
+				FECB4EFB09DF3E3600D03FF8 /* SkScriptDecompile.cpp in Sources */,
+				FECB4EFC09DF3E3600D03FF8 /* SkScriptRuntime.cpp in Sources */,
+				FE76553E09DFF6610088D6CA /* SkScriptTokenizer.cpp in Sources */,
+				FE49EB5109FE785E00D28411 /* SkDisplayNumber.cpp in Sources */,
+				FE51FB8F0A6FE7DC00ABA91D /* SkDrawSaveLayer.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = animator;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = animator;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_BUILD_FOR_MAC;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "animator" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "animator" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/animatorTest/English.lproj/InfoPlist.strings b/ide/xcode/animatorTest/English.lproj/InfoPlist.strings
new file mode 100644
index 0000000..4137b0e
--- /dev/null
+++ b/ide/xcode/animatorTest/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/ide/xcode/animatorTest/English.lproj/main.nib/classes.nib b/ide/xcode/animatorTest/English.lproj/main.nib/classes.nib
new file mode 100644
index 0000000..ea58db1
--- /dev/null
+++ b/ide/xcode/animatorTest/English.lproj/main.nib/classes.nib
@@ -0,0 +1,4 @@
+{
+IBClasses = ();
+IBVersion = 1;
+}
diff --git a/ide/xcode/animatorTest/English.lproj/main.nib/info.nib b/ide/xcode/animatorTest/English.lproj/main.nib/info.nib
new file mode 100644
index 0000000..61c153e
--- /dev/null
+++ b/ide/xcode/animatorTest/English.lproj/main.nib/info.nib
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IBDocumentLocation</key>
+	<string>395 231 356 240 0 0 1440 938 </string>
+	<key>IBEditorPositions</key>
+	<dict>
+		<key>29</key>
+		<string>79 238 204 44 0 0 1440 938 </string>
+	</dict>
+	<key>IBFramework Version</key>
+	<string>443.0</string>
+	<key>IBOldestOS</key>
+	<integer>3</integer>
+	<key>IBOpenObjects</key>
+	<array>
+		<integer>166</integer>
+		<integer>29</integer>
+	</array>
+	<key>IBSystem Version</key>
+	<string>8F46</string>
+	<key>targetFramework</key>
+	<string>IBCarbonFramework</string>
+</dict>
+</plist>
diff --git a/ide/xcode/animatorTest/English.lproj/main.nib/objects.xib b/ide/xcode/animatorTest/English.lproj/main.nib/objects.xib
new file mode 100644
index 0000000..8ae9ed6
--- /dev/null
+++ b/ide/xcode/animatorTest/English.lproj/main.nib/objects.xib
@@ -0,0 +1,269 @@
+<?xml version="1.0" standalone="yes"?>
+<object class="NSIBObjectData">
+  <string name="targetFramework">IBCarbonFramework</string>
+  <object name="rootObject" class="NSCustomObject" id="1">
+    <string name="customClass">NSApplication</string>
+  </object>
+  <array count="38" name="allObjects">
+    <object class="IBCarbonMenu" id="29">
+      <string name="title">main</string>
+      <array count="4" name="items">
+        <object class="IBCarbonMenuItem" id="185">
+          <string name="title">Foo</string>
+          <object name="submenu" class="IBCarbonMenu" id="184">
+            <string name="title">Foo</string>
+            <array count="1" name="items">
+              <object class="IBCarbonMenuItem" id="187">
+                <string name="title">About Foo</string>
+                <int name="keyEquivalentModifier">0</int>
+                <ostype name="command">abou</ostype>
+              </object>
+            </array>
+            <string name="name">_NSAppleMenu</string>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="127">
+          <string name="title">File</string>
+          <object name="submenu" class="IBCarbonMenu" id="131">
+            <string name="title">File</string>
+            <array count="10" name="items">
+              <object class="IBCarbonMenuItem" id="139">
+                <string name="title">New</string>
+                <string name="keyEquivalent">n</string>
+                <ostype name="command">new </ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="134">
+                <string name="title">Open…</string>
+                <string name="keyEquivalent">o</string>
+                <ostype name="command">open</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="133">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="130">
+                <string name="title">Close</string>
+                <string name="keyEquivalent">w</string>
+                <ostype name="command">clos</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="138">
+                <string name="title">Save</string>
+                <string name="keyEquivalent">s</string>
+                <ostype name="command">save</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="137">
+                <string name="title">Save As…</string>
+                <string name="keyEquivalent">S</string>
+                <ostype name="command">svas</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="132">
+                <string name="title">Revert</string>
+                <string name="keyEquivalent">r</string>
+                <ostype name="command">rvrt</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="128">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="135">
+                <string name="title">Page Setup…</string>
+                <string name="keyEquivalent">P</string>
+                <ostype name="command">page</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="136">
+                <string name="title">Print…</string>
+                <string name="keyEquivalent">p</string>
+                <ostype name="command">prnt</ostype>
+              </object>
+            </array>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="152">
+          <string name="title">Edit</string>
+          <object name="submenu" class="IBCarbonMenu" id="147">
+            <string name="title">Edit</string>
+            <array count="10" name="items">
+              <object class="IBCarbonMenuItem" id="141">
+                <string name="title">Undo</string>
+                <string name="keyEquivalent">z</string>
+                <ostype name="command">undo</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="146">
+                <string name="title">Redo</string>
+                <string name="keyEquivalent">Z</string>
+                <ostype name="command">redo</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="142">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="143">
+                <string name="title">Cut</string>
+                <string name="keyEquivalent">x</string>
+                <ostype name="command">cut </ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="149">
+                <string name="title">Copy</string>
+                <string name="keyEquivalent">c</string>
+                <ostype name="command">copy</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="144">
+                <string name="title">Paste</string>
+                <string name="keyEquivalent">v</string>
+                <ostype name="command">past</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="151">
+                <string name="title">Delete</string>
+                <ostype name="command">clea</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="148">
+                <string name="title">Select All</string>
+                <string name="keyEquivalent">a</string>
+                <ostype name="command">sall</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="199">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="198">
+                <string name="title">Special Characters…</string>
+                <ostype name="command">chrp</ostype>
+              </object>
+            </array>
+          </object>
+        </object>
+        <object class="IBCarbonMenuItem" id="192">
+          <string name="title">Window</string>
+          <object name="submenu" class="IBCarbonMenu" id="195">
+            <string name="title">Window</string>
+            <array count="6" name="items">
+              <object class="IBCarbonMenuItem" id="190">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Minimize</string>
+                <string name="keyEquivalent">m</string>
+                <ostype name="command">mini</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="191">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Minimize All</string>
+                <string name="keyEquivalent">m</string>
+                <int name="keyEquivalentModifier">1572864</int>
+                <ostype name="command">mina</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="197">
+                <string name="title">Zoom</string>
+                <ostype name="command">zoom</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="194">
+                <boolean name="separator">TRUE</boolean>
+              </object>
+              <object class="IBCarbonMenuItem" id="196">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Bring All to Front</string>
+                <ostype name="command">bfrt</ostype>
+              </object>
+              <object class="IBCarbonMenuItem" id="193">
+                <boolean name="dynamic">TRUE</boolean>
+                <string name="title">Arrange in Front</string>
+                <int name="keyEquivalentModifier">1572864</int>
+                <ostype name="command">frnt</ostype>
+              </object>
+            </array>
+            <string name="name">_NSWindowsMenu</string>
+          </object>
+        </object>
+      </array>
+      <string name="name">_NSMainMenu</string>
+    </object>
+    <reference idRef="127"/>
+    <reference idRef="128"/>
+    <reference idRef="130"/>
+    <reference idRef="131"/>
+    <reference idRef="132"/>
+    <reference idRef="133"/>
+    <reference idRef="134"/>
+    <reference idRef="135"/>
+    <reference idRef="136"/>
+    <reference idRef="137"/>
+    <reference idRef="138"/>
+    <reference idRef="139"/>
+    <reference idRef="141"/>
+    <reference idRef="142"/>
+    <reference idRef="143"/>
+    <reference idRef="144"/>
+    <reference idRef="146"/>
+    <reference idRef="147"/>
+    <reference idRef="148"/>
+    <reference idRef="149"/>
+    <reference idRef="151"/>
+    <reference idRef="152"/>
+    <object class="IBCarbonWindow" id="166">
+      <string name="windowRect">204 300 564 780 </string>
+      <string name="title">Window</string>
+      <object name="rootControl" class="IBCarbonRootControl" id="167">
+        <string name="bounds">0 0 360 480 </string>
+      </object>
+      <boolean name="liveResize">TRUE</boolean>
+      <boolean name="isConstrained">FALSE</boolean>
+    </object>
+    <reference idRef="167"/>
+    <reference idRef="184"/>
+    <reference idRef="185"/>
+    <reference idRef="187"/>
+    <reference idRef="190"/>
+    <reference idRef="191"/>
+    <reference idRef="192"/>
+    <reference idRef="193"/>
+    <reference idRef="194"/>
+    <reference idRef="195"/>
+    <reference idRef="196"/>
+    <reference idRef="197"/>
+    <reference idRef="198"/>
+    <reference idRef="199"/>
+  </array>
+  <array count="38" name="allParents">
+    <reference idRef="1"/>
+    <reference idRef="29"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="127"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="131"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="152"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+    <reference idRef="29"/>
+    <reference idRef="1"/>
+    <reference idRef="166"/>
+    <reference idRef="185"/>
+    <reference idRef="29"/>
+    <reference idRef="184"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="29"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="192"/>
+    <reference idRef="195"/>
+    <reference idRef="195"/>
+    <reference idRef="147"/>
+    <reference idRef="147"/>
+  </array>
+  <dictionary count="3" name="nameTable">
+    <string>Files Owner</string>
+    <reference idRef="1"/>
+    <string>MainWindow</string>
+    <reference idRef="166"/>
+    <string>MenuBar</string>
+    <reference idRef="29"/>
+  </dictionary>
+  <unsigned_int name="nextObjectID">200</unsigned_int>
+</object>
diff --git a/ide/xcode/animatorTest/Info.plist b/ide/xcode/animatorTest/Info.plist
new file mode 100644
index 0000000..90c4211
--- /dev/null
+++ b/ide/xcode/animatorTest/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIconFile</key>
+	<string></string>
+	<key>CFBundleIdentifier</key>
+	<string>com.yourcompany.animatorTest</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>CSResourcesFileMapped</key>
+	<true/>
+</dict>
+</plist>
diff --git a/ide/xcode/animatorTest/animatorTest.xcodeproj/project.pbxproj b/ide/xcode/animatorTest/animatorTest.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..26004dc
--- /dev/null
+++ b/ide/xcode/animatorTest/animatorTest.xcodeproj/project.pbxproj
@@ -0,0 +1,1112 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */; };
+		8D0C4E8E0486CD37000505A6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; };
+		8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20286C33FDCF999611CA2CEA /* Carbon.framework */; };
+		FE33CA3A094E2D2500C4A640 /* libgraphics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA1F094E2CC900C4A640 /* libgraphics.a */; };
+		FE33CA3B094E2D2E00C4A640 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA19094E2CC900C4A640 /* libfreetype.a */; };
+		FE33CA49094E2D3A00C4A640 /* libports.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA1C094E2CC900C4A640 /* libports.a */; };
+		FE33CA4A094E2D4600C4A640 /* libports-mac.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA01094E2CC900C4A640 /* libports-mac.a */; };
+		FE33CA4B094E2D4D00C4A640 /* libgif.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA0A094E2CC900C4A640 /* libgif.a */; };
+		FE33CA4C094E2D5400C4A640 /* libjpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA0D094E2CC900C4A640 /* libjpeg.a */; };
+		FE33CA4D094E2D5B00C4A640 /* liblibpng.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA10094E2CC900C4A640 /* liblibpng.a */; };
+		FE33CA4E094E2D6600C4A640 /* libzlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA13094E2CC900C4A640 /* libzlib.a */; };
+		FE33CA4F094E2D7000C4A640 /* libviews.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA16094E2CC900C4A640 /* libviews.a */; };
+		FE33CA50094E2D7600C4A640 /* libanimator.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA07094E2CC900C4A640 /* libanimator.a */; };
+		FE3485990950D204003F0C3F /* libsvg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE3485980950D1EE003F0C3F /* libsvg.a */; };
+		FE61323709B616EA004BB4B8 /* libcorecg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE61323609B616A5004BB4B8 /* libcorecg.a */; };
+		FEBB00B00D7DD8D70027C5D6 /* CacheBuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEBB00A20D7DD8D70027C5D6 /* CacheBuilder.cpp */; };
+		FEBB00B10D7DD8D70027C5D6 /* CachedFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEBB00A50D7DD8D70027C5D6 /* CachedFrame.cpp */; };
+		FEBB00B20D7DD8D70027C5D6 /* CachedHistory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEBB00A70D7DD8D70027C5D6 /* CachedHistory.cpp */; };
+		FEBB00B30D7DD8D70027C5D6 /* CachedNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEBB00A90D7DD8D70027C5D6 /* CachedNode.cpp */; };
+		FEBB00B40D7DD8D70027C5D6 /* CachedRoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEBB00AD0D7DD8D70027C5D6 /* CachedRoot.cpp */; };
+		FEBB00B90D7DD8F20027C5D6 /* BrowserDebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEBB00B70D7DD8F20027C5D6 /* BrowserDebug.cpp */; };
+		FEBB00C60D7DDA4A0027C5D6 /* animatorTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE33CAC4094F301100C4A640 /* animatorTest.cpp */; };
+		FEF4C9AA09574C4600F2B941 /* libexpat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FE33CA04094E2CC900C4A640 /* libexpat.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		FE33CA00094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9DE094E2CC900C4A640 /* ports-mac.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = "ports-mac";
+		};
+		FE33CA03094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9E1094E2CC900C4A640 /* expat.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = expat;
+		};
+		FE33CA06094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9E4094E2CC900C4A640 /* animator.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = animator;
+		};
+		FE33CA09094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9E7094E2CC900C4A640 /* gif.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = gif;
+		};
+		FE33CA0C094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9EA094E2CC900C4A640 /* jpeg.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = jpeg;
+		};
+		FE33CA0F094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9ED094E2CC900C4A640 /* libpng.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = libpng;
+		};
+		FE33CA12094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F0094E2CC900C4A640 /* zlib.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = zlib;
+		};
+		FE33CA15094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F3094E2CC900C4A640 /* views.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = views;
+		};
+		FE33CA18094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F6094E2CC900C4A640 /* freetype2.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = freetype;
+		};
+		FE33CA1B094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F9094E2CC900C4A640 /* ports.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = ports;
+		};
+		FE33CA1E094E2CC900C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9FC094E2CC900C4A640 /* graphics.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC06F0554671400DB518D;
+			remoteInfo = graphics;
+		};
+		FE33CA20094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F9094E2CC900C4A640 /* ports.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = ports;
+		};
+		FE33CA22094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F3094E2CC900C4A640 /* views.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = views;
+		};
+		FE33CA24094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9ED094E2CC900C4A640 /* libpng.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = libpng;
+		};
+		FE33CA26094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9E7094E2CC900C4A640 /* gif.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = gif;
+		};
+		FE33CA28094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9E4094E2CC900C4A640 /* animator.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = animator;
+		};
+		FE33CA2A094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9DE094E2CC900C4A640 /* ports-mac.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = "ports-mac";
+		};
+		FE33CA2C094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9FC094E2CC900C4A640 /* graphics.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC06E0554671400DB518D;
+			remoteInfo = graphics;
+		};
+		FE33CA2E094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F6094E2CC900C4A640 /* freetype2.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = freetype;
+		};
+		FE33CA30094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9F0094E2CC900C4A640 /* zlib.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = zlib;
+		};
+		FE33CA32094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9EA094E2CC900C4A640 /* jpeg.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = jpeg;
+		};
+		FE33CA34094E2CFD00C4A640 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE33C9E1094E2CC900C4A640 /* expat.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = expat;
+		};
+		FE3485970950D1EE003F0C3F /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE3485930950D1EE003F0C3F /* svg.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = svg;
+		};
+		FE34859A0950D21C003F0C3F /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE3485930950D1EE003F0C3F /* svg.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = svg;
+		};
+		FE61323509B616A5004BB4B8 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE61323009B616A5004BB4B8 /* corecg.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = D2AAC046055464E500DB518D;
+			remoteInfo = corecg;
+		};
+		FE61324709B6191D004BB4B8 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = FE61323009B616A5004BB4B8 /* corecg.xcodeproj */;
+			proxyType = 1;
+			remoteGlobalIDString = D2AAC045055464E500DB518D;
+			remoteInfo = corecg;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		000419F90B4AD2C1002A456B /* SkFontHost_FONTPATH.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_FONTPATH.cpp; path = ../../../libs/graphics/ports/SkFontHost_FONTPATH.cpp; sourceTree = SOURCE_ROOT; };
+		000419FA0B4AD2C1002A456B /* SkFontHost_none.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_none.cpp; path = ../../../libs/graphics/ports/SkFontHost_none.cpp; sourceTree = SOURCE_ROOT; };
+		0009590E0A27775D001F29C8 /* pathTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = pathTest.cpp; path = ../../../tests/skia/animatorTest/pathTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3EE0C88591F00CC4316 /* cameraTest3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = cameraTest3.cpp; path = ../../../tests/skia/animatorTest/cameraTest3.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3EF0C88591F00CC4316 /* ditherTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ditherTest.cpp; path = ../../../tests/skia/animatorTest/ditherTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F00C88591F00CC4316 /* imageditherTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = imageditherTest.cpp; path = ../../../tests/skia/animatorTest/imageditherTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F10C88591F00CC4316 /* layerTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = layerTest.cpp; path = ../../../tests/skia/animatorTest/layerTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F20C88591F00CC4316 /* maskTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = maskTest.cpp; path = ../../../tests/skia/animatorTest/maskTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F30C88591F00CC4316 /* mipmapTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = mipmapTest.cpp; path = ../../../tests/skia/animatorTest/mipmapTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F40C88591F00CC4316 /* pathEffectTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = pathEffectTest.cpp; path = ../../../tests/skia/animatorTest/pathEffectTest.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F50C88591F00CC4316 /* regionToPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = regionToPath.cpp; path = ../../../tests/skia/animatorTest/regionToPath.cpp; sourceTree = SOURCE_ROOT; };
+		000BB3F60C88591F00CC4316 /* testImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testImage.cpp; path = ../../../tests/skia/animatorTest/testImage.cpp; sourceTree = SOURCE_ROOT; };
+		000F5ED00B77BB82007BC854 /* shaderTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = shaderTest.cpp; path = ../../../tests/skia/animatorTest/shaderTest.cpp; sourceTree = SOURCE_ROOT; };
+		001164400CE0CC3400050E37 /* SampleAll.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleAll.cpp; sourceTree = "<group>"; };
+		0011644A0CE119B800050E37 /* SampleEncode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleEncode.cpp; sourceTree = "<group>"; };
+		002136F80CFF35C80017CD78 /* SampleCamera.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleCamera.cpp; sourceTree = "<group>"; };
+		002A08F90CE9F563009DE5DB /* SamplePath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SamplePath.cpp; sourceTree = "<group>"; };
+		0031B9800CC3A97D00366339 /* SkPackBits.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPackBits.cpp; path = ../../../libs/graphics/sgl/SkPackBits.cpp; sourceTree = SOURCE_ROOT; };
+		004F37A90D1B73EB00FCE06A /* SampleFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleFilter.cpp; sourceTree = "<group>"; };
+		00540DFD09D04C9B00307DCB /* regionTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = regionTest.cpp; path = ../../../tests/skia/animatorTest/regionTest.cpp; sourceTree = SOURCE_ROOT; };
+		00625C700CB32B70003DB915 /* SampleImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleImage.cpp; sourceTree = "<group>"; };
+		006EEFA50AA611910064EC7C /* ninepatchTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ninepatchTest.cpp; path = ../../../tests/skia/animatorTest/ninepatchTest.cpp; sourceTree = SOURCE_ROOT; };
+		00731B110C8F4DC900AF4FB6 /* SampleCull.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleCull.cpp; sourceTree = "<group>"; };
+		00731B120C8F4DC900AF4FB6 /* SampleLayers.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleLayers.cpp; sourceTree = "<group>"; };
+		0077DCA50B2087C000ED5E84 /* textOnPathTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = textOnPathTest.cpp; path = ../../../tests/skia/animatorTest/textOnPathTest.cpp; sourceTree = SOURCE_ROOT; };
+		0092A3610AD6EC13000FECBC /* cameraTest2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = cameraTest2.cpp; path = ../../../tests/skia/animatorTest/cameraTest2.cpp; sourceTree = SOURCE_ROOT; };
+		00A1F4C60C90383200BCF1B6 /* SamplePoints.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SamplePoints.cpp; sourceTree = "<group>"; };
+		00A1F4C70C90383200BCF1B6 /* SampleText.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleText.cpp; sourceTree = "<group>"; };
+		00A1F4C80C90383200BCF1B6 /* SampleTiling.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleTiling.cpp; sourceTree = "<group>"; };
+		00A1F4ED0C903D1600BCF1B6 /* SampleTextOnPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleTextOnPath.cpp; sourceTree = "<group>"; };
+		00AAB9FE0A0A6DEF009B65B1 /* textTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = textTest.cpp; path = ../../../tests/skia/animatorTest/textTest.cpp; sourceTree = SOURCE_ROOT; };
+		00AB5FFF0A8267AE0038DE0A /* tilingTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = tilingTest.cpp; path = ../../../tests/skia/animatorTest/tilingTest.cpp; sourceTree = SOURCE_ROOT; };
+		00B1596D0AA37F6100B118AB /* testcull.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testcull.cpp; path = ../../../tests/skia/animatorTest/testcull.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BA70CD01F7600BFAB53 /* jpgdec_api.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpgdec_api.h; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_api.h; sourceTree = SOURCE_ROOT; };
+		00BF1BA80CD01F7600BFAB53 /* jpgdec_bitstream.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_bitstream.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_bitstream.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BA90CD01F7600BFAB53 /* jpgdec_cint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_cint.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_cint.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BAA0CD01F7600BFAB53 /* jpgdec_colorconv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_colorconv.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_colorconv.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BAB0CD01F7600BFAB53 /* jpgdec_config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpgdec_config.h; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_config.h; sourceTree = SOURCE_ROOT; };
+		00BF1BAC0CD01F7600BFAB53 /* jpgdec_ct.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_ct.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_ct.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BAD0CD01F7600BFAB53 /* jpgdec_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_decoder.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BAE0CD01F7600BFAB53 /* jpgdec_error.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpgdec_error.h; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_error.h; sourceTree = SOURCE_ROOT; };
+		00BF1BAF0CD01F7600BFAB53 /* jpgdec_header.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_header.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_header.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB00CD01F7600BFAB53 /* jpgdec_huffman.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_huffman.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_huffman.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB10CD01F7600BFAB53 /* jpgdec_idctp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_idctp.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_idctp.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB20CD01F7600BFAB53 /* jpgdec_idcts.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_idcts.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_idcts.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB30CD01F7600BFAB53 /* jpgdec_prototype.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpgdec_prototype.h; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_prototype.h; sourceTree = SOURCE_ROOT; };
+		00BF1BB40CD01F7600BFAB53 /* jpgdec_scan.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_scan.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_scan.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB50CD01F7600BFAB53 /* jpgdec_table.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_table.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_table.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB60CD01F7600BFAB53 /* jpgdec_table.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpgdec_table.h; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_table.h; sourceTree = SOURCE_ROOT; };
+		00BF1BB70CD01F7600BFAB53 /* jpgdec_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_utils.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_utils.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB80CD01F7600BFAB53 /* pvjpgdecoder_factory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = pvjpgdecoder_factory.cpp; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/pvjpgdecoder_factory.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1BB90CD01F7600BFAB53 /* pvjpgdecoder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = pvjpgdecoder.h; path = ../../../extlibs/pv/codecs_v2/image/jpeg/dec/src/pvjpgdecoder.h; sourceTree = SOURCE_ROOT; };
+		00BF1E950CD0274100BFAB53 /* SkImageDecoder_libpvjpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libpvjpeg.cpp; path = ../../../libs/graphics/images/SkImageDecoder_libpvjpeg.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F240CD0E40D00BFAB53 /* oscl_assert.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_assert.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_assert.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F250CD0E40E00BFAB53 /* oscl_base.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_base.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_base.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F260CD0E40E00BFAB53 /* oscl_byte_order.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_byte_order.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_byte_order.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F270CD0E40E00BFAB53 /* oscl_int64_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_int64_utils.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_int64_utils.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F280CD0E40E00BFAB53 /* oscl_int64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_int64.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_int64.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F290CD0E40E00BFAB53 /* oscl_mem_basic_functions.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_mem_basic_functions.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_mem_basic_functions.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F2A0CD0E40E00BFAB53 /* oscl_singleton.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_singleton.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_singleton.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F2B0CD0E40E00BFAB53 /* oscl_stdstring.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_stdstring.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_stdstring.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F2C0CD0E40E00BFAB53 /* oscl_string_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_string_utils.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_string_utils.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F2D0CD0E40E00BFAB53 /* oscl_tagtree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_tagtree.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_tagtree.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F2E0CD0E40E00BFAB53 /* oscl_tree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_tree.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_tree.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F2F0CD0E40E00BFAB53 /* oscl_uint64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_uint64.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_uint64.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F520CD0E4A700BFAB53 /* oscl_tls.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_tls.cpp; path = ../../../extlibs/pv/oscl/oscl/osclbase/src/oscl_tls.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F5D0CD0E52300BFAB53 /* oscl_errno.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_errno.cpp; path = ../../../extlibs/pv/oscl/oscl/osclerror/src/oscl_errno.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F5E0CD0E52300BFAB53 /* oscl_error_imp_jumps.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_error_imp_jumps.cpp; path = ../../../extlibs/pv/oscl/oscl/osclerror/src/oscl_error_imp_jumps.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F5F0CD0E52300BFAB53 /* oscl_error_trapcleanup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_error_trapcleanup.cpp; path = ../../../extlibs/pv/oscl/oscl/osclerror/src/oscl_error_trapcleanup.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F600CD0E52300BFAB53 /* oscl_heapbase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_heapbase.cpp; path = ../../../extlibs/pv/oscl/oscl/osclerror/src/oscl_heapbase.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F610CD0E52300BFAB53 /* oscl_mempool_allocator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_mempool_allocator.cpp; path = ../../../extlibs/pv/oscl/oscl/osclerror/src/oscl_mempool_allocator.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F6E0CD0E56A00BFAB53 /* oscl_error.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_error.cpp; path = ../../../extlibs/pv/oscl/oscl/osclerror/src/oscl_error.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F790CD0E5BB00BFAB53 /* oscl_mem_audit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_mem_audit.cpp; path = ../../../extlibs/pv/oscl/oscl/osclmemory/src/oscl_mem_audit.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F7A0CD0E5BB00BFAB53 /* oscl_mem_imp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_mem_imp.cpp; path = ../../../extlibs/pv/oscl/oscl/osclmemory/src/oscl_mem_imp.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F7B0CD0E5BB00BFAB53 /* oscl_mem_mempool.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_mem_mempool.cpp; path = ../../../extlibs/pv/oscl/oscl/osclmemory/src/oscl_mem_mempool.cpp; sourceTree = SOURCE_ROOT; };
+		00BF1F7C0CD0E5BB00BFAB53 /* oscl_mem.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = oscl_mem.cpp; path = ../../../extlibs/pv/oscl/oscl/osclmemory/src/oscl_mem.cpp; sourceTree = SOURCE_ROOT; };
+		00C7F00B0ADBDC6200202BAB /* cameraTest4.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = cameraTest4.cpp; path = ../../../tests/skia/animatorTest/cameraTest4.cpp; sourceTree = SOURCE_ROOT; };
+		00E6E1790CCCE62A00F102DB /* SampleImageDir.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleImageDir.cpp; sourceTree = "<group>"; };
+		00E6E2B90CCD122A00F102DB /* SampleFontCache.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleFontCache.cpp; sourceTree = "<group>"; };
+		00F0528D0AD2D26D00B085B7 /* testbitmaptile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testbitmaptile.cpp; path = ../../../tests/skia/animatorTest/testbitmaptile.cpp; sourceTree = SOURCE_ROOT; };
+		00F0DC640D1846C00089B0C1 /* SampleDither.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleDither.cpp; sourceTree = "<group>"; };
+		00F6F7C70C8F1C890064A10D /* SampleApp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleApp.cpp; sourceTree = "<group>"; };
+		00F6F7C80C8F1C890064A10D /* SampleArc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleArc.cpp; sourceTree = "<group>"; };
+		00F6F7C90C8F1C890064A10D /* SamplePathEffects.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SamplePathEffects.cpp; sourceTree = "<group>"; };
+		00F6F7CA0C8F1C890064A10D /* SampleRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleRegion.cpp; sourceTree = "<group>"; };
+		00F6F7CB0C8F1C890064A10D /* SampleShaders.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleShaders.cpp; sourceTree = "<group>"; };
+		00F6F7CC0C8F1C890064A10D /* SampleTextEffects.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SampleTextEffects.cpp; sourceTree = "<group>"; };
+		00F714FB0ACC056500453651 /* TextSpeedTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = TextSpeedTest.cpp; path = ../../../tests/skia/animatorTest/TextSpeedTest.cpp; sourceTree = SOURCE_ROOT; };
+		0867D6ABFE840B52C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = "<group>"; };
+		20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+		32DBCF6D0370B57F00C91783 /* animatorTest_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = animatorTest_Prefix.pch; sourceTree = "<group>"; };
+		4A9504C8FFE6A3BC11CA0CBA /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+		4A9504CAFFE6A41611CA0CBA /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+		8D0C4E960486CD37000505A6 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+		8D0C4E970486CD37000505A6 /* animatorTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = animatorTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE21C73309537F3800D016FB /* animatorTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = animatorTest.h; path = ../../../tests/skia/animatorTest/animatorTest.h; sourceTree = SOURCE_ROOT; };
+		FE33C9DE094E2CC900C4A640 /* ports-mac.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "ports-mac.xcodeproj"; path = "../ports-mac.xcodeproj"; sourceTree = SOURCE_ROOT; };
+		FE33C9E1094E2CC900C4A640 /* expat.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = expat.xcodeproj; path = ../expat.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9E4094E2CC900C4A640 /* animator.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = animator.xcodeproj; path = ../animator.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9E7094E2CC900C4A640 /* gif.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = gif.xcodeproj; path = ../gif.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9EA094E2CC900C4A640 /* jpeg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = jpeg.xcodeproj; path = ../jpeg.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9ED094E2CC900C4A640 /* libpng.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libpng.xcodeproj; path = ../libpng.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9F0094E2CC900C4A640 /* zlib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = zlib.xcodeproj; path = ../zlib.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9F3094E2CC900C4A640 /* views.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = views.xcodeproj; path = ../views.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9F6094E2CC900C4A640 /* freetype2.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = freetype2.xcodeproj; path = ../freetype2.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9F9094E2CC900C4A640 /* ports.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ports.xcodeproj; path = ../ports.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33C9FC094E2CC900C4A640 /* graphics.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = graphics.xcodeproj; path = ../graphics.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE33CAC4094F301100C4A640 /* animatorTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = animatorTest.cpp; path = ../../../tests/skia/animatorTest/animatorTest.cpp; sourceTree = SOURCE_ROOT; };
+		FE3485930950D1EE003F0C3F /* svg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = svg.xcodeproj; path = ../svg.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FE61323009B616A5004BB4B8 /* corecg.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = corecg.xcodeproj; path = ../corecg.xcodeproj; sourceTree = SOURCE_ROOT; };
+		FEACF22A09E4636400D0C2E2 /* animatorUnitTest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = animatorUnitTest.cpp; path = ../../../tests/skia/animatorTest/animatorUnitTest.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00A20D7DD8D70027C5D6 /* CacheBuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CacheBuilder.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CacheBuilder.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00A30D7DD8D70027C5D6 /* CacheBuilder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CacheBuilder.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CacheBuilder.h; sourceTree = SOURCE_ROOT; };
+		FEBB00A40D7DD8D70027C5D6 /* CachedDebug.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedDebug.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedDebug.h; sourceTree = SOURCE_ROOT; };
+		FEBB00A50D7DD8D70027C5D6 /* CachedFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CachedFrame.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedFrame.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00A60D7DD8D70027C5D6 /* CachedFrame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedFrame.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedFrame.h; sourceTree = SOURCE_ROOT; };
+		FEBB00A70D7DD8D70027C5D6 /* CachedHistory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CachedHistory.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedHistory.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00A80D7DD8D70027C5D6 /* CachedHistory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedHistory.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedHistory.h; sourceTree = SOURCE_ROOT; };
+		FEBB00A90D7DD8D70027C5D6 /* CachedNode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CachedNode.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedNode.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00AA0D7DD8D70027C5D6 /* CachedNode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedNode.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedNode.h; sourceTree = SOURCE_ROOT; };
+		FEBB00AB0D7DD8D70027C5D6 /* CachedNodeType.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedNodeType.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedNodeType.h; sourceTree = SOURCE_ROOT; };
+		FEBB00AC0D7DD8D70027C5D6 /* CachedPrefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedPrefix.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedPrefix.h; sourceTree = SOURCE_ROOT; };
+		FEBB00AD0D7DD8D70027C5D6 /* CachedRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CachedRoot.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedRoot.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00AE0D7DD8D70027C5D6 /* CachedRoot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CachedRoot.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/CachedRoot.h; sourceTree = SOURCE_ROOT; };
+		FEBB00AF0D7DD8D70027C5D6 /* WebView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = WebView.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/nav/WebView.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00B70D7DD8F20027C5D6 /* BrowserDebug.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = BrowserDebug.cpp; path = ../../../tests/browser/focusNavigation/BrowserDebug.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00B80D7DD8F20027C5D6 /* BrowserDebug.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = BrowserDebug.h; path = ../../../tests/browser/focusNavigation/BrowserDebug.h; sourceTree = SOURCE_ROOT; };
+		FEBB00D20D7DE0710027C5D6 /* android_widget_htmlwidget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = android_widget_htmlwidget.cpp; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/jni/android_widget_htmlwidget.cpp; sourceTree = SOURCE_ROOT; };
+		FEBB00D30D7DE0710027C5D6 /* android_widget_htmlwidget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = android_widget_htmlwidget.h; path = ../../../libs/WebKitLib/WebKit/WebCore/platform/android/jni/android_widget_htmlwidget.h; sourceTree = SOURCE_ROOT; };
+		FEBB00D60D7DE0B50027C5D6 /* WebView.java */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.java; name = WebView.java; path = ../../../java/android/android/webkit/WebView.java; sourceTree = SOURCE_ROOT; };
+		FEBB00D70D7DE0B50027C5D6 /* WebViewCore.java */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.java; name = WebViewCore.java; path = ../../../java/android/android/webkit/WebViewCore.java; sourceTree = SOURCE_ROOT; };
+		FEDCDA7309B892550042D964 /* masterList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = masterList.cpp; path = ../../../tests/skia/masterList/masterList.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		8D0C4E910486CD37000505A6 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE33CA50094E2D7600C4A640 /* libanimator.a in Frameworks */,
+				FE3485990950D204003F0C3F /* libsvg.a in Frameworks */,
+				FE33CA4F094E2D7000C4A640 /* libviews.a in Frameworks */,
+				FE33CA3A094E2D2500C4A640 /* libgraphics.a in Frameworks */,
+				FE61323709B616EA004BB4B8 /* libcorecg.a in Frameworks */,
+				FE33CA3B094E2D2E00C4A640 /* libfreetype.a in Frameworks */,
+				FEF4C9AA09574C4600F2B941 /* libexpat.a in Frameworks */,
+				FE33CA49094E2D3A00C4A640 /* libports.a in Frameworks */,
+				FE33CA4A094E2D4600C4A640 /* libports-mac.a in Frameworks */,
+				FE33CA4C094E2D5400C4A640 /* libjpeg.a in Frameworks */,
+				FE33CA4B094E2D4D00C4A640 /* libgif.a in Frameworks */,
+				FE33CA4D094E2D5B00C4A640 /* liblibpng.a in Frameworks */,
+				FE33CA4E094E2D6600C4A640 /* libzlib.a in Frameworks */,
+				8D0C4E920486CD37000505A6 /* Carbon.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		00BF1BA60CD01F5200BFAB53 /* pv_decode */ = {
+			isa = PBXGroup;
+			children = (
+				00BF1F790CD0E5BB00BFAB53 /* oscl_mem_audit.cpp */,
+				00BF1F7A0CD0E5BB00BFAB53 /* oscl_mem_imp.cpp */,
+				00BF1F7B0CD0E5BB00BFAB53 /* oscl_mem_mempool.cpp */,
+				00BF1F7C0CD0E5BB00BFAB53 /* oscl_mem.cpp */,
+				00BF1F6E0CD0E56A00BFAB53 /* oscl_error.cpp */,
+				00BF1F5D0CD0E52300BFAB53 /* oscl_errno.cpp */,
+				00BF1F5E0CD0E52300BFAB53 /* oscl_error_imp_jumps.cpp */,
+				00BF1F5F0CD0E52300BFAB53 /* oscl_error_trapcleanup.cpp */,
+				00BF1F600CD0E52300BFAB53 /* oscl_heapbase.cpp */,
+				00BF1F610CD0E52300BFAB53 /* oscl_mempool_allocator.cpp */,
+				00BF1F520CD0E4A700BFAB53 /* oscl_tls.cpp */,
+				00BF1F240CD0E40D00BFAB53 /* oscl_assert.cpp */,
+				00BF1F250CD0E40E00BFAB53 /* oscl_base.cpp */,
+				00BF1F260CD0E40E00BFAB53 /* oscl_byte_order.cpp */,
+				00BF1F270CD0E40E00BFAB53 /* oscl_int64_utils.cpp */,
+				00BF1F280CD0E40E00BFAB53 /* oscl_int64.cpp */,
+				00BF1F290CD0E40E00BFAB53 /* oscl_mem_basic_functions.cpp */,
+				00BF1F2A0CD0E40E00BFAB53 /* oscl_singleton.cpp */,
+				00BF1F2B0CD0E40E00BFAB53 /* oscl_stdstring.cpp */,
+				00BF1F2C0CD0E40E00BFAB53 /* oscl_string_utils.cpp */,
+				00BF1F2D0CD0E40E00BFAB53 /* oscl_tagtree.cpp */,
+				00BF1F2E0CD0E40E00BFAB53 /* oscl_tree.cpp */,
+				00BF1F2F0CD0E40E00BFAB53 /* oscl_uint64.cpp */,
+				00BF1BA70CD01F7600BFAB53 /* jpgdec_api.h */,
+				00BF1BA80CD01F7600BFAB53 /* jpgdec_bitstream.cpp */,
+				00BF1BA90CD01F7600BFAB53 /* jpgdec_cint.cpp */,
+				00BF1BAA0CD01F7600BFAB53 /* jpgdec_colorconv.cpp */,
+				00BF1BAB0CD01F7600BFAB53 /* jpgdec_config.h */,
+				00BF1BAC0CD01F7600BFAB53 /* jpgdec_ct.cpp */,
+				00BF1BAD0CD01F7600BFAB53 /* jpgdec_decoder.cpp */,
+				00BF1BAE0CD01F7600BFAB53 /* jpgdec_error.h */,
+				00BF1BAF0CD01F7600BFAB53 /* jpgdec_header.cpp */,
+				00BF1BB00CD01F7600BFAB53 /* jpgdec_huffman.cpp */,
+				00BF1BB10CD01F7600BFAB53 /* jpgdec_idctp.cpp */,
+				00BF1BB20CD01F7600BFAB53 /* jpgdec_idcts.cpp */,
+				00BF1BB30CD01F7600BFAB53 /* jpgdec_prototype.h */,
+				00BF1BB40CD01F7600BFAB53 /* jpgdec_scan.cpp */,
+				00BF1BB50CD01F7600BFAB53 /* jpgdec_table.cpp */,
+				00BF1BB60CD01F7600BFAB53 /* jpgdec_table.h */,
+				00BF1BB70CD01F7600BFAB53 /* jpgdec_utils.cpp */,
+				00BF1BB80CD01F7600BFAB53 /* pvjpgdecoder_factory.cpp */,
+				00BF1BB90CD01F7600BFAB53 /* pvjpgdecoder.h */,
+			);
+			name = pv_decode;
+			sourceTree = "<group>";
+		};
+		00F6F7C50C8F1C890064A10D /* SampleCode */ = {
+			isa = PBXGroup;
+			children = (
+				00F6F7C70C8F1C890064A10D /* SampleApp.cpp */,
+				00F6F7C80C8F1C890064A10D /* SampleArc.cpp */,
+				0011644A0CE119B800050E37 /* SampleEncode.cpp */,
+				001164400CE0CC3400050E37 /* SampleAll.cpp */,
+				00A1F4C60C90383200BCF1B6 /* SamplePoints.cpp */,
+				00A1F4C70C90383200BCF1B6 /* SampleText.cpp */,
+				00A1F4C80C90383200BCF1B6 /* SampleTiling.cpp */,
+				00731B110C8F4DC900AF4FB6 /* SampleCull.cpp */,
+				002136F80CFF35C80017CD78 /* SampleCamera.cpp */,
+				00731B120C8F4DC900AF4FB6 /* SampleLayers.cpp */,
+				00F0DC640D1846C00089B0C1 /* SampleDither.cpp */,
+				004F37A90D1B73EB00FCE06A /* SampleFilter.cpp */,
+				00F6F7C90C8F1C890064A10D /* SamplePathEffects.cpp */,
+				00F6F7CA0C8F1C890064A10D /* SampleRegion.cpp */,
+				00F6F7CB0C8F1C890064A10D /* SampleShaders.cpp */,
+				00625C700CB32B70003DB915 /* SampleImage.cpp */,
+				002A08F90CE9F563009DE5DB /* SamplePath.cpp */,
+				00E6E1790CCCE62A00F102DB /* SampleImageDir.cpp */,
+				00E6E2B90CCD122A00F102DB /* SampleFontCache.cpp */,
+				00F6F7CC0C8F1C890064A10D /* SampleTextEffects.cpp */,
+				00A1F4ED0C903D1600BCF1B6 /* SampleTextOnPath.cpp */,
+			);
+			name = SampleCode;
+			path = ../../../tests/skia/SampleCode;
+			sourceTree = SOURCE_ROOT;
+		};
+		195DF8CFFE9D517E11CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E970486CD37000505A6 /* animatorTest.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		20286C29FDCF999611CA2CEA /* animatorTest */ = {
+			isa = PBXGroup;
+			children = (
+				00BF1BA60CD01F5200BFAB53 /* pv_decode */,
+				00F6F7C50C8F1C890064A10D /* SampleCode */,
+				FE33C9E1094E2CC900C4A640 /* expat.xcodeproj */,
+				FE61323009B616A5004BB4B8 /* corecg.xcodeproj */,
+				FE3485930950D1EE003F0C3F /* svg.xcodeproj */,
+				FE33C9DE094E2CC900C4A640 /* ports-mac.xcodeproj */,
+				FE33C9E4094E2CC900C4A640 /* animator.xcodeproj */,
+				FE33C9E7094E2CC900C4A640 /* gif.xcodeproj */,
+				FE33C9EA094E2CC900C4A640 /* jpeg.xcodeproj */,
+				FE33C9ED094E2CC900C4A640 /* libpng.xcodeproj */,
+				FE33C9F0094E2CC900C4A640 /* zlib.xcodeproj */,
+				FE33C9F3094E2CC900C4A640 /* views.xcodeproj */,
+				FE33C9F6094E2CC900C4A640 /* freetype2.xcodeproj */,
+				FE33C9F9094E2CC900C4A640 /* ports.xcodeproj */,
+				FE33C9FC094E2CC900C4A640 /* graphics.xcodeproj */,
+				20286C2AFDCF999611CA2CEA /* Sources */,
+				20286C2CFDCF999611CA2CEA /* Resources */,
+				20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */,
+				195DF8CFFE9D517E11CA2CBB /* Products */,
+				00BF1E950CD0274100BFAB53 /* SkImageDecoder_libpvjpeg.cpp */,
+			);
+			name = animatorTest;
+			sourceTree = "<group>";
+		};
+		20286C2AFDCF999611CA2CEA /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				FEBB00D60D7DE0B50027C5D6 /* WebView.java */,
+				FEBB00D70D7DE0B50027C5D6 /* WebViewCore.java */,
+				FEBB00D20D7DE0710027C5D6 /* android_widget_htmlwidget.cpp */,
+				FEBB00D30D7DE0710027C5D6 /* android_widget_htmlwidget.h */,
+				FEBB00B70D7DD8F20027C5D6 /* BrowserDebug.cpp */,
+				FEBB00B80D7DD8F20027C5D6 /* BrowserDebug.h */,
+				FEBB00A20D7DD8D70027C5D6 /* CacheBuilder.cpp */,
+				FEBB00A30D7DD8D70027C5D6 /* CacheBuilder.h */,
+				FEBB00A40D7DD8D70027C5D6 /* CachedDebug.h */,
+				FEBB00A50D7DD8D70027C5D6 /* CachedFrame.cpp */,
+				FEBB00A60D7DD8D70027C5D6 /* CachedFrame.h */,
+				FEBB00A70D7DD8D70027C5D6 /* CachedHistory.cpp */,
+				FEBB00A80D7DD8D70027C5D6 /* CachedHistory.h */,
+				FEBB00A90D7DD8D70027C5D6 /* CachedNode.cpp */,
+				FEBB00AA0D7DD8D70027C5D6 /* CachedNode.h */,
+				FEBB00AB0D7DD8D70027C5D6 /* CachedNodeType.h */,
+				FEBB00AC0D7DD8D70027C5D6 /* CachedPrefix.h */,
+				FEBB00AD0D7DD8D70027C5D6 /* CachedRoot.cpp */,
+				FEBB00AE0D7DD8D70027C5D6 /* CachedRoot.h */,
+				FEBB00AF0D7DD8D70027C5D6 /* WebView.cpp */,
+				0031B9800CC3A97D00366339 /* SkPackBits.cpp */,
+				000BB3EE0C88591F00CC4316 /* cameraTest3.cpp */,
+				000BB3EF0C88591F00CC4316 /* ditherTest.cpp */,
+				000BB3F00C88591F00CC4316 /* imageditherTest.cpp */,
+				000BB3F10C88591F00CC4316 /* layerTest.cpp */,
+				000BB3F20C88591F00CC4316 /* maskTest.cpp */,
+				000BB3F30C88591F00CC4316 /* mipmapTest.cpp */,
+				000BB3F40C88591F00CC4316 /* pathEffectTest.cpp */,
+				000BB3F50C88591F00CC4316 /* regionToPath.cpp */,
+				000BB3F60C88591F00CC4316 /* testImage.cpp */,
+				000419F90B4AD2C1002A456B /* SkFontHost_FONTPATH.cpp */,
+				000419FA0B4AD2C1002A456B /* SkFontHost_none.cpp */,
+				00C7F00B0ADBDC6200202BAB /* cameraTest4.cpp */,
+				00F0528D0AD2D26D00B085B7 /* testbitmaptile.cpp */,
+				00B1596D0AA37F6100B118AB /* testcull.cpp */,
+				FEACF22A09E4636400D0C2E2 /* animatorUnitTest.cpp */,
+				0009590E0A27775D001F29C8 /* pathTest.cpp */,
+				006EEFA50AA611910064EC7C /* ninepatchTest.cpp */,
+				00540DFD09D04C9B00307DCB /* regionTest.cpp */,
+				00AAB9FE0A0A6DEF009B65B1 /* textTest.cpp */,
+				00F714FB0ACC056500453651 /* TextSpeedTest.cpp */,
+				000F5ED00B77BB82007BC854 /* shaderTest.cpp */,
+				0092A3610AD6EC13000FECBC /* cameraTest2.cpp */,
+				0077DCA50B2087C000ED5E84 /* textOnPathTest.cpp */,
+				00AB5FFF0A8267AE0038DE0A /* tilingTest.cpp */,
+				FEDCDA7309B892550042D964 /* masterList.cpp */,
+				FE21C73309537F3800D016FB /* animatorTest.h */,
+				FE33CAC4094F301100C4A640 /* animatorTest.cpp */,
+				32DBCF6D0370B57F00C91783 /* animatorTest_Prefix.pch */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		20286C2CFDCF999611CA2CEA /* Resources */ = {
+			isa = PBXGroup;
+			children = (
+				8D0C4E960486CD37000505A6 /* Info.plist */,
+				0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */,
+				02345980000FD03B11CA0E72 /* main.nib */,
+			);
+			name = Resources;
+			sourceTree = "<group>";
+		};
+		20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */ = {
+			isa = PBXGroup;
+			children = (
+				20286C33FDCF999611CA2CEA /* Carbon.framework */,
+				4A9504CAFFE6A41611CA0CBA /* CoreServices.framework */,
+				4A9504C8FFE6A3BC11CA0CBA /* ApplicationServices.framework */,
+			);
+			name = "External Frameworks and Libraries";
+			sourceTree = "<group>";
+		};
+		FE33C9DF094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA01094E2CC900C4A640 /* libports-mac.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9E2094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA04094E2CC900C4A640 /* libexpat.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9E5094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA07094E2CC900C4A640 /* libanimator.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9E8094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA0A094E2CC900C4A640 /* libgif.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9EB094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA0D094E2CC900C4A640 /* libjpeg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9EE094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA10094E2CC900C4A640 /* liblibpng.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9F1094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA13094E2CC900C4A640 /* libzlib.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9F4094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA16094E2CC900C4A640 /* libviews.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9F7094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA19094E2CC900C4A640 /* libfreetype.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9FA094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA1C094E2CC900C4A640 /* libports.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE33C9FD094E2CC900C4A640 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE33CA1F094E2CC900C4A640 /* libgraphics.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE3485940950D1EE003F0C3F /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE3485980950D1EE003F0C3F /* libsvg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		FE61323109B616A5004BB4B8 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE61323609B616A5004BB4B8 /* libcorecg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		8D0C4E890486CD37000505A6 /* animatorTest */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "animatorTest" */;
+			buildPhases = (
+				8D0C4E8C0486CD37000505A6 /* Resources */,
+				8D0C4E8F0486CD37000505A6 /* Sources */,
+				8D0C4E910486CD37000505A6 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				FE33CA21094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA23094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA25094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA27094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA29094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA2B094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA2D094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA2F094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA31094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA33094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE33CA35094E2CFD00C4A640 /* PBXTargetDependency */,
+				FE34859B0950D21C003F0C3F /* PBXTargetDependency */,
+				FE61324809B6191D004BB4B8 /* PBXTargetDependency */,
+			);
+			name = animatorTest;
+			productInstallPath = "$(HOME)/Applications";
+			productName = animatorTest;
+			productReference = 8D0C4E970486CD37000505A6 /* animatorTest.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		20286C28FDCF999611CA2CEA /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "animatorTest" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 20286C29FDCF999611CA2CEA /* animatorTest */;
+			projectDirPath = "";
+			projectReferences = (
+				{
+					ProductGroup = FE33C9E5094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9E4094E2CC900C4A640 /* animator.xcodeproj */;
+				},
+				{
+					ProductGroup = FE61323109B616A5004BB4B8 /* Products */;
+					ProjectRef = FE61323009B616A5004BB4B8 /* corecg.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9E2094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9E1094E2CC900C4A640 /* expat.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9F7094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9F6094E2CC900C4A640 /* freetype2.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9E8094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9E7094E2CC900C4A640 /* gif.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9FD094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9FC094E2CC900C4A640 /* graphics.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9EB094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9EA094E2CC900C4A640 /* jpeg.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9EE094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9ED094E2CC900C4A640 /* libpng.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9DF094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9DE094E2CC900C4A640 /* ports-mac.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9FA094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9F9094E2CC900C4A640 /* ports.xcodeproj */;
+				},
+				{
+					ProductGroup = FE3485940950D1EE003F0C3F /* Products */;
+					ProjectRef = FE3485930950D1EE003F0C3F /* svg.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9F4094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9F3094E2CC900C4A640 /* views.xcodeproj */;
+				},
+				{
+					ProductGroup = FE33C9F1094E2CC900C4A640 /* Products */;
+					ProjectRef = FE33C9F0094E2CC900C4A640 /* zlib.xcodeproj */;
+				},
+			);
+			projectRoot = "";
+			targets = (
+				8D0C4E890486CD37000505A6 /* animatorTest */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+		FE33CA01094E2CC900C4A640 /* libports-mac.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libports-mac.a";
+			remoteRef = FE33CA00094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA04094E2CC900C4A640 /* libexpat.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libexpat.a;
+			remoteRef = FE33CA03094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA07094E2CC900C4A640 /* libanimator.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libanimator.a;
+			remoteRef = FE33CA06094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA0A094E2CC900C4A640 /* libgif.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libgif.a;
+			remoteRef = FE33CA09094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA0D094E2CC900C4A640 /* libjpeg.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libjpeg.a;
+			remoteRef = FE33CA0C094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA10094E2CC900C4A640 /* liblibpng.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = liblibpng.a;
+			remoteRef = FE33CA0F094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA13094E2CC900C4A640 /* libzlib.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libzlib.a;
+			remoteRef = FE33CA12094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA16094E2CC900C4A640 /* libviews.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libviews.a;
+			remoteRef = FE33CA15094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA19094E2CC900C4A640 /* libfreetype.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libfreetype.a;
+			remoteRef = FE33CA18094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA1C094E2CC900C4A640 /* libports.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libports.a;
+			remoteRef = FE33CA1B094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE33CA1F094E2CC900C4A640 /* libgraphics.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libgraphics.a;
+			remoteRef = FE33CA1E094E2CC900C4A640 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE3485980950D1EE003F0C3F /* libsvg.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libsvg.a;
+			remoteRef = FE3485970950D1EE003F0C3F /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		FE61323609B616A5004BB4B8 /* libcorecg.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libcorecg.a;
+			remoteRef = FE61323509B616A5004BB4B8 /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+		8D0C4E8C0486CD37000505A6 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				8D0C4E8D0486CD37000505A6 /* InfoPlist.strings in Resources */,
+				8D0C4E8E0486CD37000505A6 /* main.nib in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		8D0C4E8F0486CD37000505A6 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FEBB00B00D7DD8D70027C5D6 /* CacheBuilder.cpp in Sources */,
+				FEBB00B10D7DD8D70027C5D6 /* CachedFrame.cpp in Sources */,
+				FEBB00B20D7DD8D70027C5D6 /* CachedHistory.cpp in Sources */,
+				FEBB00B30D7DD8D70027C5D6 /* CachedNode.cpp in Sources */,
+				FEBB00B40D7DD8D70027C5D6 /* CachedRoot.cpp in Sources */,
+				FEBB00B90D7DD8F20027C5D6 /* BrowserDebug.cpp in Sources */,
+				FEBB00C60D7DDA4A0027C5D6 /* animatorTest.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		FE33CA21094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = ports;
+			targetProxy = FE33CA20094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA23094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = views;
+			targetProxy = FE33CA22094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA25094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = libpng;
+			targetProxy = FE33CA24094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA27094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = gif;
+			targetProxy = FE33CA26094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA29094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = animator;
+			targetProxy = FE33CA28094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA2B094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = "ports-mac";
+			targetProxy = FE33CA2A094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA2D094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = graphics;
+			targetProxy = FE33CA2C094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA2F094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = freetype;
+			targetProxy = FE33CA2E094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA31094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = zlib;
+			targetProxy = FE33CA30094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA33094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = jpeg;
+			targetProxy = FE33CA32094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE33CA35094E2CFD00C4A640 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = expat;
+			targetProxy = FE33CA34094E2CFD00C4A640 /* PBXContainerItemProxy */;
+		};
+		FE34859B0950D21C003F0C3F /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = svg;
+			targetProxy = FE34859A0950D21C003F0C3F /* PBXContainerItemProxy */;
+		};
+		FE61324809B6191D004BB4B8 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			name = corecg;
+			targetProxy = FE61324709B6191D004BB4B8 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		02345980000FD03B11CA0E72 /* main.nib */ = {
+			isa = PBXVariantGroup;
+			children = (
+				1870340FFE93FCAF11CA0CD7 /* English */,
+			);
+			name = main.nib;
+			sourceTree = "<group>";
+		};
+		0867D6AAFE840B52C02AAC07 /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				0867D6ABFE840B52C02AAC07 /* English */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		C0E91AC608A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = stabs;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_FAST_OBJC_DISPATCH = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = animatorTest_Prefix.pch;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_DEBUG,
+					BROWSER_DEBUG,
+					DEBUG_NAV_UI,
+					ANDROID_CANVAS_IMPL,
+				);
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				PRODUCT_NAME = animatorTest;
+				SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		C0E91AC708A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = animatorTest_Prefix.pch;
+				INFOPLIST_FILE = Info.plist;
+				INSTALL_PATH = "$(HOME)/Applications";
+				PRODUCT_NAME = animatorTest;
+				WRAPPER_EXTENSION = app;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		C0E91ACA08A95435008D54AB /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_DEBUG,
+					PV_PRODUCT_SERVER,
+					BUILD_OMX_DEC_NODE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LIBRARY_SEARCH_PATHS = ../build/Debug;
+				LINK_WITH_STANDARD_LIBRARIES = YES;
+				OTHER_LDFLAGS = "";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				PRODUCT_NAME = animatorTest;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic;
+				USER_HEADER_SEARCH_PATHS = "../../../include/graphics ../../../include/corecg ../../../libs/WebKitLib/WebKit/JavaScriptCore ../../../libs/WebKitLib/WebKit/WebCore/platform/android ../../../libs/WebKitLib/WebKit/WebCore/platform/graphics ../../../libs/WebKitLib/WebKit/WebCore/platform/graphics/android ../../../tests/browser/focusNavigation";
+			};
+			name = Debug;
+		};
+		C0E91ACB08A95435008D54AB /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LIBRARY_SEARCH_PATHS = ../build/Release;
+				OTHER_LDFLAGS = "";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				PRODUCT_NAME = animatorTest;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				USER_HEADER_SEARCH_PATHS = "../../../include/graphics ../../../include/corecg ../../../libs/WebKitLib/WebKit/JavaScriptCore ../../../libs/WebKitLib/WebKit/WebCore/bridge/android ../../../libs/WebKitLib/WebKit/WebCore/platform/android ../../../libs/WebKitLib/WebKit/WebCore/platform/graphics ../../../libs/WebKitLib/WebKit/WebCore/rendering ../../../tests/browser/focusNavigation ../../../extlibs/pv/oscl/oscl/osclbase/src ../../../extlibs/pv/oscl/oscl/config/linux_nj ../../../extlibs/pv/oscl/oscl/config/shared ../../../extlibs/pv/codecs_v2/image/jpeg/dec/include ../../../extlibs/pv/oscl/oscl/osclmemory/src ../../../extlibs/pv/oscl/oscl/osclerror/src";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		C0E91AC508A95435008D54AB /* Build configuration list for PBXNativeTarget "animatorTest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91AC608A95435008D54AB /* Debug */,
+				C0E91AC708A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		C0E91AC908A95435008D54AB /* Build configuration list for PBXProject "animatorTest" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C0E91ACA08A95435008D54AB /* Debug */,
+				C0E91ACB08A95435008D54AB /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 20286C28FDCF999611CA2CEA /* Project object */;
+}
diff --git a/ide/xcode/animatorTest/animatorTest_Prefix.pch b/ide/xcode/animatorTest/animatorTest_Prefix.pch
new file mode 100644
index 0000000..39aee7e
--- /dev/null
+++ b/ide/xcode/animatorTest/animatorTest_Prefix.pch
@@ -0,0 +1,5 @@
+//
+// Prefix header for all source files of the 'animatorTest' target in the 'animatorTest' project.
+//
+
+#include <Carbon/Carbon.h>
diff --git a/ide/xcode/chipmunk.xcodeproj/project.pbxproj b/ide/xcode/chipmunk.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..d30ddcd
--- /dev/null
+++ b/ide/xcode/chipmunk.xcodeproj/project.pbxproj
@@ -0,0 +1,258 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		FE16E1510CE26D84006BB7E0 /* chipmunk.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1270CE26C3D006BB7E0 /* chipmunk.c */; };
+		FE16E1520CE26D86006BB7E0 /* cpArbiter.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E12A0CE26C3D006BB7E0 /* cpArbiter.c */; };
+		FE16E1530CE26D87006BB7E0 /* cpArray.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E12C0CE26C3D006BB7E0 /* cpArray.c */; };
+		FE16E1540CE26D88006BB7E0 /* cpBB.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E12E0CE26C3D006BB7E0 /* cpBB.c */; };
+		FE16E1550CE26D8A006BB7E0 /* cpBody.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1300CE26C3D006BB7E0 /* cpBody.c */; };
+		FE16E1560CE26D8B006BB7E0 /* cpCollision.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1320CE26C3D006BB7E0 /* cpCollision.c */; };
+		FE16E1570CE26D8C006BB7E0 /* cpHashSet.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1340CE26C3D006BB7E0 /* cpHashSet.c */; };
+		FE16E1580CE26D8F006BB7E0 /* cpJoint.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1360CE26C3D006BB7E0 /* cpJoint.c */; };
+		FE16E1590CE26D91006BB7E0 /* cpPolyShape.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1380CE26C3D006BB7E0 /* cpPolyShape.c */; };
+		FE16E15E0CE26D9E006BB7E0 /* cpShape.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E13A0CE26C3D006BB7E0 /* cpShape.c */; };
+		FE16E15F0CE26D9F006BB7E0 /* cpSpace.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E13C0CE26C3D006BB7E0 /* cpSpace.c */; };
+		FE16E1600CE26DA0006BB7E0 /* cpSpaceHash.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E13E0CE26C3D006BB7E0 /* cpSpaceHash.c */; };
+		FE16E1610CE26DA1006BB7E0 /* cpVect.c in Sources */ = {isa = PBXBuildFile; fileRef = FE16E1400CE26C3D006BB7E0 /* cpVect.c */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		FE16E1270CE26C3D006BB7E0 /* chipmunk.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = chipmunk.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/chipmunk.c"; sourceTree = "<absolute>"; };
+		FE16E1280CE26C3D006BB7E0 /* chipmunk.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = chipmunk.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/chipmunk.h"; sourceTree = "<absolute>"; };
+		FE16E1290CE26C3D006BB7E0 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = CMakeLists.txt; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/CMakeLists.txt"; sourceTree = "<absolute>"; };
+		FE16E12A0CE26C3D006BB7E0 /* cpArbiter.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpArbiter.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpArbiter.c"; sourceTree = "<absolute>"; };
+		FE16E12B0CE26C3D006BB7E0 /* cpArbiter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpArbiter.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpArbiter.h"; sourceTree = "<absolute>"; };
+		FE16E12C0CE26C3D006BB7E0 /* cpArray.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpArray.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpArray.c"; sourceTree = "<absolute>"; };
+		FE16E12D0CE26C3D006BB7E0 /* cpArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpArray.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpArray.h"; sourceTree = "<absolute>"; };
+		FE16E12E0CE26C3D006BB7E0 /* cpBB.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpBB.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpBB.c"; sourceTree = "<absolute>"; };
+		FE16E12F0CE26C3D006BB7E0 /* cpBB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpBB.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpBB.h"; sourceTree = "<absolute>"; };
+		FE16E1300CE26C3D006BB7E0 /* cpBody.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpBody.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpBody.c"; sourceTree = "<absolute>"; };
+		FE16E1310CE26C3D006BB7E0 /* cpBody.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpBody.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpBody.h"; sourceTree = "<absolute>"; };
+		FE16E1320CE26C3D006BB7E0 /* cpCollision.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpCollision.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpCollision.c"; sourceTree = "<absolute>"; };
+		FE16E1330CE26C3D006BB7E0 /* cpCollision.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpCollision.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpCollision.h"; sourceTree = "<absolute>"; };
+		FE16E1340CE26C3D006BB7E0 /* cpHashSet.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpHashSet.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpHashSet.c"; sourceTree = "<absolute>"; };
+		FE16E1350CE26C3D006BB7E0 /* cpHashSet.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpHashSet.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpHashSet.h"; sourceTree = "<absolute>"; };
+		FE16E1360CE26C3D006BB7E0 /* cpJoint.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpJoint.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpJoint.c"; sourceTree = "<absolute>"; };
+		FE16E1370CE26C3D006BB7E0 /* cpJoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpJoint.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpJoint.h"; sourceTree = "<absolute>"; };
+		FE16E1380CE26C3D006BB7E0 /* cpPolyShape.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpPolyShape.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpPolyShape.c"; sourceTree = "<absolute>"; };
+		FE16E1390CE26C3D006BB7E0 /* cpPolyShape.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpPolyShape.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpPolyShape.h"; sourceTree = "<absolute>"; };
+		FE16E13A0CE26C3D006BB7E0 /* cpShape.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpShape.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpShape.c"; sourceTree = "<absolute>"; };
+		FE16E13B0CE26C3D006BB7E0 /* cpShape.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpShape.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpShape.h"; sourceTree = "<absolute>"; };
+		FE16E13C0CE26C3D006BB7E0 /* cpSpace.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpSpace.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpSpace.c"; sourceTree = "<absolute>"; };
+		FE16E13D0CE26C3D006BB7E0 /* cpSpace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpSpace.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpSpace.h"; sourceTree = "<absolute>"; };
+		FE16E13E0CE26C3D006BB7E0 /* cpSpaceHash.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpSpaceHash.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpSpaceHash.c"; sourceTree = "<absolute>"; };
+		FE16E13F0CE26C3D006BB7E0 /* cpSpaceHash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpSpaceHash.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpSpaceHash.h"; sourceTree = "<absolute>"; };
+		FE16E1400CE26C3D006BB7E0 /* cpVect.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = cpVect.c; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpVect.c"; sourceTree = "<absolute>"; };
+		FE16E1410CE26C3D006BB7E0 /* cpVect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = cpVect.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/cpVect.h"; sourceTree = "<absolute>"; };
+		FE16E1420CE26C3D006BB7E0 /* prime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = prime.h; path = "/Users/caryclark/Desktop/Chipmunk-4.0.2/src/prime.h"; sourceTree = "<absolute>"; };
+		FE16E14C0CE26D61006BB7E0 /* libchipmunk.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libchipmunk.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		FE16E14A0CE26D61006BB7E0 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		FE16E11A0CE26B5D006BB7E0 = {
+			isa = PBXGroup;
+			children = (
+				FE16E1250CE26B6A006BB7E0 /* Sources */,
+				FE16E14D0CE26D61006BB7E0 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		FE16E1250CE26B6A006BB7E0 /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				FE16E1270CE26C3D006BB7E0 /* chipmunk.c */,
+				FE16E1280CE26C3D006BB7E0 /* chipmunk.h */,
+				FE16E1290CE26C3D006BB7E0 /* CMakeLists.txt */,
+				FE16E12A0CE26C3D006BB7E0 /* cpArbiter.c */,
+				FE16E12B0CE26C3D006BB7E0 /* cpArbiter.h */,
+				FE16E12C0CE26C3D006BB7E0 /* cpArray.c */,
+				FE16E12D0CE26C3D006BB7E0 /* cpArray.h */,
+				FE16E12E0CE26C3D006BB7E0 /* cpBB.c */,
+				FE16E12F0CE26C3D006BB7E0 /* cpBB.h */,
+				FE16E1300CE26C3D006BB7E0 /* cpBody.c */,
+				FE16E1310CE26C3D006BB7E0 /* cpBody.h */,
+				FE16E1320CE26C3D006BB7E0 /* cpCollision.c */,
+				FE16E1330CE26C3D006BB7E0 /* cpCollision.h */,
+				FE16E1340CE26C3D006BB7E0 /* cpHashSet.c */,
+				FE16E1350CE26C3D006BB7E0 /* cpHashSet.h */,
+				FE16E1360CE26C3D006BB7E0 /* cpJoint.c */,
+				FE16E1370CE26C3D006BB7E0 /* cpJoint.h */,
+				FE16E1380CE26C3D006BB7E0 /* cpPolyShape.c */,
+				FE16E1390CE26C3D006BB7E0 /* cpPolyShape.h */,
+				FE16E13A0CE26C3D006BB7E0 /* cpShape.c */,
+				FE16E13B0CE26C3D006BB7E0 /* cpShape.h */,
+				FE16E13C0CE26C3D006BB7E0 /* cpSpace.c */,
+				FE16E13D0CE26C3D006BB7E0 /* cpSpace.h */,
+				FE16E13E0CE26C3D006BB7E0 /* cpSpaceHash.c */,
+				FE16E13F0CE26C3D006BB7E0 /* cpSpaceHash.h */,
+				FE16E1400CE26C3D006BB7E0 /* cpVect.c */,
+				FE16E1410CE26C3D006BB7E0 /* cpVect.h */,
+				FE16E1420CE26C3D006BB7E0 /* prime.h */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		FE16E14D0CE26D61006BB7E0 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				FE16E14C0CE26D61006BB7E0 /* libchipmunk.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		FE16E1480CE26D61006BB7E0 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		FE16E14B0CE26D61006BB7E0 /* chipmunk */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = FE16E14E0CE26D61006BB7E0 /* Build configuration list for PBXNativeTarget "chipmunk" */;
+			buildPhases = (
+				FE16E1480CE26D61006BB7E0 /* Headers */,
+				FE16E1490CE26D61006BB7E0 /* Sources */,
+				FE16E14A0CE26D61006BB7E0 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = chipmunk;
+			productName = chipmunk;
+			productReference = FE16E14C0CE26D61006BB7E0 /* libchipmunk.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		FE16E11C0CE26B5D006BB7E0 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = FE16E11D0CE26B5D006BB7E0 /* Build configuration list for PBXProject "chipmunk" */;
+			hasScannedForEncodings = 0;
+			mainGroup = FE16E11A0CE26B5D006BB7E0;
+			productRefGroup = FE16E14D0CE26D61006BB7E0 /* Products */;
+			projectDirPath = "";
+			targets = (
+				FE16E14B0CE26D61006BB7E0 /* chipmunk */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		FE16E1490CE26D61006BB7E0 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE16E1510CE26D84006BB7E0 /* chipmunk.c in Sources */,
+				FE16E1520CE26D86006BB7E0 /* cpArbiter.c in Sources */,
+				FE16E1530CE26D87006BB7E0 /* cpArray.c in Sources */,
+				FE16E1540CE26D88006BB7E0 /* cpBB.c in Sources */,
+				FE16E1550CE26D8A006BB7E0 /* cpBody.c in Sources */,
+				FE16E1560CE26D8B006BB7E0 /* cpCollision.c in Sources */,
+				FE16E1570CE26D8C006BB7E0 /* cpHashSet.c in Sources */,
+				FE16E1580CE26D8F006BB7E0 /* cpJoint.c in Sources */,
+				FE16E1590CE26D91006BB7E0 /* cpPolyShape.c in Sources */,
+				FE16E15E0CE26D9E006BB7E0 /* cpShape.c in Sources */,
+				FE16E15F0CE26D9F006BB7E0 /* cpSpace.c in Sources */,
+				FE16E1600CE26DA0006BB7E0 /* cpSpaceHash.c in Sources */,
+				FE16E1610CE26DA1006BB7E0 /* cpVect.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		FE16E11E0CE26B5D006BB7E0 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+			};
+			name = Debug;
+		};
+		FE16E11F0CE26B5D006BB7E0 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+			};
+			name = Release;
+		};
+		FE16E14F0CE26D61006BB7E0 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PREBINDING = NO;
+				PRODUCT_NAME = chipmunk;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		FE16E1500CE26D61006BB7E0 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PREBINDING = NO;
+				PRODUCT_NAME = chipmunk;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		FE16E11D0CE26B5D006BB7E0 /* Build configuration list for PBXProject "chipmunk" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE16E11E0CE26B5D006BB7E0 /* Debug */,
+				FE16E11F0CE26B5D006BB7E0 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		FE16E14E0CE26D61006BB7E0 /* Build configuration list for PBXNativeTarget "chipmunk" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE16E14F0CE26D61006BB7E0 /* Debug */,
+				FE16E1500CE26D61006BB7E0 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = FE16E11C0CE26B5D006BB7E0 /* Project object */;
+}
diff --git a/ide/xcode/corecg.xcodeproj/project.pbxproj b/ide/xcode/corecg.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..c4ac10e
--- /dev/null
+++ b/ide/xcode/corecg.xcodeproj/project.pbxproj
@@ -0,0 +1,396 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		0026CE6809DC5A9E00D5B6BE /* SkBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0026CE6709DC5A9E00D5B6BE /* SkBuffer.cpp */; };
+		0026CE8E09DC5B1F00D5B6BE /* Sk64.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE7B09DC5B1F00D5B6BE /* Sk64.h */; };
+		0026CE8F09DC5B1F00D5B6BE /* SkBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE7C09DC5B1F00D5B6BE /* SkBuffer.h */; };
+		0026CE9009DC5B1F00D5B6BE /* SkEndian.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE7D09DC5B1F00D5B6BE /* SkEndian.h */; };
+		0026CE9109DC5B1F00D5B6BE /* SkFDot6.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE7E09DC5B1F00D5B6BE /* SkFDot6.h */; };
+		0026CE9209DC5B1F00D5B6BE /* SkFixed.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE7F09DC5B1F00D5B6BE /* SkFixed.h */; };
+		0026CE9309DC5B1F00D5B6BE /* SkFloatingPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8009DC5B1F00D5B6BE /* SkFloatingPoint.h */; };
+		0026CE9409DC5B1F00D5B6BE /* SkMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8109DC5B1F00D5B6BE /* SkMath.h */; };
+		0026CE9509DC5B1F00D5B6BE /* SkMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8209DC5B1F00D5B6BE /* SkMatrix.h */; };
+		0026CE9609DC5B1F00D5B6BE /* SkPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8309DC5B1F00D5B6BE /* SkPoint.h */; };
+		0026CE9709DC5B1F00D5B6BE /* SkPostConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8409DC5B1F00D5B6BE /* SkPostConfig.h */; };
+		0026CE9809DC5B1F00D5B6BE /* SkPreConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8509DC5B1F00D5B6BE /* SkPreConfig.h */; };
+		0026CE9909DC5B1F00D5B6BE /* SkRandom.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8609DC5B1F00D5B6BE /* SkRandom.h */; };
+		0026CE9A09DC5B1F00D5B6BE /* SkRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8709DC5B1F00D5B6BE /* SkRect.h */; };
+		0026CE9B09DC5B1F00D5B6BE /* SkRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8809DC5B1F00D5B6BE /* SkRegion.h */; };
+		0026CE9C09DC5B1F00D5B6BE /* SkScalar.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8909DC5B1F00D5B6BE /* SkScalar.h */; };
+		0026CE9D09DC5B1F00D5B6BE /* SkTemplates.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8A09DC5B1F00D5B6BE /* SkTemplates.h */; };
+		0026CE9E09DC5B1F00D5B6BE /* SkThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8B09DC5B1F00D5B6BE /* SkThread.h */; };
+		0026CE9F09DC5B1F00D5B6BE /* SkTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8C09DC5B1F00D5B6BE /* SkTypes.h */; };
+		0026CEA009DC5B1F00D5B6BE /* SkUserConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 0026CE8D09DC5B1F00D5B6BE /* SkUserConfig.h */; };
+		0038A95509DD931A00A82F6E /* SkChunkAlloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 0038A95409DD931A00A82F6E /* SkChunkAlloc.h */; };
+		0038A95709DD932D00A82F6E /* SkChunkAlloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0038A95609DD932D00A82F6E /* SkChunkAlloc.cpp */; };
+		003BA8560AD69605002B4C6C /* SkPerspIter.h in Headers */ = {isa = PBXBuildFile; fileRef = 003BA8550AD69605002B4C6C /* SkPerspIter.h */; };
+		005017980DF5D77400A63A26 /* SkFloatBits.h in Headers */ = {isa = PBXBuildFile; fileRef = 005017970DF5D77400A63A26 /* SkFloatBits.h */; };
+		0050180A0DF61B8E00A63A26 /* SkFloatBits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005018090DF61B8E00A63A26 /* SkFloatBits.cpp */; };
+		00927DBE0ADF13FD000A366E /* SkInterpolator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00927DBD0ADF13FD000A366E /* SkInterpolator.cpp */; };
+		00927DC00ADF1411000A366E /* SkInterpolator.h in Headers */ = {isa = PBXBuildFile; fileRef = 00927DBF0ADF1411000A366E /* SkInterpolator.h */; };
+		00927DC30ADF1426000A366E /* SkThread_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = 00927DC10ADF1426000A366E /* SkThread_platform.h */; };
+		00927DC40ADF1426000A366E /* SkTSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 00927DC20ADF1426000A366E /* SkTSearch.h */; };
+		FE61321509B60E66004BB4B8 /* Sk64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61320809B60E66004BB4B8 /* Sk64.cpp */; };
+		FE61321609B60E66004BB4B8 /* SkCordic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61320909B60E66004BB4B8 /* SkCordic.cpp */; };
+		FE61321709B60E66004BB4B8 /* SkCordic.h in Headers */ = {isa = PBXBuildFile; fileRef = FE61320A09B60E66004BB4B8 /* SkCordic.h */; };
+		FE61321809B60E66004BB4B8 /* SkFloat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61320B09B60E66004BB4B8 /* SkFloat.cpp */; };
+		FE61321909B60E66004BB4B8 /* SkFloat.h in Headers */ = {isa = PBXBuildFile; fileRef = FE61320C09B60E66004BB4B8 /* SkFloat.h */; };
+		FE61321B09B60E66004BB4B8 /* SkMath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61320E09B60E66004BB4B8 /* SkMath.cpp */; };
+		FE61321C09B60E66004BB4B8 /* SkMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61320F09B60E66004BB4B8 /* SkMatrix.cpp */; };
+		FE61321D09B60E66004BB4B8 /* SkPoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61321009B60E66004BB4B8 /* SkPoint.cpp */; };
+		FE61321E09B60E66004BB4B8 /* SkRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61321109B60E66004BB4B8 /* SkRect.cpp */; };
+		FE61321F09B60E66004BB4B8 /* SkRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE61321209B60E66004BB4B8 /* SkRegion.cpp */; };
+		FE61322009B60E66004BB4B8 /* SkSinTable.h in Headers */ = {isa = PBXBuildFile; fileRef = FE61321309B60E66004BB4B8 /* SkSinTable.h */; };
+		FE61322109B60E66004BB4B8 /* SkTSort.h in Headers */ = {isa = PBXBuildFile; fileRef = FE61321409B60E66004BB4B8 /* SkTSort.h */; };
+		FEACF21E09E460DF00D0C2E2 /* SkDebug_stdio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEACF21A09E460DF00D0C2E2 /* SkDebug_stdio.cpp */; };
+		FEACF21F09E460DF00D0C2E2 /* SkDebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEACF21B09E460DF00D0C2E2 /* SkDebug.cpp */; };
+		FEACF22009E460DF00D0C2E2 /* SkMemory_stdlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEACF21C09E460DF00D0C2E2 /* SkMemory_stdlib.cpp */; };
+		FEACF22109E460DF00D0C2E2 /* SkRegionPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = FEACF21D09E460DF00D0C2E2 /* SkRegionPriv.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		0026CE6709DC5A9E00D5B6BE /* SkBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBuffer.cpp; path = ../../libs/corecg/SkBuffer.cpp; sourceTree = SOURCE_ROOT; };
+		0026CE7B09DC5B1F00D5B6BE /* Sk64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Sk64.h; path = ../../include/corecg/Sk64.h; sourceTree = SOURCE_ROOT; };
+		0026CE7C09DC5B1F00D5B6BE /* SkBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBuffer.h; path = ../../include/corecg/SkBuffer.h; sourceTree = SOURCE_ROOT; };
+		0026CE7D09DC5B1F00D5B6BE /* SkEndian.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkEndian.h; path = ../../include/corecg/SkEndian.h; sourceTree = SOURCE_ROOT; };
+		0026CE7E09DC5B1F00D5B6BE /* SkFDot6.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkFDot6.h; path = ../../include/corecg/SkFDot6.h; sourceTree = SOURCE_ROOT; };
+		0026CE7F09DC5B1F00D5B6BE /* SkFixed.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkFixed.h; path = ../../include/corecg/SkFixed.h; sourceTree = SOURCE_ROOT; };
+		0026CE8009DC5B1F00D5B6BE /* SkFloatingPoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkFloatingPoint.h; path = ../../include/corecg/SkFloatingPoint.h; sourceTree = SOURCE_ROOT; };
+		0026CE8109DC5B1F00D5B6BE /* SkMath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkMath.h; path = ../../include/corecg/SkMath.h; sourceTree = SOURCE_ROOT; };
+		0026CE8209DC5B1F00D5B6BE /* SkMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkMatrix.h; path = ../../include/corecg/SkMatrix.h; sourceTree = SOURCE_ROOT; };
+		0026CE8309DC5B1F00D5B6BE /* SkPoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPoint.h; path = ../../include/corecg/SkPoint.h; sourceTree = SOURCE_ROOT; };
+		0026CE8409DC5B1F00D5B6BE /* SkPostConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPostConfig.h; path = ../../include/corecg/SkPostConfig.h; sourceTree = SOURCE_ROOT; };
+		0026CE8509DC5B1F00D5B6BE /* SkPreConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPreConfig.h; path = ../../include/corecg/SkPreConfig.h; sourceTree = SOURCE_ROOT; };
+		0026CE8609DC5B1F00D5B6BE /* SkRandom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkRandom.h; path = ../../include/corecg/SkRandom.h; sourceTree = SOURCE_ROOT; };
+		0026CE8709DC5B1F00D5B6BE /* SkRect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkRect.h; path = ../../include/corecg/SkRect.h; sourceTree = SOURCE_ROOT; };
+		0026CE8809DC5B1F00D5B6BE /* SkRegion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkRegion.h; path = ../../include/corecg/SkRegion.h; sourceTree = SOURCE_ROOT; };
+		0026CE8909DC5B1F00D5B6BE /* SkScalar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScalar.h; path = ../../include/corecg/SkScalar.h; sourceTree = SOURCE_ROOT; };
+		0026CE8A09DC5B1F00D5B6BE /* SkTemplates.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTemplates.h; path = ../../include/corecg/SkTemplates.h; sourceTree = SOURCE_ROOT; };
+		0026CE8B09DC5B1F00D5B6BE /* SkThread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkThread.h; path = ../../include/corecg/SkThread.h; sourceTree = SOURCE_ROOT; };
+		0026CE8C09DC5B1F00D5B6BE /* SkTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTypes.h; path = ../../include/corecg/SkTypes.h; sourceTree = SOURCE_ROOT; };
+		0026CE8D09DC5B1F00D5B6BE /* SkUserConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkUserConfig.h; path = ../../include/corecg/SkUserConfig.h; sourceTree = SOURCE_ROOT; };
+		0038A95409DD931A00A82F6E /* SkChunkAlloc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkChunkAlloc.h; path = ../../include/corecg/SkChunkAlloc.h; sourceTree = SOURCE_ROOT; };
+		0038A95609DD932D00A82F6E /* SkChunkAlloc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkChunkAlloc.cpp; path = ../../libs/corecg/SkChunkAlloc.cpp; sourceTree = SOURCE_ROOT; };
+		003BA8550AD69605002B4C6C /* SkPerspIter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkPerspIter.h; path = ../../include/corecg/SkPerspIter.h; sourceTree = SOURCE_ROOT; };
+		005017970DF5D77400A63A26 /* SkFloatBits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkFloatBits.h; path = ../../include/corecg/SkFloatBits.h; sourceTree = SOURCE_ROOT; };
+		005018090DF61B8E00A63A26 /* SkFloatBits.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFloatBits.cpp; path = ../../libs/corecg/SkFloatBits.cpp; sourceTree = SOURCE_ROOT; };
+		00927DBD0ADF13FD000A366E /* SkInterpolator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkInterpolator.cpp; path = ../../libs/corecg/SkInterpolator.cpp; sourceTree = SOURCE_ROOT; };
+		00927DBF0ADF1411000A366E /* SkInterpolator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkInterpolator.h; path = ../../include/corecg/SkInterpolator.h; sourceTree = SOURCE_ROOT; };
+		00927DC10ADF1426000A366E /* SkThread_platform.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkThread_platform.h; path = ../../include/corecg/SkThread_platform.h; sourceTree = SOURCE_ROOT; };
+		00927DC20ADF1426000A366E /* SkTSearch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTSearch.h; path = ../../include/corecg/SkTSearch.h; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libcorecg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libcorecg.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE61320809B60E66004BB4B8 /* Sk64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Sk64.cpp; path = ../../libs/corecg/Sk64.cpp; sourceTree = SOURCE_ROOT; };
+		FE61320909B60E66004BB4B8 /* SkCordic.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkCordic.cpp; path = ../../libs/corecg/SkCordic.cpp; sourceTree = SOURCE_ROOT; };
+		FE61320A09B60E66004BB4B8 /* SkCordic.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkCordic.h; path = ../../libs/corecg/SkCordic.h; sourceTree = SOURCE_ROOT; };
+		FE61320B09B60E66004BB4B8 /* SkFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFloat.cpp; path = ../../libs/corecg/SkFloat.cpp; sourceTree = SOURCE_ROOT; };
+		FE61320C09B60E66004BB4B8 /* SkFloat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkFloat.h; path = ../../libs/corecg/SkFloat.h; sourceTree = SOURCE_ROOT; };
+		FE61320E09B60E66004BB4B8 /* SkMath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMath.cpp; path = ../../libs/corecg/SkMath.cpp; sourceTree = SOURCE_ROOT; };
+		FE61320F09B60E66004BB4B8 /* SkMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMatrix.cpp; path = ../../libs/corecg/SkMatrix.cpp; sourceTree = SOURCE_ROOT; };
+		FE61321009B60E66004BB4B8 /* SkPoint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPoint.cpp; path = ../../libs/corecg/SkPoint.cpp; sourceTree = SOURCE_ROOT; };
+		FE61321109B60E66004BB4B8 /* SkRect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkRect.cpp; path = ../../libs/corecg/SkRect.cpp; sourceTree = SOURCE_ROOT; };
+		FE61321209B60E66004BB4B8 /* SkRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkRegion.cpp; path = ../../libs/corecg/SkRegion.cpp; sourceTree = SOURCE_ROOT; };
+		FE61321309B60E66004BB4B8 /* SkSinTable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkSinTable.h; path = ../../libs/corecg/SkSinTable.h; sourceTree = SOURCE_ROOT; };
+		FE61321409B60E66004BB4B8 /* SkTSort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTSort.h; path = ../../libs/corecg/SkTSort.h; sourceTree = SOURCE_ROOT; };
+		FEACF21A09E460DF00D0C2E2 /* SkDebug_stdio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDebug_stdio.cpp; path = ../../libs/corecg/SkDebug_stdio.cpp; sourceTree = SOURCE_ROOT; };
+		FEACF21B09E460DF00D0C2E2 /* SkDebug.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDebug.cpp; path = ../../libs/corecg/SkDebug.cpp; sourceTree = SOURCE_ROOT; };
+		FEACF21C09E460DF00D0C2E2 /* SkMemory_stdlib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMemory_stdlib.cpp; path = ../../libs/corecg/SkMemory_stdlib.cpp; sourceTree = SOURCE_ROOT; };
+		FEACF21D09E460DF00D0C2E2 /* SkRegionPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkRegionPriv.h; path = ../../libs/corecg/SkRegionPriv.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		0026CE7A09DC5B0600D5B6BE /* Include */ = {
+			isa = PBXGroup;
+			children = (
+				005017970DF5D77400A63A26 /* SkFloatBits.h */,
+				00927DC10ADF1426000A366E /* SkThread_platform.h */,
+				00927DC20ADF1426000A366E /* SkTSearch.h */,
+				00927DBF0ADF1411000A366E /* SkInterpolator.h */,
+				003BA8550AD69605002B4C6C /* SkPerspIter.h */,
+				0038A95409DD931A00A82F6E /* SkChunkAlloc.h */,
+				0026CE7B09DC5B1F00D5B6BE /* Sk64.h */,
+				0026CE7C09DC5B1F00D5B6BE /* SkBuffer.h */,
+				FE61320A09B60E66004BB4B8 /* SkCordic.h */,
+				0026CE7D09DC5B1F00D5B6BE /* SkEndian.h */,
+				0026CE7E09DC5B1F00D5B6BE /* SkFDot6.h */,
+				0026CE7F09DC5B1F00D5B6BE /* SkFixed.h */,
+				FE61320C09B60E66004BB4B8 /* SkFloat.h */,
+				0026CE8009DC5B1F00D5B6BE /* SkFloatingPoint.h */,
+				0026CE8109DC5B1F00D5B6BE /* SkMath.h */,
+				0026CE8209DC5B1F00D5B6BE /* SkMatrix.h */,
+				0026CE8309DC5B1F00D5B6BE /* SkPoint.h */,
+				0026CE8409DC5B1F00D5B6BE /* SkPostConfig.h */,
+				0026CE8509DC5B1F00D5B6BE /* SkPreConfig.h */,
+				0026CE8609DC5B1F00D5B6BE /* SkRandom.h */,
+				0026CE8709DC5B1F00D5B6BE /* SkRect.h */,
+				0026CE8809DC5B1F00D5B6BE /* SkRegion.h */,
+				FEACF21D09E460DF00D0C2E2 /* SkRegionPriv.h */,
+				0026CE8909DC5B1F00D5B6BE /* SkScalar.h */,
+				FE61321309B60E66004BB4B8 /* SkSinTable.h */,
+				FE61321409B60E66004BB4B8 /* SkTSort.h */,
+				0026CE8A09DC5B1F00D5B6BE /* SkTemplates.h */,
+				0026CE8B09DC5B1F00D5B6BE /* SkThread.h */,
+				0026CE8C09DC5B1F00D5B6BE /* SkTypes.h */,
+				0026CE8D09DC5B1F00D5B6BE /* SkUserConfig.h */,
+			);
+			name = Include;
+			sourceTree = "<group>";
+		};
+		08FB7794FE84155DC02AAC07 /* corecg */ = {
+			isa = PBXGroup;
+			children = (
+				0026CE7A09DC5B0600D5B6BE /* Include */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = corecg;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				005018090DF61B8E00A63A26 /* SkFloatBits.cpp */,
+				00927DBD0ADF13FD000A366E /* SkInterpolator.cpp */,
+				FE61320809B60E66004BB4B8 /* Sk64.cpp */,
+				0026CE6709DC5A9E00D5B6BE /* SkBuffer.cpp */,
+				0038A95609DD932D00A82F6E /* SkChunkAlloc.cpp */,
+				FE61320909B60E66004BB4B8 /* SkCordic.cpp */,
+				FEACF21A09E460DF00D0C2E2 /* SkDebug_stdio.cpp */,
+				FEACF21B09E460DF00D0C2E2 /* SkDebug.cpp */,
+				FE61320B09B60E66004BB4B8 /* SkFloat.cpp */,
+				FE61320E09B60E66004BB4B8 /* SkMath.cpp */,
+				FE61320F09B60E66004BB4B8 /* SkMatrix.cpp */,
+				FEACF21C09E460DF00D0C2E2 /* SkMemory_stdlib.cpp */,
+				FE61321009B60E66004BB4B8 /* SkPoint.cpp */,
+				FE61321109B60E66004BB4B8 /* SkRect.cpp */,
+				FE61321209B60E66004BB4B8 /* SkRegion.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libcorecg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE61321709B60E66004BB4B8 /* SkCordic.h in Headers */,
+				FE61321909B60E66004BB4B8 /* SkFloat.h in Headers */,
+				FE61322009B60E66004BB4B8 /* SkSinTable.h in Headers */,
+				FE61322109B60E66004BB4B8 /* SkTSort.h in Headers */,
+				0026CE8E09DC5B1F00D5B6BE /* Sk64.h in Headers */,
+				0026CE8F09DC5B1F00D5B6BE /* SkBuffer.h in Headers */,
+				0026CE9009DC5B1F00D5B6BE /* SkEndian.h in Headers */,
+				0026CE9109DC5B1F00D5B6BE /* SkFDot6.h in Headers */,
+				0026CE9209DC5B1F00D5B6BE /* SkFixed.h in Headers */,
+				0026CE9309DC5B1F00D5B6BE /* SkFloatingPoint.h in Headers */,
+				0026CE9409DC5B1F00D5B6BE /* SkMath.h in Headers */,
+				0026CE9509DC5B1F00D5B6BE /* SkMatrix.h in Headers */,
+				0026CE9609DC5B1F00D5B6BE /* SkPoint.h in Headers */,
+				0026CE9709DC5B1F00D5B6BE /* SkPostConfig.h in Headers */,
+				0026CE9809DC5B1F00D5B6BE /* SkPreConfig.h in Headers */,
+				0026CE9909DC5B1F00D5B6BE /* SkRandom.h in Headers */,
+				0026CE9A09DC5B1F00D5B6BE /* SkRect.h in Headers */,
+				0026CE9B09DC5B1F00D5B6BE /* SkRegion.h in Headers */,
+				0026CE9C09DC5B1F00D5B6BE /* SkScalar.h in Headers */,
+				0026CE9D09DC5B1F00D5B6BE /* SkTemplates.h in Headers */,
+				0026CE9E09DC5B1F00D5B6BE /* SkThread.h in Headers */,
+				0026CE9F09DC5B1F00D5B6BE /* SkTypes.h in Headers */,
+				0026CEA009DC5B1F00D5B6BE /* SkUserConfig.h in Headers */,
+				0038A95509DD931A00A82F6E /* SkChunkAlloc.h in Headers */,
+				FEACF22109E460DF00D0C2E2 /* SkRegionPriv.h in Headers */,
+				003BA8560AD69605002B4C6C /* SkPerspIter.h in Headers */,
+				00927DC00ADF1411000A366E /* SkInterpolator.h in Headers */,
+				00927DC30ADF1426000A366E /* SkThread_platform.h in Headers */,
+				00927DC40ADF1426000A366E /* SkTSearch.h in Headers */,
+				005017980DF5D77400A63A26 /* SkFloatBits.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* corecg */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "corecg" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = corecg;
+			productName = corecg;
+			productReference = D2AAC046055464E500DB518D /* libcorecg.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "corecg" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* corecg */;
+			projectDirPath = "";
+			projectRoot = ../..;
+			targets = (
+				D2AAC045055464E500DB518D /* corecg */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE61321509B60E66004BB4B8 /* Sk64.cpp in Sources */,
+				FE61321609B60E66004BB4B8 /* SkCordic.cpp in Sources */,
+				FE61321809B60E66004BB4B8 /* SkFloat.cpp in Sources */,
+				FE61321B09B60E66004BB4B8 /* SkMath.cpp in Sources */,
+				FE61321C09B60E66004BB4B8 /* SkMatrix.cpp in Sources */,
+				FE61321D09B60E66004BB4B8 /* SkPoint.cpp in Sources */,
+				FE61321E09B60E66004BB4B8 /* SkRect.cpp in Sources */,
+				FE61321F09B60E66004BB4B8 /* SkRegion.cpp in Sources */,
+				0026CE6809DC5A9E00D5B6BE /* SkBuffer.cpp in Sources */,
+				0038A95709DD932D00A82F6E /* SkChunkAlloc.cpp in Sources */,
+				FEACF21E09E460DF00D0C2E2 /* SkDebug_stdio.cpp in Sources */,
+				FEACF21F09E460DF00D0C2E2 /* SkDebug.cpp in Sources */,
+				FEACF22009E460DF00D0C2E2 /* SkMemory_stdlib.cpp in Sources */,
+				00927DBE0ADF13FD000A366E /* SkInterpolator.cpp in Sources */,
+				0050180A0DF61B8E00A63A26 /* SkFloatBits.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = corecg;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = (
+					ppc,
+					i386,
+				);
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = corecg;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/skia ";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/skia ";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "corecg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "corecg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/expat.xcodeproj/project.pbxproj b/ide/xcode/expat.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..afc3d85
--- /dev/null
+++ b/ide/xcode/expat.xcodeproj/project.pbxproj
@@ -0,0 +1,256 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		0002E9ED0BCE7EA3000C5903 /* SkXMLPullParser_expat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0002E9EC0BCE7EA3000C5903 /* SkXMLPullParser_expat.cpp */; };
+		00AA4D270BD3A78900B9D27D /* SkXMLPullParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00AA4D260BD3A78900B9D27D /* SkXMLPullParser.cpp */; };
+		FE33C881094DE14B00C4A640 /* SkXMLParser_expat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE33C880094DE14B00C4A640 /* SkXMLParser_expat.cpp */; };
+		FEDCE3DD09CEF35D0042D964 /* xmlparse.c in Sources */ = {isa = PBXBuildFile; fileRef = FEDCE3DA09CEF35D0042D964 /* xmlparse.c */; };
+		FEDCE3DE09CEF35D0042D964 /* xmlrole.c in Sources */ = {isa = PBXBuildFile; fileRef = FEDCE3DB09CEF35D0042D964 /* xmlrole.c */; };
+		FEDCE3DF09CEF35D0042D964 /* xmlrole.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDCE3DC09CEF35D0042D964 /* xmlrole.h */; };
+		FEDCE3E309CEF3830042D964 /* xmltok.c in Sources */ = {isa = PBXBuildFile; fileRef = FEDCE3E109CEF3830042D964 /* xmltok.c */; };
+		FEDCE3E409CEF3830042D964 /* xmltok.h in Headers */ = {isa = PBXBuildFile; fileRef = FEDCE3E209CEF3830042D964 /* xmltok.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		0002E9EC0BCE7EA3000C5903 /* SkXMLPullParser_expat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXMLPullParser_expat.cpp; path = ../../libs/graphics/ports/SkXMLPullParser_expat.cpp; sourceTree = SOURCE_ROOT; };
+		00AA4D260BD3A78900B9D27D /* SkXMLPullParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXMLPullParser.cpp; path = ../../libs/graphics/xml/SkXMLPullParser.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libexpat.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libexpat.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE33C880094DE14B00C4A640 /* SkXMLParser_expat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXMLParser_expat.cpp; path = ../../libs/graphics/ports/SkXMLParser_expat.cpp; sourceTree = SOURCE_ROOT; };
+		FEDCE3DA09CEF35D0042D964 /* xmlparse.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xmlparse.c; path = "../../extlibs/expat-2.0.0/lib/xmlparse.c"; sourceTree = SOURCE_ROOT; };
+		FEDCE3DB09CEF35D0042D964 /* xmlrole.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xmlrole.c; path = "../../extlibs/expat-2.0.0/lib/xmlrole.c"; sourceTree = SOURCE_ROOT; };
+		FEDCE3DC09CEF35D0042D964 /* xmlrole.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xmlrole.h; path = "../../extlibs/expat-2.0.0/lib/xmlrole.h"; sourceTree = SOURCE_ROOT; };
+		FEDCE3E109CEF3830042D964 /* xmltok.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xmltok.c; path = "../../extlibs/expat-2.0.0/lib/xmltok.c"; sourceTree = SOURCE_ROOT; };
+		FEDCE3E209CEF3830042D964 /* xmltok.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xmltok.h; path = "../../extlibs/expat-2.0.0/lib/xmltok.h"; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* expat */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = expat;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				00AA4D260BD3A78900B9D27D /* SkXMLPullParser.cpp */,
+				0002E9EC0BCE7EA3000C5903 /* SkXMLPullParser_expat.cpp */,
+				FEDCE3E109CEF3830042D964 /* xmltok.c */,
+				FEDCE3DA09CEF35D0042D964 /* xmlparse.c */,
+				FEDCE3E209CEF3830042D964 /* xmltok.h */,
+				FEDCE3DC09CEF35D0042D964 /* xmlrole.h */,
+				FEDCE3DB09CEF35D0042D964 /* xmlrole.c */,
+				FE33C880094DE14B00C4A640 /* SkXMLParser_expat.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libexpat.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FEDCE3DF09CEF35D0042D964 /* xmlrole.h in Headers */,
+				FEDCE3E409CEF3830042D964 /* xmltok.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* expat */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "expat" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = expat;
+			productName = expat;
+			productReference = D2AAC046055464E500DB518D /* libexpat.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "expat" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* expat */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* expat */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE33C881094DE14B00C4A640 /* SkXMLParser_expat.cpp in Sources */,
+				FEDCE3DD09CEF35D0042D964 /* xmlparse.c in Sources */,
+				FEDCE3DE09CEF35D0042D964 /* xmlrole.c in Sources */,
+				FEDCE3E309CEF3830042D964 /* xmltok.c in Sources */,
+				0002E9ED0BCE7EA3000C5903 /* SkXMLPullParser_expat.cpp in Sources */,
+				00AA4D270BD3A78900B9D27D /* SkXMLPullParser.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = expat;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					MACOS_CLASSIC,
+					XML_STATIC,
+					SK_RELEASE,
+				);
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = expat;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					MACOS_CLASSIC,
+					XML_STATIC,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../extlibs/expat-2.0.0/lib ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					MACOS_CLASSIC,
+					XML_STATIC,
+					SK_RELEASE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../extlibs/expat-2.0.0/lib ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "expat" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "expat" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/freetype2.xcodeproj/project.pbxproj b/ide/xcode/freetype2.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..6635d72
--- /dev/null
+++ b/ide/xcode/freetype2.xcodeproj/project.pbxproj
@@ -0,0 +1,454 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		003A0F710E0BE7DF00136848 /* ftadvanc.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F560E0BE7DF00136848 /* ftadvanc.c */; };
+		003A0F720E0BE7DF00136848 /* ftapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F570E0BE7DF00136848 /* ftapi.c */; };
+		003A0F730E0BE7DF00136848 /* ftbase.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F580E0BE7DF00136848 /* ftbase.c */; };
+		003A0F740E0BE7DF00136848 /* ftbbox.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F590E0BE7DF00136848 /* ftbbox.c */; };
+		003A0F750E0BE7DF00136848 /* ftbitmap.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F5A0E0BE7DF00136848 /* ftbitmap.c */; };
+		003A0F760E0BE7DF00136848 /* ftcalc.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F5B0E0BE7DF00136848 /* ftcalc.c */; };
+		003A0F770E0BE7DF00136848 /* ftdbgmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F5C0E0BE7DF00136848 /* ftdbgmem.c */; };
+		003A0F780E0BE7DF00136848 /* ftdebug.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F5D0E0BE7DF00136848 /* ftdebug.c */; };
+		003A0F790E0BE7DF00136848 /* ftgasp.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F5E0E0BE7DF00136848 /* ftgasp.c */; };
+		003A0F7A0E0BE7DF00136848 /* ftgloadr.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F5F0E0BE7DF00136848 /* ftgloadr.c */; };
+		003A0F7B0E0BE7DF00136848 /* ftglyph.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F600E0BE7DF00136848 /* ftglyph.c */; };
+		003A0F7C0E0BE7DF00136848 /* ftinit.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F610E0BE7DF00136848 /* ftinit.c */; };
+		003A0F7D0E0BE7DF00136848 /* ftlcdfil.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F620E0BE7DF00136848 /* ftlcdfil.c */; };
+		003A0F7E0E0BE7DF00136848 /* ftmm.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F630E0BE7DF00136848 /* ftmm.c */; };
+		003A0F7F0E0BE7DF00136848 /* ftnames.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F640E0BE7DF00136848 /* ftnames.c */; };
+		003A0F800E0BE7DF00136848 /* ftobjs.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F650E0BE7DF00136848 /* ftobjs.c */; };
+		003A0F810E0BE7DF00136848 /* ftoutln.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F660E0BE7DF00136848 /* ftoutln.c */; };
+		003A0F820E0BE7DF00136848 /* ftpatent.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F670E0BE7DF00136848 /* ftpatent.c */; };
+		003A0F830E0BE7DF00136848 /* ftrfork.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F680E0BE7DF00136848 /* ftrfork.c */; };
+		003A0F840E0BE7DF00136848 /* ftstream.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F690E0BE7DF00136848 /* ftstream.c */; };
+		003A0F850E0BE7DF00136848 /* ftstroke.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F6A0E0BE7DF00136848 /* ftstroke.c */; };
+		003A0F860E0BE7DF00136848 /* ftsynth.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F6B0E0BE7DF00136848 /* ftsynth.c */; };
+		003A0F870E0BE7DF00136848 /* ftsystem.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F6C0E0BE7DF00136848 /* ftsystem.c */; };
+		003A0F880E0BE7DF00136848 /* fttrigon.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F6D0E0BE7DF00136848 /* fttrigon.c */; };
+		003A0F890E0BE7DF00136848 /* ftutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F6E0E0BE7DF00136848 /* ftutil.c */; };
+		003A0F8A0E0BE7DF00136848 /* ftwinfnt.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F6F0E0BE7DF00136848 /* ftwinfnt.c */; };
+		003A0F8B0E0BE7DF00136848 /* ftxf86.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F700E0BE7DF00136848 /* ftxf86.c */; };
+		003A0F8D0E0BE80000136848 /* raster.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F8C0E0BE80000136848 /* raster.c */; };
+		003A0F8F0E0BE81800136848 /* sfnt.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F8E0E0BE81800136848 /* sfnt.c */; };
+		003A0F910E0BE83C00136848 /* smooth.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F900E0BE83C00136848 /* smooth.c */; };
+		003A0F930E0BE85600136848 /* autofit.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F920E0BE85600136848 /* autofit.c */; };
+		003A0F950E0BE86E00136848 /* truetype.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F940E0BE86E00136848 /* truetype.c */; };
+		003A0F970E0BE88300136848 /* cff.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F960E0BE88300136848 /* cff.c */; };
+		003A0F990E0BE89B00136848 /* psaux.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F980E0BE89B00136848 /* psaux.c */; };
+		003A0F9B0E0BE8B400136848 /* psnames.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0F9A0E0BE8B400136848 /* psnames.c */; };
+		003A0FAB0E0BE8C700136848 /* pshinter.c in Sources */ = {isa = PBXBuildFile; fileRef = 003A0FA10E0BE8C700136848 /* pshinter.c */; };
+		FE6C75540944ED8500568256 /* SkFontHost_FreeType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE6C75530944ED8500568256 /* SkFontHost_FreeType.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		003A0F560E0BE7DF00136848 /* ftadvanc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftadvanc.c; path = "../../extlibs/freetype-2.3.6/src/base/ftadvanc.c"; sourceTree = SOURCE_ROOT; };
+		003A0F570E0BE7DF00136848 /* ftapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftapi.c; path = "../../extlibs/freetype-2.3.6/src/base/ftapi.c"; sourceTree = SOURCE_ROOT; };
+		003A0F580E0BE7DF00136848 /* ftbase.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftbase.c; path = "../../extlibs/freetype-2.3.6/src/base/ftbase.c"; sourceTree = SOURCE_ROOT; };
+		003A0F590E0BE7DF00136848 /* ftbbox.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftbbox.c; path = "../../extlibs/freetype-2.3.6/src/base/ftbbox.c"; sourceTree = SOURCE_ROOT; };
+		003A0F5A0E0BE7DF00136848 /* ftbitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftbitmap.c; path = "../../extlibs/freetype-2.3.6/src/base/ftbitmap.c"; sourceTree = SOURCE_ROOT; };
+		003A0F5B0E0BE7DF00136848 /* ftcalc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftcalc.c; path = "../../extlibs/freetype-2.3.6/src/base/ftcalc.c"; sourceTree = SOURCE_ROOT; };
+		003A0F5C0E0BE7DF00136848 /* ftdbgmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftdbgmem.c; path = "../../extlibs/freetype-2.3.6/src/base/ftdbgmem.c"; sourceTree = SOURCE_ROOT; };
+		003A0F5D0E0BE7DF00136848 /* ftdebug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftdebug.c; path = "../../extlibs/freetype-2.3.6/src/base/ftdebug.c"; sourceTree = SOURCE_ROOT; };
+		003A0F5E0E0BE7DF00136848 /* ftgasp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftgasp.c; path = "../../extlibs/freetype-2.3.6/src/base/ftgasp.c"; sourceTree = SOURCE_ROOT; };
+		003A0F5F0E0BE7DF00136848 /* ftgloadr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftgloadr.c; path = "../../extlibs/freetype-2.3.6/src/base/ftgloadr.c"; sourceTree = SOURCE_ROOT; };
+		003A0F600E0BE7DF00136848 /* ftglyph.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftglyph.c; path = "../../extlibs/freetype-2.3.6/src/base/ftglyph.c"; sourceTree = SOURCE_ROOT; };
+		003A0F610E0BE7DF00136848 /* ftinit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftinit.c; path = "../../extlibs/freetype-2.3.6/src/base/ftinit.c"; sourceTree = SOURCE_ROOT; };
+		003A0F620E0BE7DF00136848 /* ftlcdfil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftlcdfil.c; path = "../../extlibs/freetype-2.3.6/src/base/ftlcdfil.c"; sourceTree = SOURCE_ROOT; };
+		003A0F630E0BE7DF00136848 /* ftmm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftmm.c; path = "../../extlibs/freetype-2.3.6/src/base/ftmm.c"; sourceTree = SOURCE_ROOT; };
+		003A0F640E0BE7DF00136848 /* ftnames.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftnames.c; path = "../../extlibs/freetype-2.3.6/src/base/ftnames.c"; sourceTree = SOURCE_ROOT; };
+		003A0F650E0BE7DF00136848 /* ftobjs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftobjs.c; path = "../../extlibs/freetype-2.3.6/src/base/ftobjs.c"; sourceTree = SOURCE_ROOT; };
+		003A0F660E0BE7DF00136848 /* ftoutln.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftoutln.c; path = "../../extlibs/freetype-2.3.6/src/base/ftoutln.c"; sourceTree = SOURCE_ROOT; };
+		003A0F670E0BE7DF00136848 /* ftpatent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftpatent.c; path = "../../extlibs/freetype-2.3.6/src/base/ftpatent.c"; sourceTree = SOURCE_ROOT; };
+		003A0F680E0BE7DF00136848 /* ftrfork.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftrfork.c; path = "../../extlibs/freetype-2.3.6/src/base/ftrfork.c"; sourceTree = SOURCE_ROOT; };
+		003A0F690E0BE7DF00136848 /* ftstream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftstream.c; path = "../../extlibs/freetype-2.3.6/src/base/ftstream.c"; sourceTree = SOURCE_ROOT; };
+		003A0F6A0E0BE7DF00136848 /* ftstroke.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftstroke.c; path = "../../extlibs/freetype-2.3.6/src/base/ftstroke.c"; sourceTree = SOURCE_ROOT; };
+		003A0F6B0E0BE7DF00136848 /* ftsynth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftsynth.c; path = "../../extlibs/freetype-2.3.6/src/base/ftsynth.c"; sourceTree = SOURCE_ROOT; };
+		003A0F6C0E0BE7DF00136848 /* ftsystem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftsystem.c; path = "../../extlibs/freetype-2.3.6/src/base/ftsystem.c"; sourceTree = SOURCE_ROOT; };
+		003A0F6D0E0BE7DF00136848 /* fttrigon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fttrigon.c; path = "../../extlibs/freetype-2.3.6/src/base/fttrigon.c"; sourceTree = SOURCE_ROOT; };
+		003A0F6E0E0BE7DF00136848 /* ftutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftutil.c; path = "../../extlibs/freetype-2.3.6/src/base/ftutil.c"; sourceTree = SOURCE_ROOT; };
+		003A0F6F0E0BE7DF00136848 /* ftwinfnt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftwinfnt.c; path = "../../extlibs/freetype-2.3.6/src/base/ftwinfnt.c"; sourceTree = SOURCE_ROOT; };
+		003A0F700E0BE7DF00136848 /* ftxf86.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ftxf86.c; path = "../../extlibs/freetype-2.3.6/src/base/ftxf86.c"; sourceTree = SOURCE_ROOT; };
+		003A0F8C0E0BE80000136848 /* raster.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = raster.c; path = "../../extlibs/freetype-2.3.6/src/raster/raster.c"; sourceTree = SOURCE_ROOT; };
+		003A0F8E0E0BE81800136848 /* sfnt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sfnt.c; path = "../../extlibs/freetype-2.3.6/src/sfnt/sfnt.c"; sourceTree = SOURCE_ROOT; };
+		003A0F900E0BE83C00136848 /* smooth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = smooth.c; path = "../../extlibs/freetype-2.3.6/src/smooth/smooth.c"; sourceTree = SOURCE_ROOT; };
+		003A0F920E0BE85600136848 /* autofit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = autofit.c; path = "../../extlibs/freetype-2.3.6/src/autofit/autofit.c"; sourceTree = SOURCE_ROOT; };
+		003A0F940E0BE86E00136848 /* truetype.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = truetype.c; path = "../../extlibs/freetype-2.3.6/src/truetype/truetype.c"; sourceTree = SOURCE_ROOT; };
+		003A0F960E0BE88300136848 /* cff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cff.c; path = "../../extlibs/freetype-2.3.6/src/cff/cff.c"; sourceTree = SOURCE_ROOT; };
+		003A0F980E0BE89B00136848 /* psaux.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psaux.c; path = "../../extlibs/freetype-2.3.6/src/psaux/psaux.c"; sourceTree = SOURCE_ROOT; };
+		003A0F9A0E0BE8B400136848 /* psnames.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = psnames.c; path = "../../extlibs/freetype-2.3.6/src/psnames/psnames.c"; sourceTree = SOURCE_ROOT; };
+		003A0FA10E0BE8C700136848 /* pshinter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pshinter.c; path = "../../extlibs/freetype-2.3.6/src/pshinter/pshinter.c"; sourceTree = "<group>"; };
+		D2AAC046055464E500DB518D /* libfreetype.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libfreetype.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE6C75530944ED8500568256 /* SkFontHost_FreeType.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_FreeType.cpp; path = ../../libs/graphics/ports/SkFontHost_FreeType.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* freetype */ = {
+			isa = PBXGroup;
+			children = (
+				FE33C98F094E104700C4A640 /* base */,
+				FE33C990094E105100C4A640 /* raster */,
+				FE33C997094E109300C4A640 /* snft */,
+				FE33C998094E109D00C4A640 /* smooth */,
+				FE33C999094E10B000C4A640 /* autohint */,
+				FE33C99A094E10BD00C4A640 /* truetype */,
+				FE33C99B094E10C600C4A640 /* cff */,
+				FE33C99E094E10E100C4A640 /* psaux */,
+				FE33C99F094E10EB00C4A640 /* psnames */,
+				FE33C9A0094E10F400C4A640 /* pshinter */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = freetype;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				FE6C75530944ED8500568256 /* SkFontHost_FreeType.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libfreetype.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+		FE33C98F094E104700C4A640 /* base */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F560E0BE7DF00136848 /* ftadvanc.c */,
+				003A0F570E0BE7DF00136848 /* ftapi.c */,
+				003A0F580E0BE7DF00136848 /* ftbase.c */,
+				003A0F590E0BE7DF00136848 /* ftbbox.c */,
+				003A0F5A0E0BE7DF00136848 /* ftbitmap.c */,
+				003A0F5B0E0BE7DF00136848 /* ftcalc.c */,
+				003A0F5C0E0BE7DF00136848 /* ftdbgmem.c */,
+				003A0F5D0E0BE7DF00136848 /* ftdebug.c */,
+				003A0F5E0E0BE7DF00136848 /* ftgasp.c */,
+				003A0F5F0E0BE7DF00136848 /* ftgloadr.c */,
+				003A0F600E0BE7DF00136848 /* ftglyph.c */,
+				003A0F610E0BE7DF00136848 /* ftinit.c */,
+				003A0F620E0BE7DF00136848 /* ftlcdfil.c */,
+				003A0F630E0BE7DF00136848 /* ftmm.c */,
+				003A0F640E0BE7DF00136848 /* ftnames.c */,
+				003A0F650E0BE7DF00136848 /* ftobjs.c */,
+				003A0F660E0BE7DF00136848 /* ftoutln.c */,
+				003A0F670E0BE7DF00136848 /* ftpatent.c */,
+				003A0F680E0BE7DF00136848 /* ftrfork.c */,
+				003A0F690E0BE7DF00136848 /* ftstream.c */,
+				003A0F6A0E0BE7DF00136848 /* ftstroke.c */,
+				003A0F6B0E0BE7DF00136848 /* ftsynth.c */,
+				003A0F6C0E0BE7DF00136848 /* ftsystem.c */,
+				003A0F6D0E0BE7DF00136848 /* fttrigon.c */,
+				003A0F6E0E0BE7DF00136848 /* ftutil.c */,
+				003A0F6F0E0BE7DF00136848 /* ftwinfnt.c */,
+				003A0F700E0BE7DF00136848 /* ftxf86.c */,
+			);
+			name = base;
+			sourceTree = "<group>";
+		};
+		FE33C990094E105100C4A640 /* raster */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F8C0E0BE80000136848 /* raster.c */,
+			);
+			name = raster;
+			sourceTree = "<group>";
+		};
+		FE33C997094E109300C4A640 /* snft */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F8E0E0BE81800136848 /* sfnt.c */,
+			);
+			name = snft;
+			sourceTree = "<group>";
+		};
+		FE33C998094E109D00C4A640 /* smooth */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F900E0BE83C00136848 /* smooth.c */,
+			);
+			name = smooth;
+			sourceTree = "<group>";
+		};
+		FE33C999094E10B000C4A640 /* autohint */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F920E0BE85600136848 /* autofit.c */,
+			);
+			name = autohint;
+			sourceTree = "<group>";
+		};
+		FE33C99A094E10BD00C4A640 /* truetype */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F940E0BE86E00136848 /* truetype.c */,
+			);
+			name = truetype;
+			sourceTree = "<group>";
+		};
+		FE33C99B094E10C600C4A640 /* cff */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F960E0BE88300136848 /* cff.c */,
+			);
+			name = cff;
+			sourceTree = "<group>";
+		};
+		FE33C99E094E10E100C4A640 /* psaux */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F980E0BE89B00136848 /* psaux.c */,
+			);
+			name = psaux;
+			sourceTree = "<group>";
+		};
+		FE33C99F094E10EB00C4A640 /* psnames */ = {
+			isa = PBXGroup;
+			children = (
+				003A0F9A0E0BE8B400136848 /* psnames.c */,
+			);
+			name = psnames;
+			sourceTree = "<group>";
+		};
+		FE33C9A0094E10F400C4A640 /* pshinter */ = {
+			isa = PBXGroup;
+			children = (
+				003A0FA10E0BE8C700136848 /* pshinter.c */,
+			);
+			name = pshinter;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* freetype */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "freetype" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = freetype;
+			productName = freetype;
+			productReference = D2AAC046055464E500DB518D /* libfreetype.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "freetype2" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* freetype */;
+			projectDirPath = "";
+			projectRoot = ../..;
+			targets = (
+				D2AAC045055464E500DB518D /* freetype */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE6C75540944ED8500568256 /* SkFontHost_FreeType.cpp in Sources */,
+				003A0F710E0BE7DF00136848 /* ftadvanc.c in Sources */,
+				003A0F720E0BE7DF00136848 /* ftapi.c in Sources */,
+				003A0F730E0BE7DF00136848 /* ftbase.c in Sources */,
+				003A0F740E0BE7DF00136848 /* ftbbox.c in Sources */,
+				003A0F750E0BE7DF00136848 /* ftbitmap.c in Sources */,
+				003A0F760E0BE7DF00136848 /* ftcalc.c in Sources */,
+				003A0F770E0BE7DF00136848 /* ftdbgmem.c in Sources */,
+				003A0F780E0BE7DF00136848 /* ftdebug.c in Sources */,
+				003A0F790E0BE7DF00136848 /* ftgasp.c in Sources */,
+				003A0F7A0E0BE7DF00136848 /* ftgloadr.c in Sources */,
+				003A0F7B0E0BE7DF00136848 /* ftglyph.c in Sources */,
+				003A0F7C0E0BE7DF00136848 /* ftinit.c in Sources */,
+				003A0F7D0E0BE7DF00136848 /* ftlcdfil.c in Sources */,
+				003A0F7E0E0BE7DF00136848 /* ftmm.c in Sources */,
+				003A0F7F0E0BE7DF00136848 /* ftnames.c in Sources */,
+				003A0F800E0BE7DF00136848 /* ftobjs.c in Sources */,
+				003A0F810E0BE7DF00136848 /* ftoutln.c in Sources */,
+				003A0F820E0BE7DF00136848 /* ftpatent.c in Sources */,
+				003A0F830E0BE7DF00136848 /* ftrfork.c in Sources */,
+				003A0F840E0BE7DF00136848 /* ftstream.c in Sources */,
+				003A0F850E0BE7DF00136848 /* ftstroke.c in Sources */,
+				003A0F860E0BE7DF00136848 /* ftsynth.c in Sources */,
+				003A0F870E0BE7DF00136848 /* ftsystem.c in Sources */,
+				003A0F880E0BE7DF00136848 /* fttrigon.c in Sources */,
+				003A0F890E0BE7DF00136848 /* ftutil.c in Sources */,
+				003A0F8A0E0BE7DF00136848 /* ftwinfnt.c in Sources */,
+				003A0F8B0E0BE7DF00136848 /* ftxf86.c in Sources */,
+				003A0F8D0E0BE80000136848 /* raster.c in Sources */,
+				003A0F8F0E0BE81800136848 /* sfnt.c in Sources */,
+				003A0F910E0BE83C00136848 /* smooth.c in Sources */,
+				003A0F930E0BE85600136848 /* autofit.c in Sources */,
+				003A0F950E0BE86E00136848 /* truetype.c in Sources */,
+				003A0F970E0BE88300136848 /* cff.c in Sources */,
+				003A0F990E0BE89B00136848 /* psaux.c in Sources */,
+				003A0F9B0E0BE8B400136848 /* psnames.c in Sources */,
+				003A0FAB0E0BE8C700136848 /* pshinter.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = freetype;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = freetype;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
+					FT2_BUILD_LIBRARY,
+					DARWIN_NO_CARBON,
+					SK_DEBUG,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../extlibs/freetype-2.3.6/include ../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
+					FT2_BUILD_LIBRARY,
+					DARWIN_NO_CARBON,
+					SK_RELEASE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../extlibs/freetype-2.3.6/include ../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "freetype" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "freetype2" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/gif.xcodeproj/project.pbxproj b/ide/xcode/gif.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..0645a35
--- /dev/null
+++ b/ide/xcode/gif.xcodeproj/project.pbxproj
@@ -0,0 +1,264 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		008CFC4D0C04B77E00FB4126 /* SkMovie_gif.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 008CFC4C0C04B77E00FB4126 /* SkMovie_gif.cpp */; };
+		00B13BE30C0C6EFA0033F013 /* SkMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00B13BE20C0C6EFA0033F013 /* SkMovie.cpp */; };
+		FE08AB3F0945EFBE0057213F /* gif_lib_private.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AB3D0945EFBE0057213F /* gif_lib_private.h */; };
+		FE08AB400945EFBE0057213F /* gif_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AB3E0945EFBE0057213F /* gif_lib.h */; };
+		FE08AB440945EFEF0057213F /* dgif_lib.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AB410945EFEF0057213F /* dgif_lib.c */; };
+		FE08AB450945EFEF0057213F /* gif_err.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AB420945EFEF0057213F /* gif_err.c */; };
+		FE08AB460945EFEF0057213F /* gifalloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AB430945EFEF0057213F /* gifalloc.c */; };
+		FE7B86240948E6A1001B952C /* SkImageDecoder_libgif.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE7B86230948E6A1001B952C /* SkImageDecoder_libgif.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		008CFC4C0C04B77E00FB4126 /* SkMovie_gif.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie_gif.cpp; path = ../../libs/graphics/images/SkMovie_gif.cpp; sourceTree = SOURCE_ROOT; };
+		00B13BE20C0C6EFA0033F013 /* SkMovie.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie.cpp; path = ../../libs/graphics/images/SkMovie.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libgif.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgif.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE08AB3D0945EFBE0057213F /* gif_lib_private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = gif_lib_private.h; path = "../../extlibs/libgif-4.0/gif_lib_private.h"; sourceTree = SOURCE_ROOT; };
+		FE08AB3E0945EFBE0057213F /* gif_lib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = gif_lib.h; path = "../../extlibs/libgif-4.0/gif_lib.h"; sourceTree = SOURCE_ROOT; };
+		FE08AB410945EFEF0057213F /* dgif_lib.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = dgif_lib.c; path = "../../extlibs/libgif-4.0/dgif_lib.c"; sourceTree = SOURCE_ROOT; };
+		FE08AB420945EFEF0057213F /* gif_err.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = gif_err.c; path = "../../extlibs/libgif-4.0/gif_err.c"; sourceTree = SOURCE_ROOT; };
+		FE08AB430945EFEF0057213F /* gifalloc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = gifalloc.c; path = "../../extlibs/libgif-4.0/gifalloc.c"; sourceTree = SOURCE_ROOT; };
+		FE7B86230948E6A1001B952C /* SkImageDecoder_libgif.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libgif.cpp; path = ../../libs/graphics/images/SkImageDecoder_libgif.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* gif */ = {
+			isa = PBXGroup;
+			children = (
+				00B13BE20C0C6EFA0033F013 /* SkMovie.cpp */,
+				FE08AB3C0945EF830057213F /* Include */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = gif;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				008CFC4C0C04B77E00FB4126 /* SkMovie_gif.cpp */,
+				FE7B86230948E6A1001B952C /* SkImageDecoder_libgif.cpp */,
+				FE08AB410945EFEF0057213F /* dgif_lib.c */,
+				FE08AB420945EFEF0057213F /* gif_err.c */,
+				FE08AB430945EFEF0057213F /* gifalloc.c */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libgif.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+		FE08AB3C0945EF830057213F /* Include */ = {
+			isa = PBXGroup;
+			children = (
+				FE08AB3D0945EFBE0057213F /* gif_lib_private.h */,
+				FE08AB3E0945EFBE0057213F /* gif_lib.h */,
+			);
+			name = Include;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE08AB3F0945EFBE0057213F /* gif_lib_private.h in Headers */,
+				FE08AB400945EFBE0057213F /* gif_lib.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* gif */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = FE5F47EB094782A50095980F /* Build configuration list for PBXNativeTarget "gif" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = gif;
+			productName = gif;
+			productReference = D2AAC046055464E500DB518D /* libgif.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = FE5F47EF094782A50095980F /* Build configuration list for PBXProject "gif" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* gif */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* gif */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE08AB440945EFEF0057213F /* dgif_lib.c in Sources */,
+				FE08AB450945EFEF0057213F /* gif_err.c in Sources */,
+				FE08AB460945EFEF0057213F /* gifalloc.c in Sources */,
+				FE7B86240948E6A1001B952C /* SkImageDecoder_libgif.cpp in Sources */,
+				008CFC4D0C04B77E00FB4126 /* SkMovie_gif.cpp in Sources */,
+				00B13BE30C0C6EFA0033F013 /* SkMovie.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		FE5F47EC094782A50095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					_LIB,
+					SK_FORCE_SCALARFIXED,
+				);
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = ../../include/graphics;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = gif;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		FE5F47ED094782A50095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = gif;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		FE5F47F0094782A50095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		FE5F47F1094782A50095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		FE5F47EB094782A50095980F /* Build configuration list for PBXNativeTarget "gif" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F47EC094782A50095980F /* Debug */,
+				FE5F47ED094782A50095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		FE5F47EF094782A50095980F /* Build configuration list for PBXProject "gif" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F47F0094782A50095980F /* Debug */,
+				FE5F47F1094782A50095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/giflib.xcodeproj/project.pbxproj b/ide/xcode/giflib.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..679bb71
--- /dev/null
+++ b/ide/xcode/giflib.xcodeproj/project.pbxproj
@@ -0,0 +1,251 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 44;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		0008AE7D0DABECB600477EFB /* SkImageDecoder_libgif.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0008AE7A0DABECB600477EFB /* SkImageDecoder_libgif.cpp */; };
+		0008AE7E0DABECB600477EFB /* SkMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0008AE7B0DABECB600477EFB /* SkMovie.cpp */; };
+		0008AE7F0DABECB600477EFB /* SkMovie_gif.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0008AE7C0DABECB600477EFB /* SkMovie_gif.cpp */; };
+		003E41DF0DB3941900A9222D /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 003E41D80DB3941900A9222D /* config.h */; };
+		003E41E00DB3941900A9222D /* dgif_lib.c in Sources */ = {isa = PBXBuildFile; fileRef = 003E41D90DB3941900A9222D /* dgif_lib.c */; };
+		003E41E10DB3941900A9222D /* gif_err.c in Sources */ = {isa = PBXBuildFile; fileRef = 003E41DA0DB3941900A9222D /* gif_err.c */; };
+		003E41E20DB3941900A9222D /* gif_hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 003E41DB0DB3941900A9222D /* gif_hash.h */; };
+		003E41E30DB3941900A9222D /* gif_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = 003E41DC0DB3941900A9222D /* gif_lib.h */; };
+		003E41E40DB3941900A9222D /* gif_lib_private.h in Headers */ = {isa = PBXBuildFile; fileRef = 003E41DD0DB3941900A9222D /* gif_lib_private.h */; };
+		003E41E50DB3941900A9222D /* gifalloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 003E41DE0DB3941900A9222D /* gifalloc.c */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		0008AE7A0DABECB600477EFB /* SkImageDecoder_libgif.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libgif.cpp; path = ../../libs/graphics/images/SkImageDecoder_libgif.cpp; sourceTree = SOURCE_ROOT; };
+		0008AE7B0DABECB600477EFB /* SkMovie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie.cpp; path = ../../libs/graphics/images/SkMovie.cpp; sourceTree = SOURCE_ROOT; };
+		0008AE7C0DABECB600477EFB /* SkMovie_gif.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie_gif.cpp; path = ../../libs/graphics/images/SkMovie_gif.cpp; sourceTree = SOURCE_ROOT; };
+		003E41D80DB3941900A9222D /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = "../../extlibs/giflib-4.1.6/config.h"; sourceTree = SOURCE_ROOT; };
+		003E41D90DB3941900A9222D /* dgif_lib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dgif_lib.c; path = "../../extlibs/giflib-4.1.6/dgif_lib.c"; sourceTree = SOURCE_ROOT; };
+		003E41DA0DB3941900A9222D /* gif_err.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gif_err.c; path = "../../extlibs/giflib-4.1.6/gif_err.c"; sourceTree = SOURCE_ROOT; };
+		003E41DB0DB3941900A9222D /* gif_hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gif_hash.h; path = "../../extlibs/giflib-4.1.6/gif_hash.h"; sourceTree = SOURCE_ROOT; };
+		003E41DC0DB3941900A9222D /* gif_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gif_lib.h; path = "../../extlibs/giflib-4.1.6/gif_lib.h"; sourceTree = SOURCE_ROOT; };
+		003E41DD0DB3941900A9222D /* gif_lib_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gif_lib_private.h; path = "../../extlibs/giflib-4.1.6/gif_lib_private.h"; sourceTree = SOURCE_ROOT; };
+		003E41DE0DB3941900A9222D /* gifalloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gifalloc.c; path = "../../extlibs/giflib-4.1.6/gifalloc.c"; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libgiflib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgiflib.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* giflib */ = {
+			isa = PBXGroup;
+			children = (
+				0008AE7A0DABECB600477EFB /* SkImageDecoder_libgif.cpp */,
+				0008AE7B0DABECB600477EFB /* SkMovie.cpp */,
+				0008AE7C0DABECB600477EFB /* SkMovie_gif.cpp */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = giflib;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				003E41D80DB3941900A9222D /* config.h */,
+				003E41D90DB3941900A9222D /* dgif_lib.c */,
+				003E41DA0DB3941900A9222D /* gif_err.c */,
+				003E41DB0DB3941900A9222D /* gif_hash.h */,
+				003E41DC0DB3941900A9222D /* gif_lib.h */,
+				003E41DD0DB3941900A9222D /* gif_lib_private.h */,
+				003E41DE0DB3941900A9222D /* gifalloc.c */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libgiflib.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				003E41DF0DB3941900A9222D /* config.h in Headers */,
+				003E41E20DB3941900A9222D /* gif_hash.h in Headers */,
+				003E41E30DB3941900A9222D /* gif_lib.h in Headers */,
+				003E41E40DB3941900A9222D /* gif_lib_private.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* giflib */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "giflib" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = giflib;
+			productName = giflib;
+			productReference = D2AAC046055464E500DB518D /* libgiflib.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "giflib" */;
+			compatibilityVersion = "Xcode 3.0";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* giflib */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC045055464E500DB518D /* giflib */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				0008AE7D0DABECB600477EFB /* SkImageDecoder_libgif.cpp in Sources */,
+				0008AE7E0DABECB600477EFB /* SkMovie.cpp in Sources */,
+				0008AE7F0DABECB600477EFB /* SkMovie_gif.cpp in Sources */,
+				003E41E00DB3941900A9222D /* dgif_lib.c in Sources */,
+				003E41E10DB3941900A9222D /* gif_err.c in Sources */,
+				003E41E50DB3941900A9222D /* gifalloc.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = giflib;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = giflib;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					HAVE_CONFIG_H,
+					SK_DEBUG,
+				);
+				GCC_THREADSAFE_STATICS = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = (
+					ppc,
+					i386,
+				);
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					HAVE_CONFIG_H,
+					SK_RELEASE,
+				);
+				GCC_THREADSAFE_STATICS = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "giflib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "giflib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/graphics.xcodeproj/project.pbxproj b/ide/xcode/graphics.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..0eabe53
--- /dev/null
+++ b/ide/xcode/graphics.xcodeproj/project.pbxproj
@@ -0,0 +1,1220 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 44;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		00081FDE0A67CEF400A37923 /* SkRasterizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00081FDC0A67CEF400A37923 /* SkRasterizer.cpp */; };
+		00081FE40A67CF1800A37923 /* SkColorFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 00081FE00A67CF1800A37923 /* SkColorFilter.h */; };
+		00081FE50A67CF1800A37923 /* SkRasterizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 00081FE10A67CF1800A37923 /* SkRasterizer.h */; };
+		00081FE70A67CF1800A37923 /* SkTypeface.h in Headers */ = {isa = PBXBuildFile; fileRef = 00081FE30A67CF1800A37923 /* SkTypeface.h */; };
+		000C28720AA50FFE005A479B /* SkColorFilters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000C28700AA50FFE005A479B /* SkColorFilters.cpp */; };
+		000C28730AA50FFF005A479B /* SkCullPoints.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000C28710AA50FFE005A479B /* SkCullPoints.cpp */; };
+		000C28790AA51077005A479B /* SkColorFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000C28780AA51077005A479B /* SkColorFilter.cpp */; };
+		001142D60DCA3EE90070D0A3 /* SkPicturePlayback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001142D20DCA3EE90070D0A3 /* SkPicturePlayback.cpp */; };
+		001142D70DCA3EE90070D0A3 /* SkPicturePlayback.h in Headers */ = {isa = PBXBuildFile; fileRef = 001142D30DCA3EE90070D0A3 /* SkPicturePlayback.h */; };
+		001142D80DCA3EE90070D0A3 /* SkPictureRecord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001142D40DCA3EE90070D0A3 /* SkPictureRecord.cpp */; };
+		001142D90DCA3EE90070D0A3 /* SkPictureRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 001142D50DCA3EE90070D0A3 /* SkPictureRecord.h */; };
+		0011430B0DCA458A0070D0A3 /* SkPictureFlat.h in Headers */ = {isa = PBXBuildFile; fileRef = 0011430A0DCA458A0070D0A3 /* SkPictureFlat.h */; };
+		0011430D0DCA45990070D0A3 /* SkPictureFlat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0011430C0DCA45990070D0A3 /* SkPictureFlat.cpp */; };
+		0019627D0EACB91200447A07 /* SkPageFlipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0019627C0EACB91200447A07 /* SkPageFlipper.cpp */; };
+		0019627F0EACB92A00447A07 /* SkFlipPixelRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0019627E0EACB92A00447A07 /* SkFlipPixelRef.cpp */; };
+		001962810EACB94400447A07 /* SkPathHeap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001962800EACB94400447A07 /* SkPathHeap.cpp */; };
+		001FFBBD0CD8D9ED000CDF07 /* SkImageRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001FFBBC0CD8D9ED000CDF07 /* SkImageRef.cpp */; };
+		0027DCD00B24CA3900076079 /* SkDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0027DCCF0B24CA3900076079 /* SkDevice.cpp */; };
+		0027DCD20B24CA4E00076079 /* SkDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 0027DCD10B24CA4E00076079 /* SkDevice.h */; };
+		002B774F0A1BB054003B067F /* SkShaderExtras.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002B774E0A1BB054003B067F /* SkShaderExtras.cpp */; };
+		002B77550A1BB07A003B067F /* SkCornerPathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 002B77500A1BB07A003B067F /* SkCornerPathEffect.h */; };
+		002B77560A1BB07A003B067F /* SkDeque.h in Headers */ = {isa = PBXBuildFile; fileRef = 002B77510A1BB07A003B067F /* SkDeque.h */; };
+		002B77570A1BB07A003B067F /* SkPaint.h in Headers */ = {isa = PBXBuildFile; fileRef = 002B77520A1BB07A003B067F /* SkPaint.h */; };
+		002B77580A1BB07A003B067F /* SkPorterDuff.h in Headers */ = {isa = PBXBuildFile; fileRef = 002B77530A1BB07A003B067F /* SkPorterDuff.h */; };
+		002B77590A1BB07A003B067F /* SkShaderExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = 002B77540A1BB07A003B067F /* SkShaderExtras.h */; };
+		002C8E6E0A0A515000FFB8EC /* SkDeque.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002C8E6D0A0A515000FFB8EC /* SkDeque.cpp */; };
+		003091FA0C19BE04009F515A /* SkBitmapProcShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003091F30C19BE04009F515A /* SkBitmapProcShader.cpp */; };
+		003091FB0C19BE04009F515A /* SkBitmapProcShader.h in Headers */ = {isa = PBXBuildFile; fileRef = 003091F40C19BE04009F515A /* SkBitmapProcShader.h */; };
+		003091FD0C19BE04009F515A /* SkBitmapProcState_matrixProcs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003091F60C19BE04009F515A /* SkBitmapProcState_matrixProcs.cpp */; };
+		003091FF0C19BE04009F515A /* SkBitmapProcState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003091F80C19BE04009F515A /* SkBitmapProcState.cpp */; };
+		003092000C19BE04009F515A /* SkBitmapProcState.h in Headers */ = {isa = PBXBuildFile; fileRef = 003091F90C19BE04009F515A /* SkBitmapProcState.h */; };
+		003538200C85BDCE007289C0 /* SkPixelXorXfermode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0035381F0C85BDCE007289C0 /* SkPixelXorXfermode.cpp */; };
+		003538590C85BF0D007289C0 /* SkColorShader.h in Headers */ = {isa = PBXBuildFile; fileRef = 003538530C85BF0D007289C0 /* SkColorShader.h */; };
+		0035385A0C85BF0D007289C0 /* SkDrawFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 003538540C85BF0D007289C0 /* SkDrawFilter.h */; };
+		0035385B0C85BF0D007289C0 /* SkDrawLooper.h in Headers */ = {isa = PBXBuildFile; fileRef = 003538550C85BF0D007289C0 /* SkDrawLooper.h */; };
+		0035385C0C85BF0D007289C0 /* SkKernel33MaskFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 003538560C85BF0D007289C0 /* SkKernel33MaskFilter.h */; };
+		0035385D0C85BF0D007289C0 /* SkPackBits.h in Headers */ = {isa = PBXBuildFile; fileRef = 003538570C85BF0D007289C0 /* SkPackBits.h */; };
+		0035385E0C85BF0D007289C0 /* SkPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = 003538580C85BF0D007289C0 /* SkPicture.h */; };
+		003E6EFE0D09EF84005435C0 /* SkColorMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003E6EFC0D09EF84005435C0 /* SkColorMatrix.cpp */; };
+		003E6EFF0D09EF84005435C0 /* SkColorMatrixFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003E6EFD0D09EF84005435C0 /* SkColorMatrixFilter.cpp */; };
+		003FF1680DAE9C0F00601F6B /* SkImageRef_GlobalPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 003FF1670DAE9C0F00601F6B /* SkImageRef_GlobalPool.cpp */; };
+		0043B2DB0D75C840004A0E2A /* SkScaledBitmapSampler.h in Headers */ = {isa = PBXBuildFile; fileRef = 0043B2D80D75C840004A0E2A /* SkScaledBitmapSampler.h */; };
+		00523E950C7B335D00D53402 /* Sk1DPathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E840C7B335D00D53402 /* Sk1DPathEffect.cpp */; };
+		00523E960C7B335D00D53402 /* Sk2DPathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E850C7B335D00D53402 /* Sk2DPathEffect.cpp */; };
+		00523E970C7B335D00D53402 /* SkBlurMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E860C7B335D00D53402 /* SkBlurMask.cpp */; };
+		00523E980C7B335D00D53402 /* SkBlurMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 00523E870C7B335D00D53402 /* SkBlurMask.h */; };
+		00523E990C7B335D00D53402 /* SkBlurMaskFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E880C7B335D00D53402 /* SkBlurMaskFilter.cpp */; };
+		00523E9A0C7B335D00D53402 /* SkCamera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E890C7B335D00D53402 /* SkCamera.cpp */; };
+		00523E9B0C7B335D00D53402 /* SkDashPathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E8A0C7B335D00D53402 /* SkDashPathEffect.cpp */; };
+		00523E9C0C7B335D00D53402 /* SkDiscretePathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E8B0C7B335D00D53402 /* SkDiscretePathEffect.cpp */; };
+		00523E9D0C7B335D00D53402 /* SkEmbossMask_Table.h in Headers */ = {isa = PBXBuildFile; fileRef = 00523E8C0C7B335D00D53402 /* SkEmbossMask_Table.h */; };
+		00523E9E0C7B335D00D53402 /* SkEmbossMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E8D0C7B335D00D53402 /* SkEmbossMask.cpp */; };
+		00523E9F0C7B335D00D53402 /* SkEmbossMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 00523E8E0C7B335D00D53402 /* SkEmbossMask.h */; };
+		00523EA00C7B335D00D53402 /* SkEmbossMaskFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E8F0C7B335D00D53402 /* SkEmbossMaskFilter.cpp */; };
+		00523EA10C7B335D00D53402 /* SkGradientShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E900C7B335D00D53402 /* SkGradientShader.cpp */; };
+		00523EA30C7B335D00D53402 /* SkRadialGradient_Table.h in Headers */ = {isa = PBXBuildFile; fileRef = 00523E920C7B335D00D53402 /* SkRadialGradient_Table.h */; };
+		00523EA40C7B335D00D53402 /* SkTransparentShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E930C7B335D00D53402 /* SkTransparentShader.cpp */; };
+		00523EA50C7B335D00D53402 /* SkUnitMappers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523E940C7B335D00D53402 /* SkUnitMappers.cpp */; };
+		00523EA90C7B33B100D53402 /* SkUnitMappers.h in Headers */ = {isa = PBXBuildFile; fileRef = 00523EA80C7B33B100D53402 /* SkUnitMappers.h */; };
+		00523F420C7B3C1400D53402 /* SkFlattenable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00523F410C7B3C1400D53402 /* SkFlattenable.cpp */; };
+		0053B0EE0D3557960016606F /* SkPaintFlagsDrawFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0053B0ED0D3557960016606F /* SkPaintFlagsDrawFilter.cpp */; };
+		0053B0F00D3557AD0016606F /* SkTypeface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0053B0EF0D3557AD0016606F /* SkTypeface.cpp */; };
+		006B542E0C42B355008E512D /* SkBlurDrawLooper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 006B542D0C42B355008E512D /* SkBlurDrawLooper.cpp */; };
+		006B54390C42B3B0008E512D /* SkBlurDrawLooper.h in Headers */ = {isa = PBXBuildFile; fileRef = 006B54380C42B3B0008E512D /* SkBlurDrawLooper.h */; };
+		006D3B5F0CE0CAE700CE1224 /* SkWriter32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 006D3B5E0CE0CAE700CE1224 /* SkWriter32.cpp */; };
+		007336190DDC859F00A0DB2A /* SkPtrRecorder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007336180DDC859F00A0DB2A /* SkPtrRecorder.cpp */; };
+		008180E70D92D57300A2E56D /* SkScaledBitmapSampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 008180E60D92D57300A2E56D /* SkScaledBitmapSampler.cpp */; };
+		0084BECB0A67EB6F003713D0 /* SkLayerRasterizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0084BECA0A67EB6F003713D0 /* SkLayerRasterizer.cpp */; };
+		0084BECD0A67EB98003713D0 /* SkLayerRasterizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0084BECC0A67EB98003713D0 /* SkLayerRasterizer.h */; };
+		008618740D46CC75007F0674 /* SkBlitRow_D4444.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 008618720D46CC75007F0674 /* SkBlitRow_D4444.cpp */; };
+		008618750D46CC75007F0674 /* SkBlitter_4444.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 008618730D46CC75007F0674 /* SkBlitter_4444.cpp */; };
+		009306CC0AD3F8520068227B /* SkCornerPathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009306CB0AD3F8520068227B /* SkCornerPathEffect.cpp */; };
+		009866480ACD95EF00B69A0B /* SkAvoidXfermode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009866470ACD95EF00B69A0B /* SkAvoidXfermode.cpp */; };
+		009907F10D53A06200AD25AA /* SkBitmap_scroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009907F00D53A06200AD25AA /* SkBitmap_scroll.cpp */; };
+		009A39630DAE52FA00EB3A73 /* SkImageRefPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A39620DAE52FA00EB3A73 /* SkImageRefPool.cpp */; };
+		009A75E80DA1DF5D00876C03 /* SkDrawProcs.h in Headers */ = {isa = PBXBuildFile; fileRef = 009A75E60DA1DF5D00876C03 /* SkDrawProcs.h */; };
+		009A75EA0DA1DF8400876C03 /* SkNinePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009A75E90DA1DF8400876C03 /* SkNinePatch.cpp */; };
+		009B1EAE0DD224CF00EDFFF4 /* SkPixelRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009B1EAD0DD224CF00EDFFF4 /* SkPixelRef.cpp */; };
+		00A159D00C469A1200DB6CED /* SkBlitRow_D16.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A159CC0C469A1200DB6CED /* SkBlitRow_D16.cpp */; };
+		00A159D10C469A1200DB6CED /* SkBlitRow.h in Headers */ = {isa = PBXBuildFile; fileRef = 00A159CD0C469A1200DB6CED /* SkBlitRow.h */; };
+		00A159D20C469A1200DB6CED /* SkDither.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A159CE0C469A1200DB6CED /* SkDither.cpp */; };
+		00A2188A0B652EEC0056CB69 /* SkMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A218890B652EEC0056CB69 /* SkMask.cpp */; };
+		00B4AC4F0E9BF59400A184BF /* SkPicture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00B4AC4E0E9BF59400A184BF /* SkPicture.cpp */; };
+		00B5022D09DB127D00A01CD6 /* SkRegionPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B5022C09DB127D00A01CD6 /* SkRegionPriv.h */; };
+		00B8EC940EB6A319003C2F6F /* SkLayerDrawLooper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00B8EC930EB6A319003C2F6F /* SkLayerDrawLooper.cpp */; };
+		00C88FEF0D89B7920015D427 /* SkUnPreMultiply.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00C88FEE0D89B7920015D427 /* SkUnPreMultiply.cpp */; };
+		FE20DF0C0C7F154F00AAC91E /* SkKernel33MaskFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF0B0C7F154F00AAC91E /* SkKernel33MaskFilter.cpp */; };
+		FE20DF200C7F157B00AAC91E /* SkMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF160C7F157B00AAC91E /* SkMovie.cpp */; };
+		FE20DF660C7F15D200AAC91E /* ARGB32_Clamp_Bilinear_BitmapShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF210C7F15D200AAC91E /* ARGB32_Clamp_Bilinear_BitmapShader.h */; };
+		FE20DF670C7F15D200AAC91E /* SkAlphaRuns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF220C7F15D200AAC91E /* SkAlphaRuns.cpp */; };
+		FE20DF680C7F15D200AAC91E /* SkAntiRun.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF230C7F15D200AAC91E /* SkAntiRun.h */; };
+		FE20DF690C7F15D200AAC91E /* SkAutoKern.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF240C7F15D200AAC91E /* SkAutoKern.h */; };
+		FE20DF6A0C7F15D200AAC91E /* SkBitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF250C7F15D200AAC91E /* SkBitmap.cpp */; };
+		FE20DF6B0C7F15D200AAC91E /* SkBitmapProcState_matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF260C7F15D200AAC91E /* SkBitmapProcState_matrix.h */; };
+		FE20DF6C0C7F15D200AAC91E /* SkBitmapProcState_sample.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF270C7F15D200AAC91E /* SkBitmapProcState_sample.h */; };
+		FE20DF6D0C7F15D200AAC91E /* SkBitmapSampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF280C7F15D200AAC91E /* SkBitmapSampler.cpp */; };
+		FE20DF6E0C7F15D200AAC91E /* SkBitmapSampler.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF290C7F15D200AAC91E /* SkBitmapSampler.h */; };
+		FE20DF6F0C7F15D200AAC91E /* SkBitmapSamplerTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF2A0C7F15D200AAC91E /* SkBitmapSamplerTemplate.h */; };
+		FE20DF700C7F15D200AAC91E /* SkBitmapShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF2B0C7F15D200AAC91E /* SkBitmapShader.cpp */; };
+		FE20DF710C7F15D200AAC91E /* SkBitmapShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF2C0C7F15D200AAC91E /* SkBitmapShader.h */; };
+		FE20DF720C7F15D200AAC91E /* SkBitmapShader16BilerpTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF2D0C7F15D200AAC91E /* SkBitmapShader16BilerpTemplate.h */; };
+		FE20DF730C7F15D200AAC91E /* SkBitmapShaderTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF2E0C7F15D200AAC91E /* SkBitmapShaderTemplate.h */; };
+		FE20DF740C7F15D200AAC91E /* SkBlitBWMaskTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF2F0C7F15D200AAC91E /* SkBlitBWMaskTemplate.h */; };
+		FE20DF750C7F15D200AAC91E /* SkBlitter_A1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF300C7F15D200AAC91E /* SkBlitter_A1.cpp */; };
+		FE20DF760C7F15D200AAC91E /* SkBlitter_A8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF310C7F15D200AAC91E /* SkBlitter_A8.cpp */; };
+		FE20DF770C7F15D200AAC91E /* SkBlitter_ARGB32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF320C7F15D200AAC91E /* SkBlitter_ARGB32.cpp */; };
+		FE20DF780C7F15D200AAC91E /* SkBlitter_RGB16.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF330C7F15D200AAC91E /* SkBlitter_RGB16.cpp */; };
+		FE20DF790C7F15D200AAC91E /* SkBlitter_Sprite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF340C7F15D200AAC91E /* SkBlitter_Sprite.cpp */; };
+		FE20DF7A0C7F15D200AAC91E /* SkBlitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF350C7F15D200AAC91E /* SkBlitter.cpp */; };
+		FE20DF7B0C7F15D200AAC91E /* SkBlitter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF360C7F15D200AAC91E /* SkBlitter.h */; };
+		FE20DF7C0C7F15D200AAC91E /* SkCanvas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF370C7F15D200AAC91E /* SkCanvas.cpp */; };
+		FE20DF7D0C7F15D200AAC91E /* SkColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF380C7F15D200AAC91E /* SkColor.cpp */; };
+		FE20DF7E0C7F15D200AAC91E /* SkColorTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF390C7F15D200AAC91E /* SkColorTable.cpp */; };
+		FE20DF7F0C7F15D200AAC91E /* SkCoreBlitters.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF3A0C7F15D200AAC91E /* SkCoreBlitters.h */; };
+		FE20DF800C7F15D200AAC91E /* SkDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF3B0C7F15D200AAC91E /* SkDraw.cpp */; };
+		FE20DF810C7F15D200AAC91E /* SkEdge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF3C0C7F15D200AAC91E /* SkEdge.cpp */; };
+		FE20DF820C7F15D200AAC91E /* SkEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF3D0C7F15D200AAC91E /* SkEdge.h */; };
+		FE20DF830C7F15D200AAC91E /* SkFilterProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF3E0C7F15D200AAC91E /* SkFilterProc.cpp */; };
+		FE20DF840C7F15D200AAC91E /* SkFilterProc.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF3F0C7F15D200AAC91E /* SkFilterProc.h */; };
+		FE20DF850C7F15D200AAC91E /* SkFP.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF400C7F15D200AAC91E /* SkFP.h */; };
+		FE20DF860C7F15D200AAC91E /* SkGeometry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF410C7F15D200AAC91E /* SkGeometry.cpp */; };
+		FE20DF870C7F15D200AAC91E /* SkGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF420C7F15D200AAC91E /* SkGeometry.h */; };
+		FE20DF880C7F15D200AAC91E /* SkGlobals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF430C7F15D200AAC91E /* SkGlobals.cpp */; };
+		FE20DF890C7F15D200AAC91E /* SkGlyphCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF440C7F15D200AAC91E /* SkGlyphCache.cpp */; };
+		FE20DF8A0C7F15D200AAC91E /* SkGlyphCache.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF450C7F15D200AAC91E /* SkGlyphCache.h */; };
+		FE20DF8B0C7F15D200AAC91E /* SkGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF460C7F15D200AAC91E /* SkGraphics.cpp */; };
+		FE20DF8C0C7F15D200AAC91E /* SkMaskFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF470C7F15D200AAC91E /* SkMaskFilter.cpp */; };
+		FE20DF8D0C7F15D200AAC91E /* SkPackBits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF480C7F15D200AAC91E /* SkPackBits.cpp */; };
+		FE20DF8E0C7F15D200AAC91E /* SkPaint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF490C7F15D200AAC91E /* SkPaint.cpp */; };
+		FE20DF8F0C7F15D200AAC91E /* SkPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF4A0C7F15D200AAC91E /* SkPath.cpp */; };
+		FE20DF900C7F15D200AAC91E /* SkPathEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF4B0C7F15D200AAC91E /* SkPathEffect.cpp */; };
+		FE20DF910C7F15D200AAC91E /* SkPathMeasure.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF4C0C7F15D200AAC91E /* SkPathMeasure.cpp */; };
+		FE20DF920C7F15D200AAC91E /* SkProcSpriteBlitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF4D0C7F15D200AAC91E /* SkProcSpriteBlitter.cpp */; };
+		FE20DF930C7F15D200AAC91E /* SkRefCnt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF4E0C7F15D200AAC91E /* SkRefCnt.cpp */; };
+		FE20DF940C7F15D200AAC91E /* SkRegion_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF4F0C7F15D200AAC91E /* SkRegion_path.cpp */; };
+		FE20DF950C7F15D200AAC91E /* SkScalerContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF500C7F15D200AAC91E /* SkScalerContext.cpp */; };
+		FE20DF960C7F15D200AAC91E /* SkScan_Antihair.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF510C7F15D200AAC91E /* SkScan_Antihair.cpp */; };
+		FE20DF970C7F15D200AAC91E /* SkScan_AntiPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF520C7F15D200AAC91E /* SkScan_AntiPath.cpp */; };
+		FE20DF980C7F15D200AAC91E /* SkScan_Hairline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF530C7F15D200AAC91E /* SkScan_Hairline.cpp */; };
+		FE20DF990C7F15D200AAC91E /* SkScan_Path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF540C7F15D200AAC91E /* SkScan_Path.cpp */; };
+		FE20DF9A0C7F15D200AAC91E /* SkScan.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF550C7F15D200AAC91E /* SkScan.cpp */; };
+		FE20DF9B0C7F15D200AAC91E /* SkScan.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF560C7F15D200AAC91E /* SkScan.h */; };
+		FE20DF9C0C7F15D200AAC91E /* SkScanPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF570C7F15D200AAC91E /* SkScanPriv.h */; };
+		FE20DF9D0C7F15D200AAC91E /* SkShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF580C7F15D200AAC91E /* SkShader.cpp */; };
+		FE20DF9E0C7F15D200AAC91E /* SkSpriteBlitter_ARGB32.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF590C7F15D200AAC91E /* SkSpriteBlitter_ARGB32.cpp */; };
+		FE20DF9F0C7F15D200AAC91E /* SkSpriteBlitter_RGB16.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF5A0C7F15D200AAC91E /* SkSpriteBlitter_RGB16.cpp */; };
+		FE20DFA00C7F15D200AAC91E /* SkSpriteBlitter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF5B0C7F15D200AAC91E /* SkSpriteBlitter.h */; };
+		FE20DFA10C7F15D200AAC91E /* SkSpriteBlitterTemplate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF5C0C7F15D200AAC91E /* SkSpriteBlitterTemplate.h */; };
+		FE20DFA20C7F15D200AAC91E /* SkString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF5D0C7F15D200AAC91E /* SkString.cpp */; };
+		FE20DFA30C7F15D200AAC91E /* SkStroke.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF5E0C7F15D200AAC91E /* SkStroke.cpp */; };
+		FE20DFA40C7F15D200AAC91E /* SkStrokerPriv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF5F0C7F15D200AAC91E /* SkStrokerPriv.cpp */; };
+		FE20DFA50C7F15D200AAC91E /* SkStrokerPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF600C7F15D200AAC91E /* SkStrokerPriv.h */; };
+		FE20DFA60C7F15D200AAC91E /* SkTemplatesPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF610C7F15D200AAC91E /* SkTemplatesPriv.h */; };
+		FE20DFA70C7F15D200AAC91E /* SkTSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF620C7F15D200AAC91E /* SkTSearch.cpp */; };
+		FE20DFA80C7F15D200AAC91E /* SkTSort.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20DF630C7F15D200AAC91E /* SkTSort.h */; };
+		FE20DFA90C7F15D200AAC91E /* SkUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF640C7F15D200AAC91E /* SkUtils.cpp */; };
+		FE20DFAA0C7F15D200AAC91E /* SkXfermode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE20DF650C7F15D200AAC91E /* SkXfermode.cpp */; };
+		FE5F486E094788030095980F /* SkImageDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F486B094788030095980F /* SkImageDecoder.cpp */; };
+		FE5F486F094788030095980F /* SkStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F486C094788030095980F /* SkStream.cpp */; };
+		FE5F48BC094797D00095980F /* SkBML_Verbs.h in Headers */ = {isa = PBXBuildFile; fileRef = FE5F48B3094797D00095980F /* SkBML_Verbs.h */; };
+		FE5F48BD094797D00095980F /* SkBML_XMLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48B4094797D00095980F /* SkBML_XMLParser.cpp */; };
+		FE5F48BE094797D00095980F /* SkDOM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48B5094797D00095980F /* SkDOM.cpp */; };
+		FE5F48C1094797D00095980F /* SkParse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48B8094797D00095980F /* SkParse.cpp */; };
+		FE5F48C2094797D00095980F /* SkParseColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48B9094797D00095980F /* SkParseColor.cpp */; };
+		FE5F48C3094797D00095980F /* SkXMLParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48BA094797D00095980F /* SkXMLParser.cpp */; };
+		FE5F48C4094797D00095980F /* SkXMLWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE5F48BB094797D00095980F /* SkXMLWriter.cpp */; };
+		FEDCE31809C9CEC70042D964 /* SkDebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEDCE31709C9CEC70042D964 /* SkDebug.cpp */; };
+		FEEBB826094213B900C371A7 /* Sk1DPathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7BE094213B900C371A7 /* Sk1DPathEffect.h */; };
+		FEEBB827094213B900C371A7 /* Sk2DPathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7BF094213B900C371A7 /* Sk2DPathEffect.h */; };
+		FEEBB829094213B900C371A7 /* SkAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C1094213B900C371A7 /* SkAnimator.h */; };
+		FEEBB82A094213B900C371A7 /* SkAnimatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C2094213B900C371A7 /* SkAnimatorView.h */; };
+		FEEBB82B094213B900C371A7 /* SkBGViewArtist.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C3094213B900C371A7 /* SkBGViewArtist.h */; };
+		FEEBB82C094213B900C371A7 /* SkBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C4094213B900C371A7 /* SkBitmap.h */; };
+		FEEBB82E094213B900C371A7 /* SkBlurMaskFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C6094213B900C371A7 /* SkBlurMaskFilter.h */; };
+		FEEBB82F094213B900C371A7 /* SkBML_WXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C7094213B900C371A7 /* SkBML_WXMLParser.h */; };
+		FEEBB830094213B900C371A7 /* SkBML_XMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C8094213B900C371A7 /* SkBML_XMLParser.h */; };
+		FEEBB831094213B900C371A7 /* SkBounder.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7C9094213B900C371A7 /* SkBounder.h */; };
+		FEEBB833094213B900C371A7 /* SkCamera.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7CB094213B900C371A7 /* SkCamera.h */; };
+		FEEBB834094213B900C371A7 /* SkCanvas.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7CC094213B900C371A7 /* SkCanvas.h */; };
+		FEEBB835094213B900C371A7 /* SkColor.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7CD094213B900C371A7 /* SkColor.h */; };
+		FEEBB836094213B900C371A7 /* SkColorPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7CE094213B900C371A7 /* SkColorPriv.h */; };
+		FEEBB837094213B900C371A7 /* SkDashPathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7CF094213B900C371A7 /* SkDashPathEffect.h */; };
+		FEEBB838094213B900C371A7 /* SkDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D0094213B900C371A7 /* SkDescriptor.h */; };
+		FEEBB839094213B900C371A7 /* SkDiscretePathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D1094213B900C371A7 /* SkDiscretePathEffect.h */; };
+		FEEBB83A094213B900C371A7 /* SkDOM.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D2094213B900C371A7 /* SkDOM.h */; };
+		FEEBB83B094213B900C371A7 /* SkEmbossMaskFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D3094213B900C371A7 /* SkEmbossMaskFilter.h */; };
+		FEEBB83D094213B900C371A7 /* SkEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D5094213B900C371A7 /* SkEvent.h */; };
+		FEEBB83E094213B900C371A7 /* SkEventSink.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D6094213B900C371A7 /* SkEventSink.h */; };
+		FEEBB841094213B900C371A7 /* SkFlattenable.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7D9094213B900C371A7 /* SkFlattenable.h */; };
+		FEEBB843094213B900C371A7 /* SkFontCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7DB094213B900C371A7 /* SkFontCodec.h */; };
+		FEEBB844094213B900C371A7 /* SkFontHost.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7DC094213B900C371A7 /* SkFontHost.h */; };
+		FEEBB846094213B900C371A7 /* SkGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7DE094213B900C371A7 /* SkGlobals.h */; };
+		FEEBB847094213B900C371A7 /* SkGradientShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7DF094213B900C371A7 /* SkGradientShader.h */; };
+		FEEBB848094213B900C371A7 /* SkGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7E0094213B900C371A7 /* SkGraphics.h */; };
+		FEEBB849094213B900C371A7 /* SkImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7E1094213B900C371A7 /* SkImageDecoder.h */; };
+		FEEBB84C094213B900C371A7 /* SkJS.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7E4094213B900C371A7 /* SkJS.h */; };
+		FEEBB84D094213B900C371A7 /* SkKey.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7E5094213B900C371A7 /* SkKey.h */; };
+		FEEBB850094213B900C371A7 /* SkMask.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7E8094213B900C371A7 /* SkMask.h */; };
+		FEEBB851094213B900C371A7 /* SkMaskFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7E9094213B900C371A7 /* SkMaskFilter.h */; };
+		FEEBB854094213B900C371A7 /* SkMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7EC094213B900C371A7 /* SkMetaData.h */; };
+		FEEBB855094213B900C371A7 /* SkOSFile.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7ED094213B900C371A7 /* SkOSFile.h */; };
+		FEEBB856094213B900C371A7 /* SkOSMenu.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7EE094213B900C371A7 /* SkOSMenu.h */; };
+		FEEBB857094213B900C371A7 /* SkOSSound.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7EF094213B900C371A7 /* SkOSSound.h */; };
+		FEEBB858094213B900C371A7 /* SkOSWindow_Mac.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F0094213B900C371A7 /* SkOSWindow_Mac.h */; };
+		FEEBB859094213B900C371A7 /* SkOSWindow_Unix.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F1094213B900C371A7 /* SkOSWindow_Unix.h */; };
+		FEEBB85A094213B900C371A7 /* SkOSWindow_Win.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F2094213B900C371A7 /* SkOSWindow_Win.h */; };
+		FEEBB85C094213B900C371A7 /* SkParse.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F4094213B900C371A7 /* SkParse.h */; };
+		FEEBB85D094213B900C371A7 /* SkParsePaint.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F5094213B900C371A7 /* SkParsePaint.h */; };
+		FEEBB85E094213B900C371A7 /* SkPath.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F6094213B900C371A7 /* SkPath.h */; };
+		FEEBB85F094213B900C371A7 /* SkPathEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F7094213B900C371A7 /* SkPathEffect.h */; };
+		FEEBB860094213B900C371A7 /* SkPathMeasure.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB7F8094213B900C371A7 /* SkPathMeasure.h */; };
+		FEEBB869094213B900C371A7 /* SkRefCnt.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB801094213B900C371A7 /* SkRefCnt.h */; };
+		FEEBB86C094213B900C371A7 /* SkScalerContext.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB804094213B900C371A7 /* SkScalerContext.h */; };
+		FEEBB86D094213B900C371A7 /* SkShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB805094213B900C371A7 /* SkShader.h */; };
+		FEEBB86E094213B900C371A7 /* SkStackViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB806094213B900C371A7 /* SkStackViewLayout.h */; };
+		FEEBB870094213B900C371A7 /* SkStream.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB808094213B900C371A7 /* SkStream.h */; };
+		FEEBB871094213B900C371A7 /* SkStream_Win.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB809094213B900C371A7 /* SkStream_Win.h */; };
+		FEEBB872094213B900C371A7 /* SkString.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB80A094213B900C371A7 /* SkString.h */; };
+		FEEBB873094213B900C371A7 /* SkStroke.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB80B094213B900C371A7 /* SkStroke.h */; };
+		FEEBB874094213B900C371A7 /* SkSVGAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB80C094213B900C371A7 /* SkSVGAttribute.h */; };
+		FEEBB875094213B900C371A7 /* SkSVGBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB80D094213B900C371A7 /* SkSVGBase.h */; };
+		FEEBB876094213B900C371A7 /* SkSVGPaintState.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB80E094213B900C371A7 /* SkSVGPaintState.h */; };
+		FEEBB877094213B900C371A7 /* SkSVGParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB80F094213B900C371A7 /* SkSVGParser.h */; };
+		FEEBB878094213B900C371A7 /* SkSVGTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB810094213B900C371A7 /* SkSVGTypes.h */; };
+		FEEBB879094213B900C371A7 /* SkSystemEventTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB811094213B900C371A7 /* SkSystemEventTypes.h */; };
+		FEEBB87A094213B900C371A7 /* SkTDArray.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB812094213B900C371A7 /* SkTDArray.h */; };
+		FEEBB87B094213B900C371A7 /* SkTDict.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB813094213B900C371A7 /* SkTDict.h */; };
+		FEEBB87C094213B900C371A7 /* SkTDStack.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB814094213B900C371A7 /* SkTDStack.h */; };
+		FEEBB87E094213B900C371A7 /* SkTextBox.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB816094213B900C371A7 /* SkTextBox.h */; };
+		FEEBB880094213B900C371A7 /* SkTime.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB818094213B900C371A7 /* SkTime.h */; };
+		FEEBB881094213B900C371A7 /* SkTransparentShader.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB819094213B900C371A7 /* SkTransparentShader.h */; };
+		FEEBB884094213B900C371A7 /* SkUnitMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB81C094213B900C371A7 /* SkUnitMapper.h */; };
+		FEEBB885094213B900C371A7 /* SkUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB81D094213B900C371A7 /* SkUtils.h */; };
+		FEEBB886094213B900C371A7 /* SkView.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB81E094213B900C371A7 /* SkView.h */; };
+		FEEBB887094213B900C371A7 /* SkViewInflate.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB81F094213B900C371A7 /* SkViewInflate.h */; };
+		FEEBB888094213B900C371A7 /* SkWidget.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB820094213B900C371A7 /* SkWidget.h */; };
+		FEEBB889094213B900C371A7 /* SkWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB821094213B900C371A7 /* SkWindow.h */; };
+		FEEBB88A094213B900C371A7 /* SkXfermode.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB822094213B900C371A7 /* SkXfermode.h */; };
+		FEEBB88B094213B900C371A7 /* SkXMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB823094213B900C371A7 /* SkXMLParser.h */; };
+		FEEBB88C094213B900C371A7 /* SkXMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = FEEBB824094213B900C371A7 /* SkXMLWriter.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		00081FDC0A67CEF400A37923 /* SkRasterizer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkRasterizer.cpp; path = ../../libs/graphics/sgl/SkRasterizer.cpp; sourceTree = SOURCE_ROOT; };
+		00081FE00A67CF1800A37923 /* SkColorFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkColorFilter.h; sourceTree = "<group>"; };
+		00081FE10A67CF1800A37923 /* SkRasterizer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkRasterizer.h; sourceTree = "<group>"; };
+		00081FE30A67CF1800A37923 /* SkTypeface.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTypeface.h; sourceTree = "<group>"; };
+		000C28700AA50FFE005A479B /* SkColorFilters.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorFilters.cpp; path = ../../libs/graphics/effects/SkColorFilters.cpp; sourceTree = SOURCE_ROOT; };
+		000C28710AA50FFE005A479B /* SkCullPoints.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkCullPoints.cpp; path = ../../libs/graphics/effects/SkCullPoints.cpp; sourceTree = SOURCE_ROOT; };
+		000C28780AA51077005A479B /* SkColorFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorFilter.cpp; path = ../../libs/graphics/sgl/SkColorFilter.cpp; sourceTree = SOURCE_ROOT; };
+		001142D20DCA3EE90070D0A3 /* SkPicturePlayback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPicturePlayback.cpp; path = ../../libs/graphics/picture/SkPicturePlayback.cpp; sourceTree = SOURCE_ROOT; };
+		001142D30DCA3EE90070D0A3 /* SkPicturePlayback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkPicturePlayback.h; path = ../../libs/graphics/picture/SkPicturePlayback.h; sourceTree = SOURCE_ROOT; };
+		001142D40DCA3EE90070D0A3 /* SkPictureRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPictureRecord.cpp; path = ../../libs/graphics/picture/SkPictureRecord.cpp; sourceTree = SOURCE_ROOT; };
+		001142D50DCA3EE90070D0A3 /* SkPictureRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkPictureRecord.h; path = ../../libs/graphics/picture/SkPictureRecord.h; sourceTree = SOURCE_ROOT; };
+		0011430A0DCA458A0070D0A3 /* SkPictureFlat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkPictureFlat.h; path = ../../libs/graphics/picture/SkPictureFlat.h; sourceTree = SOURCE_ROOT; };
+		0011430C0DCA45990070D0A3 /* SkPictureFlat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPictureFlat.cpp; path = ../../libs/graphics/picture/SkPictureFlat.cpp; sourceTree = SOURCE_ROOT; };
+		0019627C0EACB91200447A07 /* SkPageFlipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPageFlipper.cpp; path = ../../libs/corecg/SkPageFlipper.cpp; sourceTree = SOURCE_ROOT; };
+		0019627E0EACB92A00447A07 /* SkFlipPixelRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkFlipPixelRef.cpp; path = ../../libs/graphics/images/SkFlipPixelRef.cpp; sourceTree = SOURCE_ROOT; };
+		001962800EACB94400447A07 /* SkPathHeap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPathHeap.cpp; path = ../../libs/graphics/picture/SkPathHeap.cpp; sourceTree = SOURCE_ROOT; };
+		001FFBBC0CD8D9ED000CDF07 /* SkImageRef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageRef.cpp; path = ../../libs/graphics/images/SkImageRef.cpp; sourceTree = SOURCE_ROOT; };
+		0027DCCF0B24CA3900076079 /* SkDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDevice.cpp; path = ../../libs/graphics/sgl/SkDevice.cpp; sourceTree = SOURCE_ROOT; };
+		0027DCD10B24CA4E00076079 /* SkDevice.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDevice.h; sourceTree = "<group>"; };
+		002B774E0A1BB054003B067F /* SkShaderExtras.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkShaderExtras.cpp; path = ../../libs/graphics/effects/SkShaderExtras.cpp; sourceTree = SOURCE_ROOT; };
+		002B77500A1BB07A003B067F /* SkCornerPathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkCornerPathEffect.h; sourceTree = "<group>"; };
+		002B77510A1BB07A003B067F /* SkDeque.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDeque.h; sourceTree = "<group>"; };
+		002B77520A1BB07A003B067F /* SkPaint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPaint.h; sourceTree = "<group>"; };
+		002B77530A1BB07A003B067F /* SkPorterDuff.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPorterDuff.h; sourceTree = "<group>"; };
+		002B77540A1BB07A003B067F /* SkShaderExtras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkShaderExtras.h; sourceTree = "<group>"; };
+		002C8E6D0A0A515000FFB8EC /* SkDeque.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDeque.cpp; path = ../../libs/graphics/sgl/SkDeque.cpp; sourceTree = SOURCE_ROOT; };
+		003091F30C19BE04009F515A /* SkBitmapProcShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmapProcShader.cpp; path = ../../libs/graphics/sgl/SkBitmapProcShader.cpp; sourceTree = SOURCE_ROOT; };
+		003091F40C19BE04009F515A /* SkBitmapProcShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapProcShader.h; path = ../../libs/graphics/sgl/SkBitmapProcShader.h; sourceTree = SOURCE_ROOT; };
+		003091F60C19BE04009F515A /* SkBitmapProcState_matrixProcs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmapProcState_matrixProcs.cpp; path = ../../libs/graphics/sgl/SkBitmapProcState_matrixProcs.cpp; sourceTree = SOURCE_ROOT; };
+		003091F80C19BE04009F515A /* SkBitmapProcState.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmapProcState.cpp; path = ../../libs/graphics/sgl/SkBitmapProcState.cpp; sourceTree = SOURCE_ROOT; };
+		003091F90C19BE04009F515A /* SkBitmapProcState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapProcState.h; path = ../../libs/graphics/sgl/SkBitmapProcState.h; sourceTree = SOURCE_ROOT; };
+		0035381F0C85BDCE007289C0 /* SkPixelXorXfermode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPixelXorXfermode.cpp; path = ../../libs/graphics/effects/SkPixelXorXfermode.cpp; sourceTree = SOURCE_ROOT; };
+		003538530C85BF0D007289C0 /* SkColorShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkColorShader.h; sourceTree = "<group>"; };
+		003538540C85BF0D007289C0 /* SkDrawFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDrawFilter.h; sourceTree = "<group>"; };
+		003538550C85BF0D007289C0 /* SkDrawLooper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDrawLooper.h; sourceTree = "<group>"; };
+		003538560C85BF0D007289C0 /* SkKernel33MaskFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkKernel33MaskFilter.h; sourceTree = "<group>"; };
+		003538570C85BF0D007289C0 /* SkPackBits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPackBits.h; sourceTree = "<group>"; };
+		003538580C85BF0D007289C0 /* SkPicture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPicture.h; sourceTree = "<group>"; };
+		003E6EFC0D09EF84005435C0 /* SkColorMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorMatrix.cpp; path = ../../libs/graphics/effects/SkColorMatrix.cpp; sourceTree = SOURCE_ROOT; };
+		003E6EFD0D09EF84005435C0 /* SkColorMatrixFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorMatrixFilter.cpp; path = ../../libs/graphics/effects/SkColorMatrixFilter.cpp; sourceTree = SOURCE_ROOT; };
+		003FF1670DAE9C0F00601F6B /* SkImageRef_GlobalPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageRef_GlobalPool.cpp; path = ../../libs/graphics/images/SkImageRef_GlobalPool.cpp; sourceTree = SOURCE_ROOT; };
+		0043B2D80D75C840004A0E2A /* SkScaledBitmapSampler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkScaledBitmapSampler.h; path = ../../libs/graphics/images/SkScaledBitmapSampler.h; sourceTree = SOURCE_ROOT; };
+		00523E840C7B335D00D53402 /* Sk1DPathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Sk1DPathEffect.cpp; path = ../../libs/graphics/effects/Sk1DPathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		00523E850C7B335D00D53402 /* Sk2DPathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Sk2DPathEffect.cpp; path = ../../libs/graphics/effects/Sk2DPathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		00523E860C7B335D00D53402 /* SkBlurMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlurMask.cpp; path = ../../libs/graphics/effects/SkBlurMask.cpp; sourceTree = SOURCE_ROOT; };
+		00523E870C7B335D00D53402 /* SkBlurMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBlurMask.h; path = ../../libs/graphics/effects/SkBlurMask.h; sourceTree = SOURCE_ROOT; };
+		00523E880C7B335D00D53402 /* SkBlurMaskFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlurMaskFilter.cpp; path = ../../libs/graphics/effects/SkBlurMaskFilter.cpp; sourceTree = SOURCE_ROOT; };
+		00523E890C7B335D00D53402 /* SkCamera.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkCamera.cpp; path = ../../libs/graphics/effects/SkCamera.cpp; sourceTree = SOURCE_ROOT; };
+		00523E8A0C7B335D00D53402 /* SkDashPathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDashPathEffect.cpp; path = ../../libs/graphics/effects/SkDashPathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		00523E8B0C7B335D00D53402 /* SkDiscretePathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDiscretePathEffect.cpp; path = ../../libs/graphics/effects/SkDiscretePathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		00523E8C0C7B335D00D53402 /* SkEmbossMask_Table.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkEmbossMask_Table.h; path = ../../libs/graphics/effects/SkEmbossMask_Table.h; sourceTree = SOURCE_ROOT; };
+		00523E8D0C7B335D00D53402 /* SkEmbossMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkEmbossMask.cpp; path = ../../libs/graphics/effects/SkEmbossMask.cpp; sourceTree = SOURCE_ROOT; };
+		00523E8E0C7B335D00D53402 /* SkEmbossMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkEmbossMask.h; path = ../../libs/graphics/effects/SkEmbossMask.h; sourceTree = SOURCE_ROOT; };
+		00523E8F0C7B335D00D53402 /* SkEmbossMaskFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkEmbossMaskFilter.cpp; path = ../../libs/graphics/effects/SkEmbossMaskFilter.cpp; sourceTree = SOURCE_ROOT; };
+		00523E900C7B335D00D53402 /* SkGradientShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGradientShader.cpp; path = ../../libs/graphics/effects/SkGradientShader.cpp; sourceTree = SOURCE_ROOT; };
+		00523E920C7B335D00D53402 /* SkRadialGradient_Table.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkRadialGradient_Table.h; path = ../../libs/graphics/effects/SkRadialGradient_Table.h; sourceTree = SOURCE_ROOT; };
+		00523E930C7B335D00D53402 /* SkTransparentShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTransparentShader.cpp; path = ../../libs/graphics/effects/SkTransparentShader.cpp; sourceTree = SOURCE_ROOT; };
+		00523E940C7B335D00D53402 /* SkUnitMappers.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkUnitMappers.cpp; path = ../../libs/graphics/effects/SkUnitMappers.cpp; sourceTree = SOURCE_ROOT; };
+		00523EA80C7B33B100D53402 /* SkUnitMappers.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkUnitMappers.h; sourceTree = "<group>"; };
+		00523F410C7B3C1400D53402 /* SkFlattenable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFlattenable.cpp; path = ../../libs/graphics/sgl/SkFlattenable.cpp; sourceTree = SOURCE_ROOT; };
+		0053B0ED0D3557960016606F /* SkPaintFlagsDrawFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPaintFlagsDrawFilter.cpp; path = ../../libs/graphics/effects/SkPaintFlagsDrawFilter.cpp; sourceTree = SOURCE_ROOT; };
+		0053B0EF0D3557AD0016606F /* SkTypeface.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTypeface.cpp; path = ../../libs/graphics/sgl/SkTypeface.cpp; sourceTree = SOURCE_ROOT; };
+		006B542D0C42B355008E512D /* SkBlurDrawLooper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlurDrawLooper.cpp; path = ../../libs/graphics/effects/SkBlurDrawLooper.cpp; sourceTree = SOURCE_ROOT; };
+		006B54380C42B3B0008E512D /* SkBlurDrawLooper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBlurDrawLooper.h; sourceTree = "<group>"; };
+		006D3B5E0CE0CAE700CE1224 /* SkWriter32.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkWriter32.cpp; path = ../../libs/graphics/sgl/SkWriter32.cpp; sourceTree = SOURCE_ROOT; };
+		007336180DDC859F00A0DB2A /* SkPtrRecorder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPtrRecorder.cpp; path = ../../libs/graphics/sgl/SkPtrRecorder.cpp; sourceTree = SOURCE_ROOT; };
+		008180E60D92D57300A2E56D /* SkScaledBitmapSampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkScaledBitmapSampler.cpp; path = ../../libs/graphics/images/SkScaledBitmapSampler.cpp; sourceTree = SOURCE_ROOT; };
+		0084BECA0A67EB6F003713D0 /* SkLayerRasterizer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkLayerRasterizer.cpp; path = ../../libs/graphics/effects/SkLayerRasterizer.cpp; sourceTree = SOURCE_ROOT; };
+		0084BECC0A67EB98003713D0 /* SkLayerRasterizer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkLayerRasterizer.h; sourceTree = "<group>"; };
+		008618720D46CC75007F0674 /* SkBlitRow_D4444.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitRow_D4444.cpp; path = ../../libs/graphics/sgl/SkBlitRow_D4444.cpp; sourceTree = SOURCE_ROOT; };
+		008618730D46CC75007F0674 /* SkBlitter_4444.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter_4444.cpp; path = ../../libs/graphics/sgl/SkBlitter_4444.cpp; sourceTree = SOURCE_ROOT; };
+		009306CB0AD3F8520068227B /* SkCornerPathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkCornerPathEffect.cpp; path = ../../libs/graphics/effects/SkCornerPathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		009866470ACD95EF00B69A0B /* SkAvoidXfermode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAvoidXfermode.cpp; path = ../../libs/graphics/effects/SkAvoidXfermode.cpp; sourceTree = SOURCE_ROOT; };
+		009907F00D53A06200AD25AA /* SkBitmap_scroll.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmap_scroll.cpp; path = ../../libs/graphics/sgl/SkBitmap_scroll.cpp; sourceTree = SOURCE_ROOT; };
+		009A39620DAE52FA00EB3A73 /* SkImageRefPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageRefPool.cpp; path = ../../libs/graphics/images/SkImageRefPool.cpp; sourceTree = SOURCE_ROOT; };
+		009A75E60DA1DF5D00876C03 /* SkDrawProcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkDrawProcs.h; path = ../../libs/graphics/sgl/SkDrawProcs.h; sourceTree = SOURCE_ROOT; };
+		009A75E90DA1DF8400876C03 /* SkNinePatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkNinePatch.cpp; path = ../../libs/graphics/effects/SkNinePatch.cpp; sourceTree = SOURCE_ROOT; };
+		009B1EAD0DD224CF00EDFFF4 /* SkPixelRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPixelRef.cpp; path = ../../libs/graphics/sgl/SkPixelRef.cpp; sourceTree = SOURCE_ROOT; };
+		00A159CC0C469A1200DB6CED /* SkBlitRow_D16.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitRow_D16.cpp; path = ../../libs/graphics/sgl/SkBlitRow_D16.cpp; sourceTree = SOURCE_ROOT; };
+		00A159CD0C469A1200DB6CED /* SkBlitRow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBlitRow.h; path = ../../libs/graphics/sgl/SkBlitRow.h; sourceTree = SOURCE_ROOT; };
+		00A159CE0C469A1200DB6CED /* SkDither.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDither.cpp; path = ../../libs/graphics/sgl/SkDither.cpp; sourceTree = SOURCE_ROOT; };
+		00A218890B652EEC0056CB69 /* SkMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMask.cpp; path = ../../libs/graphics/sgl/SkMask.cpp; sourceTree = SOURCE_ROOT; };
+		00B4AC4E0E9BF59400A184BF /* SkPicture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkPicture.cpp; path = ../../libs/graphics/picture/SkPicture.cpp; sourceTree = SOURCE_ROOT; };
+		00B5022C09DB127D00A01CD6 /* SkRegionPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkRegionPriv.h; path = ../../libs/corecg/SkRegionPriv.h; sourceTree = SOURCE_ROOT; };
+		00B8EC930EB6A319003C2F6F /* SkLayerDrawLooper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkLayerDrawLooper.cpp; path = ../../libs/graphics/effects/SkLayerDrawLooper.cpp; sourceTree = SOURCE_ROOT; };
+		00C88FEE0D89B7920015D427 /* SkUnPreMultiply.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkUnPreMultiply.cpp; path = ../../libs/graphics/sgl/SkUnPreMultiply.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC06F0554671400DB518D /* libgraphics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libgraphics.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE20DF0B0C7F154F00AAC91E /* SkKernel33MaskFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkKernel33MaskFilter.cpp; path = ../../libs/graphics/effects/SkKernel33MaskFilter.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF160C7F157B00AAC91E /* SkMovie.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie.cpp; path = ../../libs/graphics/images/SkMovie.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF210C7F15D200AAC91E /* ARGB32_Clamp_Bilinear_BitmapShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ARGB32_Clamp_Bilinear_BitmapShader.h; path = ../../libs/graphics/sgl/ARGB32_Clamp_Bilinear_BitmapShader.h; sourceTree = SOURCE_ROOT; };
+		FE20DF220C7F15D200AAC91E /* SkAlphaRuns.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkAlphaRuns.cpp; path = ../../libs/graphics/sgl/SkAlphaRuns.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF230C7F15D200AAC91E /* SkAntiRun.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAntiRun.h; path = ../../libs/graphics/sgl/SkAntiRun.h; sourceTree = SOURCE_ROOT; };
+		FE20DF240C7F15D200AAC91E /* SkAutoKern.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkAutoKern.h; path = ../../libs/graphics/sgl/SkAutoKern.h; sourceTree = SOURCE_ROOT; };
+		FE20DF250C7F15D200AAC91E /* SkBitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmap.cpp; path = ../../libs/graphics/sgl/SkBitmap.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF260C7F15D200AAC91E /* SkBitmapProcState_matrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapProcState_matrix.h; path = ../../libs/graphics/sgl/SkBitmapProcState_matrix.h; sourceTree = SOURCE_ROOT; };
+		FE20DF270C7F15D200AAC91E /* SkBitmapProcState_sample.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapProcState_sample.h; path = ../../libs/graphics/sgl/SkBitmapProcState_sample.h; sourceTree = SOURCE_ROOT; };
+		FE20DF280C7F15D200AAC91E /* SkBitmapSampler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmapSampler.cpp; path = ../../libs/graphics/sgl/SkBitmapSampler.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF290C7F15D200AAC91E /* SkBitmapSampler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapSampler.h; path = ../../libs/graphics/sgl/SkBitmapSampler.h; sourceTree = SOURCE_ROOT; };
+		FE20DF2A0C7F15D200AAC91E /* SkBitmapSamplerTemplate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapSamplerTemplate.h; path = ../../libs/graphics/sgl/SkBitmapSamplerTemplate.h; sourceTree = SOURCE_ROOT; };
+		FE20DF2B0C7F15D200AAC91E /* SkBitmapShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmapShader.cpp; path = ../../libs/graphics/sgl/SkBitmapShader.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF2C0C7F15D200AAC91E /* SkBitmapShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapShader.h; path = ../../libs/graphics/sgl/SkBitmapShader.h; sourceTree = SOURCE_ROOT; };
+		FE20DF2D0C7F15D200AAC91E /* SkBitmapShader16BilerpTemplate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapShader16BilerpTemplate.h; path = ../../libs/graphics/sgl/SkBitmapShader16BilerpTemplate.h; sourceTree = SOURCE_ROOT; };
+		FE20DF2E0C7F15D200AAC91E /* SkBitmapShaderTemplate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBitmapShaderTemplate.h; path = ../../libs/graphics/sgl/SkBitmapShaderTemplate.h; sourceTree = SOURCE_ROOT; };
+		FE20DF2F0C7F15D200AAC91E /* SkBlitBWMaskTemplate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBlitBWMaskTemplate.h; path = ../../libs/graphics/sgl/SkBlitBWMaskTemplate.h; sourceTree = SOURCE_ROOT; };
+		FE20DF300C7F15D200AAC91E /* SkBlitter_A1.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter_A1.cpp; path = ../../libs/graphics/sgl/SkBlitter_A1.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF310C7F15D200AAC91E /* SkBlitter_A8.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter_A8.cpp; path = ../../libs/graphics/sgl/SkBlitter_A8.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF320C7F15D200AAC91E /* SkBlitter_ARGB32.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter_ARGB32.cpp; path = ../../libs/graphics/sgl/SkBlitter_ARGB32.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF330C7F15D200AAC91E /* SkBlitter_RGB16.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter_RGB16.cpp; path = ../../libs/graphics/sgl/SkBlitter_RGB16.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF340C7F15D200AAC91E /* SkBlitter_Sprite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter_Sprite.cpp; path = ../../libs/graphics/sgl/SkBlitter_Sprite.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF350C7F15D200AAC91E /* SkBlitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBlitter.cpp; path = ../../libs/graphics/sgl/SkBlitter.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF360C7F15D200AAC91E /* SkBlitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBlitter.h; path = ../../libs/graphics/sgl/SkBlitter.h; sourceTree = SOURCE_ROOT; };
+		FE20DF370C7F15D200AAC91E /* SkCanvas.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkCanvas.cpp; path = ../../libs/graphics/sgl/SkCanvas.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF380C7F15D200AAC91E /* SkColor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkColor.cpp; path = ../../libs/graphics/sgl/SkColor.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF390C7F15D200AAC91E /* SkColorTable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorTable.cpp; path = ../../libs/graphics/sgl/SkColorTable.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF3A0C7F15D200AAC91E /* SkCoreBlitters.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkCoreBlitters.h; path = ../../libs/graphics/sgl/SkCoreBlitters.h; sourceTree = SOURCE_ROOT; };
+		FE20DF3B0C7F15D200AAC91E /* SkDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDraw.cpp; path = ../../libs/graphics/sgl/SkDraw.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF3C0C7F15D200AAC91E /* SkEdge.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkEdge.cpp; path = ../../libs/graphics/sgl/SkEdge.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF3D0C7F15D200AAC91E /* SkEdge.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkEdge.h; path = ../../libs/graphics/sgl/SkEdge.h; sourceTree = SOURCE_ROOT; };
+		FE20DF3E0C7F15D200AAC91E /* SkFilterProc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFilterProc.cpp; path = ../../libs/graphics/sgl/SkFilterProc.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF3F0C7F15D200AAC91E /* SkFilterProc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkFilterProc.h; path = ../../libs/graphics/sgl/SkFilterProc.h; sourceTree = SOURCE_ROOT; };
+		FE20DF400C7F15D200AAC91E /* SkFP.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkFP.h; path = ../../libs/graphics/sgl/SkFP.h; sourceTree = SOURCE_ROOT; };
+		FE20DF410C7F15D200AAC91E /* SkGeometry.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGeometry.cpp; path = ../../libs/graphics/sgl/SkGeometry.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF420C7F15D200AAC91E /* SkGeometry.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkGeometry.h; path = ../../libs/graphics/sgl/SkGeometry.h; sourceTree = SOURCE_ROOT; };
+		FE20DF430C7F15D200AAC91E /* SkGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGlobals.cpp; path = ../../libs/graphics/sgl/SkGlobals.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF440C7F15D200AAC91E /* SkGlyphCache.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGlyphCache.cpp; path = ../../libs/graphics/sgl/SkGlyphCache.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF450C7F15D200AAC91E /* SkGlyphCache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkGlyphCache.h; path = ../../libs/graphics/sgl/SkGlyphCache.h; sourceTree = SOURCE_ROOT; };
+		FE20DF460C7F15D200AAC91E /* SkGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGraphics.cpp; path = ../../libs/graphics/sgl/SkGraphics.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF470C7F15D200AAC91E /* SkMaskFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMaskFilter.cpp; path = ../../libs/graphics/sgl/SkMaskFilter.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF480C7F15D200AAC91E /* SkPackBits.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPackBits.cpp; path = ../../libs/graphics/sgl/SkPackBits.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF490C7F15D200AAC91E /* SkPaint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPaint.cpp; path = ../../libs/graphics/sgl/SkPaint.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF4A0C7F15D200AAC91E /* SkPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPath.cpp; path = ../../libs/graphics/sgl/SkPath.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF4B0C7F15D200AAC91E /* SkPathEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPathEffect.cpp; path = ../../libs/graphics/sgl/SkPathEffect.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF4C0C7F15D200AAC91E /* SkPathMeasure.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkPathMeasure.cpp; path = ../../libs/graphics/sgl/SkPathMeasure.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF4D0C7F15D200AAC91E /* SkProcSpriteBlitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkProcSpriteBlitter.cpp; path = ../../libs/graphics/sgl/SkProcSpriteBlitter.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF4E0C7F15D200AAC91E /* SkRefCnt.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkRefCnt.cpp; path = ../../libs/graphics/sgl/SkRefCnt.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF4F0C7F15D200AAC91E /* SkRegion_path.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkRegion_path.cpp; path = ../../libs/graphics/sgl/SkRegion_path.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF500C7F15D200AAC91E /* SkScalerContext.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScalerContext.cpp; path = ../../libs/graphics/sgl/SkScalerContext.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF510C7F15D200AAC91E /* SkScan_Antihair.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScan_Antihair.cpp; path = ../../libs/graphics/sgl/SkScan_Antihair.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF520C7F15D200AAC91E /* SkScan_AntiPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScan_AntiPath.cpp; path = ../../libs/graphics/sgl/SkScan_AntiPath.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF530C7F15D200AAC91E /* SkScan_Hairline.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScan_Hairline.cpp; path = ../../libs/graphics/sgl/SkScan_Hairline.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF540C7F15D200AAC91E /* SkScan_Path.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScan_Path.cpp; path = ../../libs/graphics/sgl/SkScan_Path.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF550C7F15D200AAC91E /* SkScan.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScan.cpp; path = ../../libs/graphics/sgl/SkScan.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF560C7F15D200AAC91E /* SkScan.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScan.h; path = ../../libs/graphics/sgl/SkScan.h; sourceTree = SOURCE_ROOT; };
+		FE20DF570C7F15D200AAC91E /* SkScanPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkScanPriv.h; path = ../../libs/graphics/sgl/SkScanPriv.h; sourceTree = SOURCE_ROOT; };
+		FE20DF580C7F15D200AAC91E /* SkShader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkShader.cpp; path = ../../libs/graphics/sgl/SkShader.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF590C7F15D200AAC91E /* SkSpriteBlitter_ARGB32.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkSpriteBlitter_ARGB32.cpp; path = ../../libs/graphics/sgl/SkSpriteBlitter_ARGB32.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF5A0C7F15D200AAC91E /* SkSpriteBlitter_RGB16.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkSpriteBlitter_RGB16.cpp; path = ../../libs/graphics/sgl/SkSpriteBlitter_RGB16.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF5B0C7F15D200AAC91E /* SkSpriteBlitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkSpriteBlitter.h; path = ../../libs/graphics/sgl/SkSpriteBlitter.h; sourceTree = SOURCE_ROOT; };
+		FE20DF5C0C7F15D200AAC91E /* SkSpriteBlitterTemplate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkSpriteBlitterTemplate.h; path = ../../libs/graphics/sgl/SkSpriteBlitterTemplate.h; sourceTree = SOURCE_ROOT; };
+		FE20DF5D0C7F15D200AAC91E /* SkString.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkString.cpp; path = ../../libs/graphics/sgl/SkString.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF5E0C7F15D200AAC91E /* SkStroke.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkStroke.cpp; path = ../../libs/graphics/sgl/SkStroke.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF5F0C7F15D200AAC91E /* SkStrokerPriv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkStrokerPriv.cpp; path = ../../libs/graphics/sgl/SkStrokerPriv.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF600C7F15D200AAC91E /* SkStrokerPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkStrokerPriv.h; path = ../../libs/graphics/sgl/SkStrokerPriv.h; sourceTree = SOURCE_ROOT; };
+		FE20DF610C7F15D200AAC91E /* SkTemplatesPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTemplatesPriv.h; path = ../../libs/graphics/sgl/SkTemplatesPriv.h; sourceTree = SOURCE_ROOT; };
+		FE20DF620C7F15D200AAC91E /* SkTSearch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTSearch.cpp; path = ../../libs/graphics/sgl/SkTSearch.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF630C7F15D200AAC91E /* SkTSort.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTSort.h; path = ../../libs/graphics/sgl/SkTSort.h; sourceTree = SOURCE_ROOT; };
+		FE20DF640C7F15D200AAC91E /* SkUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkUtils.cpp; path = ../../libs/graphics/sgl/SkUtils.cpp; sourceTree = SOURCE_ROOT; };
+		FE20DF650C7F15D200AAC91E /* SkXfermode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXfermode.cpp; path = ../../libs/graphics/sgl/SkXfermode.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F486B094788030095980F /* SkImageDecoder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder.cpp; path = ../../libs/graphics/images/SkImageDecoder.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F486C094788030095980F /* SkStream.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkStream.cpp; path = ../../libs/graphics/images/SkStream.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48B3094797D00095980F /* SkBML_Verbs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkBML_Verbs.h; path = ../../libs/graphics/xml/SkBML_Verbs.h; sourceTree = SOURCE_ROOT; };
+		FE5F48B4094797D00095980F /* SkBML_XMLParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBML_XMLParser.cpp; path = ../../libs/graphics/xml/SkBML_XMLParser.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48B5094797D00095980F /* SkDOM.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDOM.cpp; path = ../../libs/graphics/xml/SkDOM.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48B8094797D00095980F /* SkParse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkParse.cpp; path = ../../libs/graphics/xml/SkParse.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48B9094797D00095980F /* SkParseColor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkParseColor.cpp; path = ../../libs/graphics/xml/SkParseColor.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48BA094797D00095980F /* SkXMLParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXMLParser.cpp; path = ../../libs/graphics/xml/SkXMLParser.cpp; sourceTree = SOURCE_ROOT; };
+		FE5F48BB094797D00095980F /* SkXMLWriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkXMLWriter.cpp; path = ../../libs/graphics/xml/SkXMLWriter.cpp; sourceTree = SOURCE_ROOT; };
+		FEDCE31709C9CEC70042D964 /* SkDebug.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDebug.cpp; path = ../../libs/corecg/SkDebug.cpp; sourceTree = SOURCE_ROOT; };
+		FEEBB7BE094213B900C371A7 /* Sk1DPathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Sk1DPathEffect.h; sourceTree = "<group>"; };
+		FEEBB7BF094213B900C371A7 /* Sk2DPathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Sk2DPathEffect.h; sourceTree = "<group>"; };
+		FEEBB7C1094213B900C371A7 /* SkAnimator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkAnimator.h; sourceTree = "<group>"; };
+		FEEBB7C2094213B900C371A7 /* SkAnimatorView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkAnimatorView.h; sourceTree = "<group>"; };
+		FEEBB7C3094213B900C371A7 /* SkBGViewArtist.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBGViewArtist.h; sourceTree = "<group>"; };
+		FEEBB7C4094213B900C371A7 /* SkBitmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBitmap.h; sourceTree = "<group>"; };
+		FEEBB7C6094213B900C371A7 /* SkBlurMaskFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBlurMaskFilter.h; sourceTree = "<group>"; };
+		FEEBB7C7094213B900C371A7 /* SkBML_WXMLParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBML_WXMLParser.h; sourceTree = "<group>"; };
+		FEEBB7C8094213B900C371A7 /* SkBML_XMLParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBML_XMLParser.h; sourceTree = "<group>"; };
+		FEEBB7C9094213B900C371A7 /* SkBounder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkBounder.h; sourceTree = "<group>"; };
+		FEEBB7CB094213B900C371A7 /* SkCamera.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkCamera.h; sourceTree = "<group>"; };
+		FEEBB7CC094213B900C371A7 /* SkCanvas.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkCanvas.h; sourceTree = "<group>"; };
+		FEEBB7CD094213B900C371A7 /* SkColor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkColor.h; sourceTree = "<group>"; };
+		FEEBB7CE094213B900C371A7 /* SkColorPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkColorPriv.h; sourceTree = "<group>"; };
+		FEEBB7CF094213B900C371A7 /* SkDashPathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDashPathEffect.h; sourceTree = "<group>"; };
+		FEEBB7D0094213B900C371A7 /* SkDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDescriptor.h; sourceTree = "<group>"; };
+		FEEBB7D1094213B900C371A7 /* SkDiscretePathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDiscretePathEffect.h; sourceTree = "<group>"; };
+		FEEBB7D2094213B900C371A7 /* SkDOM.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkDOM.h; sourceTree = "<group>"; };
+		FEEBB7D3094213B900C371A7 /* SkEmbossMaskFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkEmbossMaskFilter.h; sourceTree = "<group>"; };
+		FEEBB7D5094213B900C371A7 /* SkEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkEvent.h; sourceTree = "<group>"; };
+		FEEBB7D6094213B900C371A7 /* SkEventSink.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkEventSink.h; sourceTree = "<group>"; };
+		FEEBB7D9094213B900C371A7 /* SkFlattenable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkFlattenable.h; sourceTree = "<group>"; };
+		FEEBB7DB094213B900C371A7 /* SkFontCodec.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkFontCodec.h; sourceTree = "<group>"; };
+		FEEBB7DC094213B900C371A7 /* SkFontHost.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkFontHost.h; sourceTree = "<group>"; };
+		FEEBB7DE094213B900C371A7 /* SkGlobals.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkGlobals.h; sourceTree = "<group>"; };
+		FEEBB7DF094213B900C371A7 /* SkGradientShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkGradientShader.h; sourceTree = "<group>"; };
+		FEEBB7E0094213B900C371A7 /* SkGraphics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkGraphics.h; sourceTree = "<group>"; };
+		FEEBB7E1094213B900C371A7 /* SkImageDecoder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkImageDecoder.h; sourceTree = "<group>"; };
+		FEEBB7E4094213B900C371A7 /* SkJS.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkJS.h; sourceTree = "<group>"; };
+		FEEBB7E5094213B900C371A7 /* SkKey.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkKey.h; sourceTree = "<group>"; };
+		FEEBB7E8094213B900C371A7 /* SkMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkMask.h; sourceTree = "<group>"; };
+		FEEBB7E9094213B900C371A7 /* SkMaskFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkMaskFilter.h; sourceTree = "<group>"; };
+		FEEBB7EC094213B900C371A7 /* SkMetaData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkMetaData.h; sourceTree = "<group>"; };
+		FEEBB7ED094213B900C371A7 /* SkOSFile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkOSFile.h; sourceTree = "<group>"; };
+		FEEBB7EE094213B900C371A7 /* SkOSMenu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkOSMenu.h; sourceTree = "<group>"; };
+		FEEBB7EF094213B900C371A7 /* SkOSSound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkOSSound.h; sourceTree = "<group>"; };
+		FEEBB7F0094213B900C371A7 /* SkOSWindow_Mac.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkOSWindow_Mac.h; sourceTree = "<group>"; };
+		FEEBB7F1094213B900C371A7 /* SkOSWindow_Unix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkOSWindow_Unix.h; sourceTree = "<group>"; };
+		FEEBB7F2094213B900C371A7 /* SkOSWindow_Win.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkOSWindow_Win.h; sourceTree = "<group>"; };
+		FEEBB7F4094213B900C371A7 /* SkParse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkParse.h; sourceTree = "<group>"; };
+		FEEBB7F5094213B900C371A7 /* SkParsePaint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkParsePaint.h; sourceTree = "<group>"; };
+		FEEBB7F6094213B900C371A7 /* SkPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPath.h; sourceTree = "<group>"; };
+		FEEBB7F7094213B900C371A7 /* SkPathEffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPathEffect.h; sourceTree = "<group>"; };
+		FEEBB7F8094213B900C371A7 /* SkPathMeasure.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkPathMeasure.h; sourceTree = "<group>"; };
+		FEEBB801094213B900C371A7 /* SkRefCnt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkRefCnt.h; sourceTree = "<group>"; };
+		FEEBB804094213B900C371A7 /* SkScalerContext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkScalerContext.h; sourceTree = "<group>"; };
+		FEEBB805094213B900C371A7 /* SkShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkShader.h; sourceTree = "<group>"; };
+		FEEBB806094213B900C371A7 /* SkStackViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkStackViewLayout.h; sourceTree = "<group>"; };
+		FEEBB808094213B900C371A7 /* SkStream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkStream.h; sourceTree = "<group>"; };
+		FEEBB809094213B900C371A7 /* SkStream_Win.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkStream_Win.h; sourceTree = "<group>"; };
+		FEEBB80A094213B900C371A7 /* SkString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkString.h; sourceTree = "<group>"; };
+		FEEBB80B094213B900C371A7 /* SkStroke.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkStroke.h; sourceTree = "<group>"; };
+		FEEBB80C094213B900C371A7 /* SkSVGAttribute.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGAttribute.h; sourceTree = "<group>"; };
+		FEEBB80D094213B900C371A7 /* SkSVGBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGBase.h; sourceTree = "<group>"; };
+		FEEBB80E094213B900C371A7 /* SkSVGPaintState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGPaintState.h; sourceTree = "<group>"; };
+		FEEBB80F094213B900C371A7 /* SkSVGParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGParser.h; sourceTree = "<group>"; };
+		FEEBB810094213B900C371A7 /* SkSVGTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGTypes.h; sourceTree = "<group>"; };
+		FEEBB811094213B900C371A7 /* SkSystemEventTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSystemEventTypes.h; sourceTree = "<group>"; };
+		FEEBB812094213B900C371A7 /* SkTDArray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTDArray.h; sourceTree = "<group>"; };
+		FEEBB813094213B900C371A7 /* SkTDict.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTDict.h; sourceTree = "<group>"; };
+		FEEBB814094213B900C371A7 /* SkTDStack.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTDStack.h; sourceTree = "<group>"; };
+		FEEBB816094213B900C371A7 /* SkTextBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTextBox.h; sourceTree = "<group>"; };
+		FEEBB818094213B900C371A7 /* SkTime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTime.h; sourceTree = "<group>"; };
+		FEEBB819094213B900C371A7 /* SkTransparentShader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkTransparentShader.h; sourceTree = "<group>"; };
+		FEEBB81C094213B900C371A7 /* SkUnitMapper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkUnitMapper.h; sourceTree = "<group>"; };
+		FEEBB81D094213B900C371A7 /* SkUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkUtils.h; sourceTree = "<group>"; };
+		FEEBB81E094213B900C371A7 /* SkView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkView.h; sourceTree = "<group>"; };
+		FEEBB81F094213B900C371A7 /* SkViewInflate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkViewInflate.h; sourceTree = "<group>"; };
+		FEEBB820094213B900C371A7 /* SkWidget.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkWidget.h; sourceTree = "<group>"; };
+		FEEBB821094213B900C371A7 /* SkWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkWindow.h; sourceTree = "<group>"; };
+		FEEBB822094213B900C371A7 /* SkXfermode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkXfermode.h; sourceTree = "<group>"; };
+		FEEBB823094213B900C371A7 /* SkXMLParser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkXMLParser.h; sourceTree = "<group>"; };
+		FEEBB824094213B900C371A7 /* SkXMLWriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkXMLWriter.h; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D2AAC06D0554671400DB518D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		001142D10DCA3ED10070D0A3 /* picture */ = {
+			isa = PBXGroup;
+			children = (
+				001962800EACB94400447A07 /* SkPathHeap.cpp */,
+				00B4AC4E0E9BF59400A184BF /* SkPicture.cpp */,
+				001142D20DCA3EE90070D0A3 /* SkPicturePlayback.cpp */,
+				001142D30DCA3EE90070D0A3 /* SkPicturePlayback.h */,
+				001142D40DCA3EE90070D0A3 /* SkPictureRecord.cpp */,
+				001142D50DCA3EE90070D0A3 /* SkPictureRecord.h */,
+				0011430A0DCA458A0070D0A3 /* SkPictureFlat.h */,
+				0011430C0DCA45990070D0A3 /* SkPictureFlat.cpp */,
+			);
+			name = picture;
+			sourceTree = "<group>";
+		};
+		034768DDFF38A45A11DB9C8B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC06F0554671400DB518D /* libgraphics.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		0867D691FE84028FC02AAC07 /* graphics */ = {
+			isa = PBXGroup;
+			children = (
+				001142D10DCA3ED10070D0A3 /* picture */,
+				FE5F48C8094798660095980F /* effects */,
+				FE5F48C5094797E90095980F /* images */,
+				FE5F48B2094797A80095980F /* xml */,
+				FEEBB7BA094213B900C371A7 /* include */,
+				08FB77ACFE841707C02AAC07 /* Source */,
+				034768DDFF38A45A11DB9C8B /* Products */,
+			);
+			name = graphics;
+			sourceTree = "<group>";
+		};
+		08FB77ACFE841707C02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				007336180DDC859F00A0DB2A /* SkPtrRecorder.cpp */,
+				009B1EAD0DD224CF00EDFFF4 /* SkPixelRef.cpp */,
+				009A75E60DA1DF5D00876C03 /* SkDrawProcs.h */,
+				00C88FEE0D89B7920015D427 /* SkUnPreMultiply.cpp */,
+				009907F00D53A06200AD25AA /* SkBitmap_scroll.cpp */,
+				008618720D46CC75007F0674 /* SkBlitRow_D4444.cpp */,
+				008618730D46CC75007F0674 /* SkBlitter_4444.cpp */,
+				0053B0EF0D3557AD0016606F /* SkTypeface.cpp */,
+				006D3B5E0CE0CAE700CE1224 /* SkWriter32.cpp */,
+				FE20DF210C7F15D200AAC91E /* ARGB32_Clamp_Bilinear_BitmapShader.h */,
+				FE20DF220C7F15D200AAC91E /* SkAlphaRuns.cpp */,
+				FE20DF230C7F15D200AAC91E /* SkAntiRun.h */,
+				FE20DF240C7F15D200AAC91E /* SkAutoKern.h */,
+				FE20DF250C7F15D200AAC91E /* SkBitmap.cpp */,
+				FE20DF260C7F15D200AAC91E /* SkBitmapProcState_matrix.h */,
+				FE20DF270C7F15D200AAC91E /* SkBitmapProcState_sample.h */,
+				FE20DF280C7F15D200AAC91E /* SkBitmapSampler.cpp */,
+				FE20DF290C7F15D200AAC91E /* SkBitmapSampler.h */,
+				FE20DF2A0C7F15D200AAC91E /* SkBitmapSamplerTemplate.h */,
+				FE20DF2B0C7F15D200AAC91E /* SkBitmapShader.cpp */,
+				FE20DF2C0C7F15D200AAC91E /* SkBitmapShader.h */,
+				FE20DF2D0C7F15D200AAC91E /* SkBitmapShader16BilerpTemplate.h */,
+				FE20DF2E0C7F15D200AAC91E /* SkBitmapShaderTemplate.h */,
+				FE20DF2F0C7F15D200AAC91E /* SkBlitBWMaskTemplate.h */,
+				FE20DF300C7F15D200AAC91E /* SkBlitter_A1.cpp */,
+				FE20DF310C7F15D200AAC91E /* SkBlitter_A8.cpp */,
+				FE20DF320C7F15D200AAC91E /* SkBlitter_ARGB32.cpp */,
+				FE20DF330C7F15D200AAC91E /* SkBlitter_RGB16.cpp */,
+				FE20DF340C7F15D200AAC91E /* SkBlitter_Sprite.cpp */,
+				FE20DF350C7F15D200AAC91E /* SkBlitter.cpp */,
+				FE20DF360C7F15D200AAC91E /* SkBlitter.h */,
+				FE20DF370C7F15D200AAC91E /* SkCanvas.cpp */,
+				FE20DF380C7F15D200AAC91E /* SkColor.cpp */,
+				FE20DF390C7F15D200AAC91E /* SkColorTable.cpp */,
+				FE20DF3A0C7F15D200AAC91E /* SkCoreBlitters.h */,
+				FE20DF3B0C7F15D200AAC91E /* SkDraw.cpp */,
+				FE20DF3C0C7F15D200AAC91E /* SkEdge.cpp */,
+				FE20DF3D0C7F15D200AAC91E /* SkEdge.h */,
+				FE20DF3E0C7F15D200AAC91E /* SkFilterProc.cpp */,
+				FE20DF3F0C7F15D200AAC91E /* SkFilterProc.h */,
+				FE20DF400C7F15D200AAC91E /* SkFP.h */,
+				FE20DF410C7F15D200AAC91E /* SkGeometry.cpp */,
+				FE20DF420C7F15D200AAC91E /* SkGeometry.h */,
+				FE20DF430C7F15D200AAC91E /* SkGlobals.cpp */,
+				FE20DF440C7F15D200AAC91E /* SkGlyphCache.cpp */,
+				FE20DF450C7F15D200AAC91E /* SkGlyphCache.h */,
+				FE20DF460C7F15D200AAC91E /* SkGraphics.cpp */,
+				FE20DF470C7F15D200AAC91E /* SkMaskFilter.cpp */,
+				FE20DF480C7F15D200AAC91E /* SkPackBits.cpp */,
+				FE20DF490C7F15D200AAC91E /* SkPaint.cpp */,
+				FE20DF4A0C7F15D200AAC91E /* SkPath.cpp */,
+				FE20DF4B0C7F15D200AAC91E /* SkPathEffect.cpp */,
+				FE20DF4C0C7F15D200AAC91E /* SkPathMeasure.cpp */,
+				FE20DF4D0C7F15D200AAC91E /* SkProcSpriteBlitter.cpp */,
+				FE20DF4E0C7F15D200AAC91E /* SkRefCnt.cpp */,
+				FE20DF4F0C7F15D200AAC91E /* SkRegion_path.cpp */,
+				FE20DF500C7F15D200AAC91E /* SkScalerContext.cpp */,
+				FE20DF510C7F15D200AAC91E /* SkScan_Antihair.cpp */,
+				FE20DF520C7F15D200AAC91E /* SkScan_AntiPath.cpp */,
+				FE20DF530C7F15D200AAC91E /* SkScan_Hairline.cpp */,
+				FE20DF540C7F15D200AAC91E /* SkScan_Path.cpp */,
+				FE20DF550C7F15D200AAC91E /* SkScan.cpp */,
+				FE20DF560C7F15D200AAC91E /* SkScan.h */,
+				FE20DF570C7F15D200AAC91E /* SkScanPriv.h */,
+				FE20DF580C7F15D200AAC91E /* SkShader.cpp */,
+				FE20DF590C7F15D200AAC91E /* SkSpriteBlitter_ARGB32.cpp */,
+				FE20DF5A0C7F15D200AAC91E /* SkSpriteBlitter_RGB16.cpp */,
+				FE20DF5B0C7F15D200AAC91E /* SkSpriteBlitter.h */,
+				FE20DF5C0C7F15D200AAC91E /* SkSpriteBlitterTemplate.h */,
+				FE20DF5D0C7F15D200AAC91E /* SkString.cpp */,
+				FE20DF5E0C7F15D200AAC91E /* SkStroke.cpp */,
+				FE20DF5F0C7F15D200AAC91E /* SkStrokerPriv.cpp */,
+				FE20DF600C7F15D200AAC91E /* SkStrokerPriv.h */,
+				FE20DF610C7F15D200AAC91E /* SkTemplatesPriv.h */,
+				FE20DF620C7F15D200AAC91E /* SkTSearch.cpp */,
+				FE20DF630C7F15D200AAC91E /* SkTSort.h */,
+				FE20DF640C7F15D200AAC91E /* SkUtils.cpp */,
+				FE20DF650C7F15D200AAC91E /* SkXfermode.cpp */,
+				FE20DF160C7F157B00AAC91E /* SkMovie.cpp */,
+				FE20DF0B0C7F154F00AAC91E /* SkKernel33MaskFilter.cpp */,
+				00523F410C7B3C1400D53402 /* SkFlattenable.cpp */,
+				00A159CC0C469A1200DB6CED /* SkBlitRow_D16.cpp */,
+				00A159CD0C469A1200DB6CED /* SkBlitRow.h */,
+				00A159CE0C469A1200DB6CED /* SkDither.cpp */,
+				003091F30C19BE04009F515A /* SkBitmapProcShader.cpp */,
+				003091F40C19BE04009F515A /* SkBitmapProcShader.h */,
+				003091F60C19BE04009F515A /* SkBitmapProcState_matrixProcs.cpp */,
+				003091F80C19BE04009F515A /* SkBitmapProcState.cpp */,
+				003091F90C19BE04009F515A /* SkBitmapProcState.h */,
+				00A218890B652EEC0056CB69 /* SkMask.cpp */,
+				0027DCCF0B24CA3900076079 /* SkDevice.cpp */,
+				000C28780AA51077005A479B /* SkColorFilter.cpp */,
+				00081FDC0A67CEF400A37923 /* SkRasterizer.cpp */,
+				002C8E6D0A0A515000FFB8EC /* SkDeque.cpp */,
+				FEDCE31709C9CEC70042D964 /* SkDebug.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		FE5F48B2094797A80095980F /* xml */ = {
+			isa = PBXGroup;
+			children = (
+				FE5F48B3094797D00095980F /* SkBML_Verbs.h */,
+				FE5F48B4094797D00095980F /* SkBML_XMLParser.cpp */,
+				FE5F48B5094797D00095980F /* SkDOM.cpp */,
+				FE5F48B8094797D00095980F /* SkParse.cpp */,
+				FE5F48B9094797D00095980F /* SkParseColor.cpp */,
+				FE5F48BA094797D00095980F /* SkXMLParser.cpp */,
+				FE5F48BB094797D00095980F /* SkXMLWriter.cpp */,
+			);
+			name = xml;
+			sourceTree = "<group>";
+		};
+		FE5F48C5094797E90095980F /* images */ = {
+			isa = PBXGroup;
+			children = (
+				0019627E0EACB92A00447A07 /* SkFlipPixelRef.cpp */,
+				0019627C0EACB91200447A07 /* SkPageFlipper.cpp */,
+				003FF1670DAE9C0F00601F6B /* SkImageRef_GlobalPool.cpp */,
+				009A39620DAE52FA00EB3A73 /* SkImageRefPool.cpp */,
+				008180E60D92D57300A2E56D /* SkScaledBitmapSampler.cpp */,
+				0043B2D80D75C840004A0E2A /* SkScaledBitmapSampler.h */,
+				001FFBBC0CD8D9ED000CDF07 /* SkImageRef.cpp */,
+				FE5F486B094788030095980F /* SkImageDecoder.cpp */,
+				FE5F486C094788030095980F /* SkStream.cpp */,
+			);
+			name = images;
+			sourceTree = "<group>";
+		};
+		FE5F48C8094798660095980F /* effects */ = {
+			isa = PBXGroup;
+			children = (
+				00B8EC930EB6A319003C2F6F /* SkLayerDrawLooper.cpp */,
+				009A75E90DA1DF8400876C03 /* SkNinePatch.cpp */,
+				0053B0ED0D3557960016606F /* SkPaintFlagsDrawFilter.cpp */,
+				003E6EFC0D09EF84005435C0 /* SkColorMatrix.cpp */,
+				003E6EFD0D09EF84005435C0 /* SkColorMatrixFilter.cpp */,
+				0035381F0C85BDCE007289C0 /* SkPixelXorXfermode.cpp */,
+				00523E840C7B335D00D53402 /* Sk1DPathEffect.cpp */,
+				00523E850C7B335D00D53402 /* Sk2DPathEffect.cpp */,
+				00523E860C7B335D00D53402 /* SkBlurMask.cpp */,
+				00523E870C7B335D00D53402 /* SkBlurMask.h */,
+				00523E880C7B335D00D53402 /* SkBlurMaskFilter.cpp */,
+				00523E890C7B335D00D53402 /* SkCamera.cpp */,
+				00523E8A0C7B335D00D53402 /* SkDashPathEffect.cpp */,
+				00523E8B0C7B335D00D53402 /* SkDiscretePathEffect.cpp */,
+				00523E8C0C7B335D00D53402 /* SkEmbossMask_Table.h */,
+				00523E8D0C7B335D00D53402 /* SkEmbossMask.cpp */,
+				00523E8E0C7B335D00D53402 /* SkEmbossMask.h */,
+				00523E8F0C7B335D00D53402 /* SkEmbossMaskFilter.cpp */,
+				00523E900C7B335D00D53402 /* SkGradientShader.cpp */,
+				00523E920C7B335D00D53402 /* SkRadialGradient_Table.h */,
+				00523E930C7B335D00D53402 /* SkTransparentShader.cpp */,
+				00523E940C7B335D00D53402 /* SkUnitMappers.cpp */,
+				009306CB0AD3F8520068227B /* SkCornerPathEffect.cpp */,
+				009866470ACD95EF00B69A0B /* SkAvoidXfermode.cpp */,
+				000C28700AA50FFE005A479B /* SkColorFilters.cpp */,
+				000C28710AA50FFE005A479B /* SkCullPoints.cpp */,
+				0084BECA0A67EB6F003713D0 /* SkLayerRasterizer.cpp */,
+				002B774E0A1BB054003B067F /* SkShaderExtras.cpp */,
+				006B542D0C42B355008E512D /* SkBlurDrawLooper.cpp */,
+			);
+			name = effects;
+			sourceTree = "<group>";
+		};
+		FEEBB7BA094213B900C371A7 /* include */ = {
+			isa = PBXGroup;
+			children = (
+				003538530C85BF0D007289C0 /* SkColorShader.h */,
+				003538540C85BF0D007289C0 /* SkDrawFilter.h */,
+				003538550C85BF0D007289C0 /* SkDrawLooper.h */,
+				003538560C85BF0D007289C0 /* SkKernel33MaskFilter.h */,
+				003538570C85BF0D007289C0 /* SkPackBits.h */,
+				003538580C85BF0D007289C0 /* SkPicture.h */,
+				00523EA80C7B33B100D53402 /* SkUnitMappers.h */,
+				006B54380C42B3B0008E512D /* SkBlurDrawLooper.h */,
+				0027DCD10B24CA4E00076079 /* SkDevice.h */,
+				0084BECC0A67EB98003713D0 /* SkLayerRasterizer.h */,
+				00081FE00A67CF1800A37923 /* SkColorFilter.h */,
+				00081FE10A67CF1800A37923 /* SkRasterizer.h */,
+				00081FE30A67CF1800A37923 /* SkTypeface.h */,
+				002B77500A1BB07A003B067F /* SkCornerPathEffect.h */,
+				002B77510A1BB07A003B067F /* SkDeque.h */,
+				002B77520A1BB07A003B067F /* SkPaint.h */,
+				002B77530A1BB07A003B067F /* SkPorterDuff.h */,
+				002B77540A1BB07A003B067F /* SkShaderExtras.h */,
+				00B5022C09DB127D00A01CD6 /* SkRegionPriv.h */,
+				FEEBB7BE094213B900C371A7 /* Sk1DPathEffect.h */,
+				FEEBB7BF094213B900C371A7 /* Sk2DPathEffect.h */,
+				FEEBB7C1094213B900C371A7 /* SkAnimator.h */,
+				FEEBB7C2094213B900C371A7 /* SkAnimatorView.h */,
+				FEEBB7C3094213B900C371A7 /* SkBGViewArtist.h */,
+				FEEBB7C4094213B900C371A7 /* SkBitmap.h */,
+				FEEBB7C6094213B900C371A7 /* SkBlurMaskFilter.h */,
+				FEEBB7C7094213B900C371A7 /* SkBML_WXMLParser.h */,
+				FEEBB7C8094213B900C371A7 /* SkBML_XMLParser.h */,
+				FEEBB7C9094213B900C371A7 /* SkBounder.h */,
+				FEEBB7CB094213B900C371A7 /* SkCamera.h */,
+				FEEBB7CC094213B900C371A7 /* SkCanvas.h */,
+				FEEBB7CD094213B900C371A7 /* SkColor.h */,
+				FEEBB7CE094213B900C371A7 /* SkColorPriv.h */,
+				FEEBB7CF094213B900C371A7 /* SkDashPathEffect.h */,
+				FEEBB7D0094213B900C371A7 /* SkDescriptor.h */,
+				FEEBB7D1094213B900C371A7 /* SkDiscretePathEffect.h */,
+				FEEBB7D2094213B900C371A7 /* SkDOM.h */,
+				FEEBB7D3094213B900C371A7 /* SkEmbossMaskFilter.h */,
+				FEEBB7D5094213B900C371A7 /* SkEvent.h */,
+				FEEBB7D6094213B900C371A7 /* SkEventSink.h */,
+				FEEBB7D9094213B900C371A7 /* SkFlattenable.h */,
+				FEEBB7DB094213B900C371A7 /* SkFontCodec.h */,
+				FEEBB7DC094213B900C371A7 /* SkFontHost.h */,
+				FEEBB7DE094213B900C371A7 /* SkGlobals.h */,
+				FEEBB7DF094213B900C371A7 /* SkGradientShader.h */,
+				FEEBB7E0094213B900C371A7 /* SkGraphics.h */,
+				FEEBB7E1094213B900C371A7 /* SkImageDecoder.h */,
+				FEEBB7E4094213B900C371A7 /* SkJS.h */,
+				FEEBB7E5094213B900C371A7 /* SkKey.h */,
+				FEEBB7E8094213B900C371A7 /* SkMask.h */,
+				FEEBB7E9094213B900C371A7 /* SkMaskFilter.h */,
+				FEEBB7EC094213B900C371A7 /* SkMetaData.h */,
+				FEEBB7ED094213B900C371A7 /* SkOSFile.h */,
+				FEEBB7EE094213B900C371A7 /* SkOSMenu.h */,
+				FEEBB7EF094213B900C371A7 /* SkOSSound.h */,
+				FEEBB7F0094213B900C371A7 /* SkOSWindow_Mac.h */,
+				FEEBB7F1094213B900C371A7 /* SkOSWindow_Unix.h */,
+				FEEBB7F2094213B900C371A7 /* SkOSWindow_Win.h */,
+				FEEBB7F4094213B900C371A7 /* SkParse.h */,
+				FEEBB7F5094213B900C371A7 /* SkParsePaint.h */,
+				FEEBB7F6094213B900C371A7 /* SkPath.h */,
+				FEEBB7F7094213B900C371A7 /* SkPathEffect.h */,
+				FEEBB7F8094213B900C371A7 /* SkPathMeasure.h */,
+				FEEBB801094213B900C371A7 /* SkRefCnt.h */,
+				FEEBB804094213B900C371A7 /* SkScalerContext.h */,
+				FEEBB805094213B900C371A7 /* SkShader.h */,
+				FEEBB806094213B900C371A7 /* SkStackViewLayout.h */,
+				FEEBB808094213B900C371A7 /* SkStream.h */,
+				FEEBB809094213B900C371A7 /* SkStream_Win.h */,
+				FEEBB80A094213B900C371A7 /* SkString.h */,
+				FEEBB80B094213B900C371A7 /* SkStroke.h */,
+				FEEBB80C094213B900C371A7 /* SkSVGAttribute.h */,
+				FEEBB80D094213B900C371A7 /* SkSVGBase.h */,
+				FEEBB80E094213B900C371A7 /* SkSVGPaintState.h */,
+				FEEBB80F094213B900C371A7 /* SkSVGParser.h */,
+				FEEBB810094213B900C371A7 /* SkSVGTypes.h */,
+				FEEBB811094213B900C371A7 /* SkSystemEventTypes.h */,
+				FEEBB812094213B900C371A7 /* SkTDArray.h */,
+				FEEBB813094213B900C371A7 /* SkTDict.h */,
+				FEEBB814094213B900C371A7 /* SkTDStack.h */,
+				FEEBB816094213B900C371A7 /* SkTextBox.h */,
+				FEEBB818094213B900C371A7 /* SkTime.h */,
+				FEEBB819094213B900C371A7 /* SkTransparentShader.h */,
+				FEEBB81C094213B900C371A7 /* SkUnitMapper.h */,
+				FEEBB81D094213B900C371A7 /* SkUtils.h */,
+				FEEBB81E094213B900C371A7 /* SkView.h */,
+				FEEBB81F094213B900C371A7 /* SkViewInflate.h */,
+				FEEBB820094213B900C371A7 /* SkWidget.h */,
+				FEEBB821094213B900C371A7 /* SkWindow.h */,
+				FEEBB822094213B900C371A7 /* SkXfermode.h */,
+				FEEBB823094213B900C371A7 /* SkXMLParser.h */,
+				FEEBB824094213B900C371A7 /* SkXMLWriter.h */,
+			);
+			name = include;
+			path = ../../include/graphics;
+			sourceTree = SOURCE_ROOT;
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC06B0554671400DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FEEBB826094213B900C371A7 /* Sk1DPathEffect.h in Headers */,
+				FEEBB827094213B900C371A7 /* Sk2DPathEffect.h in Headers */,
+				FEEBB829094213B900C371A7 /* SkAnimator.h in Headers */,
+				FEEBB82A094213B900C371A7 /* SkAnimatorView.h in Headers */,
+				FEEBB82B094213B900C371A7 /* SkBGViewArtist.h in Headers */,
+				FEEBB82C094213B900C371A7 /* SkBitmap.h in Headers */,
+				FEEBB82E094213B900C371A7 /* SkBlurMaskFilter.h in Headers */,
+				FEEBB82F094213B900C371A7 /* SkBML_WXMLParser.h in Headers */,
+				FEEBB830094213B900C371A7 /* SkBML_XMLParser.h in Headers */,
+				FEEBB831094213B900C371A7 /* SkBounder.h in Headers */,
+				FEEBB833094213B900C371A7 /* SkCamera.h in Headers */,
+				FEEBB834094213B900C371A7 /* SkCanvas.h in Headers */,
+				FEEBB835094213B900C371A7 /* SkColor.h in Headers */,
+				FEEBB836094213B900C371A7 /* SkColorPriv.h in Headers */,
+				FEEBB837094213B900C371A7 /* SkDashPathEffect.h in Headers */,
+				FEEBB838094213B900C371A7 /* SkDescriptor.h in Headers */,
+				FEEBB839094213B900C371A7 /* SkDiscretePathEffect.h in Headers */,
+				FEEBB83A094213B900C371A7 /* SkDOM.h in Headers */,
+				FEEBB83B094213B900C371A7 /* SkEmbossMaskFilter.h in Headers */,
+				FEEBB83D094213B900C371A7 /* SkEvent.h in Headers */,
+				FEEBB83E094213B900C371A7 /* SkEventSink.h in Headers */,
+				FEEBB841094213B900C371A7 /* SkFlattenable.h in Headers */,
+				FEEBB843094213B900C371A7 /* SkFontCodec.h in Headers */,
+				FEEBB844094213B900C371A7 /* SkFontHost.h in Headers */,
+				FEEBB846094213B900C371A7 /* SkGlobals.h in Headers */,
+				FEEBB847094213B900C371A7 /* SkGradientShader.h in Headers */,
+				FEEBB848094213B900C371A7 /* SkGraphics.h in Headers */,
+				FEEBB849094213B900C371A7 /* SkImageDecoder.h in Headers */,
+				FEEBB84C094213B900C371A7 /* SkJS.h in Headers */,
+				FEEBB84D094213B900C371A7 /* SkKey.h in Headers */,
+				FEEBB850094213B900C371A7 /* SkMask.h in Headers */,
+				FEEBB851094213B900C371A7 /* SkMaskFilter.h in Headers */,
+				FEEBB854094213B900C371A7 /* SkMetaData.h in Headers */,
+				FEEBB855094213B900C371A7 /* SkOSFile.h in Headers */,
+				FEEBB856094213B900C371A7 /* SkOSMenu.h in Headers */,
+				FEEBB857094213B900C371A7 /* SkOSSound.h in Headers */,
+				FEEBB858094213B900C371A7 /* SkOSWindow_Mac.h in Headers */,
+				FEEBB859094213B900C371A7 /* SkOSWindow_Unix.h in Headers */,
+				FEEBB85A094213B900C371A7 /* SkOSWindow_Win.h in Headers */,
+				FEEBB85C094213B900C371A7 /* SkParse.h in Headers */,
+				FEEBB85D094213B900C371A7 /* SkParsePaint.h in Headers */,
+				FEEBB85E094213B900C371A7 /* SkPath.h in Headers */,
+				FEEBB85F094213B900C371A7 /* SkPathEffect.h in Headers */,
+				FEEBB860094213B900C371A7 /* SkPathMeasure.h in Headers */,
+				FEEBB869094213B900C371A7 /* SkRefCnt.h in Headers */,
+				FEEBB86C094213B900C371A7 /* SkScalerContext.h in Headers */,
+				FEEBB86D094213B900C371A7 /* SkShader.h in Headers */,
+				FEEBB86E094213B900C371A7 /* SkStackViewLayout.h in Headers */,
+				FEEBB870094213B900C371A7 /* SkStream.h in Headers */,
+				FEEBB871094213B900C371A7 /* SkStream_Win.h in Headers */,
+				FEEBB872094213B900C371A7 /* SkString.h in Headers */,
+				FEEBB873094213B900C371A7 /* SkStroke.h in Headers */,
+				FEEBB874094213B900C371A7 /* SkSVGAttribute.h in Headers */,
+				FEEBB875094213B900C371A7 /* SkSVGBase.h in Headers */,
+				FEEBB876094213B900C371A7 /* SkSVGPaintState.h in Headers */,
+				FEEBB877094213B900C371A7 /* SkSVGParser.h in Headers */,
+				FEEBB878094213B900C371A7 /* SkSVGTypes.h in Headers */,
+				FEEBB879094213B900C371A7 /* SkSystemEventTypes.h in Headers */,
+				FEEBB87A094213B900C371A7 /* SkTDArray.h in Headers */,
+				FEEBB87B094213B900C371A7 /* SkTDict.h in Headers */,
+				FEEBB87C094213B900C371A7 /* SkTDStack.h in Headers */,
+				FEEBB87E094213B900C371A7 /* SkTextBox.h in Headers */,
+				FEEBB880094213B900C371A7 /* SkTime.h in Headers */,
+				FEEBB881094213B900C371A7 /* SkTransparentShader.h in Headers */,
+				FEEBB884094213B900C371A7 /* SkUnitMapper.h in Headers */,
+				FEEBB885094213B900C371A7 /* SkUtils.h in Headers */,
+				FEEBB886094213B900C371A7 /* SkView.h in Headers */,
+				FEEBB887094213B900C371A7 /* SkViewInflate.h in Headers */,
+				FEEBB888094213B900C371A7 /* SkWidget.h in Headers */,
+				FEEBB889094213B900C371A7 /* SkWindow.h in Headers */,
+				FEEBB88A094213B900C371A7 /* SkXfermode.h in Headers */,
+				FEEBB88B094213B900C371A7 /* SkXMLParser.h in Headers */,
+				FEEBB88C094213B900C371A7 /* SkXMLWriter.h in Headers */,
+				FE5F48BC094797D00095980F /* SkBML_Verbs.h in Headers */,
+				00B5022D09DB127D00A01CD6 /* SkRegionPriv.h in Headers */,
+				002B77550A1BB07A003B067F /* SkCornerPathEffect.h in Headers */,
+				002B77560A1BB07A003B067F /* SkDeque.h in Headers */,
+				002B77570A1BB07A003B067F /* SkPaint.h in Headers */,
+				002B77580A1BB07A003B067F /* SkPorterDuff.h in Headers */,
+				002B77590A1BB07A003B067F /* SkShaderExtras.h in Headers */,
+				00081FE40A67CF1800A37923 /* SkColorFilter.h in Headers */,
+				00081FE50A67CF1800A37923 /* SkRasterizer.h in Headers */,
+				00081FE70A67CF1800A37923 /* SkTypeface.h in Headers */,
+				0084BECD0A67EB98003713D0 /* SkLayerRasterizer.h in Headers */,
+				0027DCD20B24CA4E00076079 /* SkDevice.h in Headers */,
+				003091FB0C19BE04009F515A /* SkBitmapProcShader.h in Headers */,
+				003092000C19BE04009F515A /* SkBitmapProcState.h in Headers */,
+				006B54390C42B3B0008E512D /* SkBlurDrawLooper.h in Headers */,
+				00A159D10C469A1200DB6CED /* SkBlitRow.h in Headers */,
+				00523E980C7B335D00D53402 /* SkBlurMask.h in Headers */,
+				00523E9D0C7B335D00D53402 /* SkEmbossMask_Table.h in Headers */,
+				00523E9F0C7B335D00D53402 /* SkEmbossMask.h in Headers */,
+				00523EA30C7B335D00D53402 /* SkRadialGradient_Table.h in Headers */,
+				00523EA90C7B33B100D53402 /* SkUnitMappers.h in Headers */,
+				FE20DF660C7F15D200AAC91E /* ARGB32_Clamp_Bilinear_BitmapShader.h in Headers */,
+				FE20DF680C7F15D200AAC91E /* SkAntiRun.h in Headers */,
+				FE20DF690C7F15D200AAC91E /* SkAutoKern.h in Headers */,
+				FE20DF6B0C7F15D200AAC91E /* SkBitmapProcState_matrix.h in Headers */,
+				FE20DF6C0C7F15D200AAC91E /* SkBitmapProcState_sample.h in Headers */,
+				FE20DF6E0C7F15D200AAC91E /* SkBitmapSampler.h in Headers */,
+				FE20DF6F0C7F15D200AAC91E /* SkBitmapSamplerTemplate.h in Headers */,
+				FE20DF710C7F15D200AAC91E /* SkBitmapShader.h in Headers */,
+				FE20DF720C7F15D200AAC91E /* SkBitmapShader16BilerpTemplate.h in Headers */,
+				FE20DF730C7F15D200AAC91E /* SkBitmapShaderTemplate.h in Headers */,
+				FE20DF740C7F15D200AAC91E /* SkBlitBWMaskTemplate.h in Headers */,
+				FE20DF7B0C7F15D200AAC91E /* SkBlitter.h in Headers */,
+				FE20DF7F0C7F15D200AAC91E /* SkCoreBlitters.h in Headers */,
+				FE20DF820C7F15D200AAC91E /* SkEdge.h in Headers */,
+				FE20DF840C7F15D200AAC91E /* SkFilterProc.h in Headers */,
+				FE20DF850C7F15D200AAC91E /* SkFP.h in Headers */,
+				FE20DF870C7F15D200AAC91E /* SkGeometry.h in Headers */,
+				FE20DF8A0C7F15D200AAC91E /* SkGlyphCache.h in Headers */,
+				FE20DF9B0C7F15D200AAC91E /* SkScan.h in Headers */,
+				FE20DF9C0C7F15D200AAC91E /* SkScanPriv.h in Headers */,
+				FE20DFA00C7F15D200AAC91E /* SkSpriteBlitter.h in Headers */,
+				FE20DFA10C7F15D200AAC91E /* SkSpriteBlitterTemplate.h in Headers */,
+				FE20DFA50C7F15D200AAC91E /* SkStrokerPriv.h in Headers */,
+				FE20DFA60C7F15D200AAC91E /* SkTemplatesPriv.h in Headers */,
+				FE20DFA80C7F15D200AAC91E /* SkTSort.h in Headers */,
+				003538590C85BF0D007289C0 /* SkColorShader.h in Headers */,
+				0035385A0C85BF0D007289C0 /* SkDrawFilter.h in Headers */,
+				0035385B0C85BF0D007289C0 /* SkDrawLooper.h in Headers */,
+				0035385C0C85BF0D007289C0 /* SkKernel33MaskFilter.h in Headers */,
+				0035385D0C85BF0D007289C0 /* SkPackBits.h in Headers */,
+				0035385E0C85BF0D007289C0 /* SkPicture.h in Headers */,
+				0043B2DB0D75C840004A0E2A /* SkScaledBitmapSampler.h in Headers */,
+				009A75E80DA1DF5D00876C03 /* SkDrawProcs.h in Headers */,
+				001142D70DCA3EE90070D0A3 /* SkPicturePlayback.h in Headers */,
+				001142D90DCA3EE90070D0A3 /* SkPictureRecord.h in Headers */,
+				0011430B0DCA458A0070D0A3 /* SkPictureFlat.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC06E0554671400DB518D /* graphics */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB920108733DBB0010E9CD /* Build configuration list for PBXNativeTarget "graphics" */;
+			buildPhases = (
+				D2AAC06B0554671400DB518D /* Headers */,
+				D2AAC06C0554671400DB518D /* Sources */,
+				D2AAC06D0554671400DB518D /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = graphics;
+			productName = graphics;
+			productReference = D2AAC06F0554671400DB518D /* libgraphics.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		0867D690FE84028FC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB920508733DBB0010E9CD /* Build configuration list for PBXProject "graphics" */;
+			compatibilityVersion = "Xcode 3.0";
+			hasScannedForEncodings = 1;
+			mainGroup = 0867D691FE84028FC02AAC07 /* graphics */;
+			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
+			projectDirPath = "";
+			projectRoot = ../..;
+			targets = (
+				D2AAC06E0554671400DB518D /* graphics */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC06C0554671400DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE5F486E094788030095980F /* SkImageDecoder.cpp in Sources */,
+				FE5F486F094788030095980F /* SkStream.cpp in Sources */,
+				FE5F48BD094797D00095980F /* SkBML_XMLParser.cpp in Sources */,
+				FE5F48BE094797D00095980F /* SkDOM.cpp in Sources */,
+				FE5F48C1094797D00095980F /* SkParse.cpp in Sources */,
+				FE5F48C2094797D00095980F /* SkParseColor.cpp in Sources */,
+				FE5F48C3094797D00095980F /* SkXMLParser.cpp in Sources */,
+				FE5F48C4094797D00095980F /* SkXMLWriter.cpp in Sources */,
+				FEDCE31809C9CEC70042D964 /* SkDebug.cpp in Sources */,
+				002C8E6E0A0A515000FFB8EC /* SkDeque.cpp in Sources */,
+				002B774F0A1BB054003B067F /* SkShaderExtras.cpp in Sources */,
+				00081FDE0A67CEF400A37923 /* SkRasterizer.cpp in Sources */,
+				0084BECB0A67EB6F003713D0 /* SkLayerRasterizer.cpp in Sources */,
+				000C28720AA50FFE005A479B /* SkColorFilters.cpp in Sources */,
+				000C28730AA50FFF005A479B /* SkCullPoints.cpp in Sources */,
+				000C28790AA51077005A479B /* SkColorFilter.cpp in Sources */,
+				009866480ACD95EF00B69A0B /* SkAvoidXfermode.cpp in Sources */,
+				009306CC0AD3F8520068227B /* SkCornerPathEffect.cpp in Sources */,
+				0027DCD00B24CA3900076079 /* SkDevice.cpp in Sources */,
+				00A2188A0B652EEC0056CB69 /* SkMask.cpp in Sources */,
+				003091FA0C19BE04009F515A /* SkBitmapProcShader.cpp in Sources */,
+				003091FD0C19BE04009F515A /* SkBitmapProcState_matrixProcs.cpp in Sources */,
+				003091FF0C19BE04009F515A /* SkBitmapProcState.cpp in Sources */,
+				006B542E0C42B355008E512D /* SkBlurDrawLooper.cpp in Sources */,
+				00A159D00C469A1200DB6CED /* SkBlitRow_D16.cpp in Sources */,
+				00A159D20C469A1200DB6CED /* SkDither.cpp in Sources */,
+				00523E950C7B335D00D53402 /* Sk1DPathEffect.cpp in Sources */,
+				00523E960C7B335D00D53402 /* Sk2DPathEffect.cpp in Sources */,
+				00523E970C7B335D00D53402 /* SkBlurMask.cpp in Sources */,
+				00523E990C7B335D00D53402 /* SkBlurMaskFilter.cpp in Sources */,
+				00523E9A0C7B335D00D53402 /* SkCamera.cpp in Sources */,
+				00523E9B0C7B335D00D53402 /* SkDashPathEffect.cpp in Sources */,
+				00523E9C0C7B335D00D53402 /* SkDiscretePathEffect.cpp in Sources */,
+				00523E9E0C7B335D00D53402 /* SkEmbossMask.cpp in Sources */,
+				00523EA00C7B335D00D53402 /* SkEmbossMaskFilter.cpp in Sources */,
+				00523EA10C7B335D00D53402 /* SkGradientShader.cpp in Sources */,
+				00523EA40C7B335D00D53402 /* SkTransparentShader.cpp in Sources */,
+				00523EA50C7B335D00D53402 /* SkUnitMappers.cpp in Sources */,
+				00523F420C7B3C1400D53402 /* SkFlattenable.cpp in Sources */,
+				FE20DF0C0C7F154F00AAC91E /* SkKernel33MaskFilter.cpp in Sources */,
+				FE20DF200C7F157B00AAC91E /* SkMovie.cpp in Sources */,
+				FE20DF670C7F15D200AAC91E /* SkAlphaRuns.cpp in Sources */,
+				FE20DF6A0C7F15D200AAC91E /* SkBitmap.cpp in Sources */,
+				FE20DF6D0C7F15D200AAC91E /* SkBitmapSampler.cpp in Sources */,
+				FE20DF700C7F15D200AAC91E /* SkBitmapShader.cpp in Sources */,
+				FE20DF750C7F15D200AAC91E /* SkBlitter_A1.cpp in Sources */,
+				FE20DF760C7F15D200AAC91E /* SkBlitter_A8.cpp in Sources */,
+				FE20DF770C7F15D200AAC91E /* SkBlitter_ARGB32.cpp in Sources */,
+				FE20DF780C7F15D200AAC91E /* SkBlitter_RGB16.cpp in Sources */,
+				FE20DF790C7F15D200AAC91E /* SkBlitter_Sprite.cpp in Sources */,
+				FE20DF7A0C7F15D200AAC91E /* SkBlitter.cpp in Sources */,
+				FE20DF7C0C7F15D200AAC91E /* SkCanvas.cpp in Sources */,
+				FE20DF7D0C7F15D200AAC91E /* SkColor.cpp in Sources */,
+				FE20DF7E0C7F15D200AAC91E /* SkColorTable.cpp in Sources */,
+				FE20DF800C7F15D200AAC91E /* SkDraw.cpp in Sources */,
+				FE20DF810C7F15D200AAC91E /* SkEdge.cpp in Sources */,
+				FE20DF830C7F15D200AAC91E /* SkFilterProc.cpp in Sources */,
+				FE20DF860C7F15D200AAC91E /* SkGeometry.cpp in Sources */,
+				FE20DF880C7F15D200AAC91E /* SkGlobals.cpp in Sources */,
+				FE20DF890C7F15D200AAC91E /* SkGlyphCache.cpp in Sources */,
+				FE20DF8B0C7F15D200AAC91E /* SkGraphics.cpp in Sources */,
+				FE20DF8C0C7F15D200AAC91E /* SkMaskFilter.cpp in Sources */,
+				FE20DF8D0C7F15D200AAC91E /* SkPackBits.cpp in Sources */,
+				FE20DF8E0C7F15D200AAC91E /* SkPaint.cpp in Sources */,
+				FE20DF8F0C7F15D200AAC91E /* SkPath.cpp in Sources */,
+				FE20DF900C7F15D200AAC91E /* SkPathEffect.cpp in Sources */,
+				FE20DF910C7F15D200AAC91E /* SkPathMeasure.cpp in Sources */,
+				FE20DF920C7F15D200AAC91E /* SkProcSpriteBlitter.cpp in Sources */,
+				FE20DF930C7F15D200AAC91E /* SkRefCnt.cpp in Sources */,
+				FE20DF940C7F15D200AAC91E /* SkRegion_path.cpp in Sources */,
+				FE20DF950C7F15D200AAC91E /* SkScalerContext.cpp in Sources */,
+				FE20DF960C7F15D200AAC91E /* SkScan_Antihair.cpp in Sources */,
+				FE20DF970C7F15D200AAC91E /* SkScan_AntiPath.cpp in Sources */,
+				FE20DF980C7F15D200AAC91E /* SkScan_Hairline.cpp in Sources */,
+				FE20DF990C7F15D200AAC91E /* SkScan_Path.cpp in Sources */,
+				FE20DF9A0C7F15D200AAC91E /* SkScan.cpp in Sources */,
+				FE20DF9D0C7F15D200AAC91E /* SkShader.cpp in Sources */,
+				FE20DF9E0C7F15D200AAC91E /* SkSpriteBlitter_ARGB32.cpp in Sources */,
+				FE20DF9F0C7F15D200AAC91E /* SkSpriteBlitter_RGB16.cpp in Sources */,
+				FE20DFA20C7F15D200AAC91E /* SkString.cpp in Sources */,
+				FE20DFA30C7F15D200AAC91E /* SkStroke.cpp in Sources */,
+				FE20DFA40C7F15D200AAC91E /* SkStrokerPriv.cpp in Sources */,
+				FE20DFA70C7F15D200AAC91E /* SkTSearch.cpp in Sources */,
+				FE20DFA90C7F15D200AAC91E /* SkUtils.cpp in Sources */,
+				FE20DFAA0C7F15D200AAC91E /* SkXfermode.cpp in Sources */,
+				003538200C85BDCE007289C0 /* SkPixelXorXfermode.cpp in Sources */,
+				001FFBBD0CD8D9ED000CDF07 /* SkImageRef.cpp in Sources */,
+				006D3B5F0CE0CAE700CE1224 /* SkWriter32.cpp in Sources */,
+				003E6EFE0D09EF84005435C0 /* SkColorMatrix.cpp in Sources */,
+				003E6EFF0D09EF84005435C0 /* SkColorMatrixFilter.cpp in Sources */,
+				0053B0EE0D3557960016606F /* SkPaintFlagsDrawFilter.cpp in Sources */,
+				0053B0F00D3557AD0016606F /* SkTypeface.cpp in Sources */,
+				008618740D46CC75007F0674 /* SkBlitRow_D4444.cpp in Sources */,
+				008618750D46CC75007F0674 /* SkBlitter_4444.cpp in Sources */,
+				009907F10D53A06200AD25AA /* SkBitmap_scroll.cpp in Sources */,
+				00C88FEF0D89B7920015D427 /* SkUnPreMultiply.cpp in Sources */,
+				008180E70D92D57300A2E56D /* SkScaledBitmapSampler.cpp in Sources */,
+				009A75EA0DA1DF8400876C03 /* SkNinePatch.cpp in Sources */,
+				009A39630DAE52FA00EB3A73 /* SkImageRefPool.cpp in Sources */,
+				003FF1680DAE9C0F00601F6B /* SkImageRef_GlobalPool.cpp in Sources */,
+				001142D60DCA3EE90070D0A3 /* SkPicturePlayback.cpp in Sources */,
+				001142D80DCA3EE90070D0A3 /* SkPictureRecord.cpp in Sources */,
+				0011430D0DCA45990070D0A3 /* SkPictureFlat.cpp in Sources */,
+				009B1EAE0DD224CF00EDFFF4 /* SkPixelRef.cpp in Sources */,
+				007336190DDC859F00A0DB2A /* SkPtrRecorder.cpp in Sources */,
+				00B4AC4F0E9BF59400A184BF /* SkPicture.cpp in Sources */,
+				0019627D0EACB91200447A07 /* SkPageFlipper.cpp in Sources */,
+				0019627F0EACB92A00447A07 /* SkFlipPixelRef.cpp in Sources */,
+				001962810EACB94400447A07 /* SkPathHeap.cpp in Sources */,
+				00B8EC940EB6A319003C2F6F /* SkLayerDrawLooper.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB920208733DBB0010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = graphics_Prefix.pch;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = graphics;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB920308733DBB0010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = graphics_Prefix.pch;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = graphics;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB920608733DBB0010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_DEBUGGING_SYMBOLS = full;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PFE_FILE_C_DIALECTS = "";
+				GCC_PREPROCESSOR_DEFINITIONS = SK_DEBUG;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../libs/corecg ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB920708733DBB0010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_DEBUGGING_SYMBOLS = full;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PFE_FILE_C_DIALECTS = "";
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../libs/corecg ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB920108733DBB0010E9CD /* Build configuration list for PBXNativeTarget "graphics" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB920208733DBB0010E9CD /* Debug */,
+				1DEB920308733DBB0010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB920508733DBB0010E9CD /* Build configuration list for PBXProject "graphics" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB920608733DBB0010E9CD /* Debug */,
+				1DEB920708733DBB0010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/jpeg.xcodeproj/project.pbxproj b/ide/xcode/jpeg.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..a169c20
--- /dev/null
+++ b/ide/xcode/jpeg.xcodeproj/project.pbxproj
@@ -0,0 +1,440 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		00B06C3D0E3E2D7200FAA74F /* jerror.h in Headers */ = {isa = PBXBuildFile; fileRef = 00B06C3C0E3E2D7200FAA74F /* jerror.h */; };
+		FE08AA410945D5BF0057213F /* jconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA3F0945D5BF0057213F /* jconfig.h */; };
+		FE08AA420945D5BF0057213F /* jpeglib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA400945D5BF0057213F /* jpeglib.h */; };
+		FE08AA760945DA0C0057213F /* jcapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA430945DA0C0057213F /* jcapimin.c */; };
+		FE08AA770945DA0C0057213F /* jcapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA440945DA0C0057213F /* jcapistd.c */; };
+		FE08AA780945DA0C0057213F /* jccoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA450945DA0C0057213F /* jccoefct.c */; };
+		FE08AA790945DA0C0057213F /* jccolor.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA460945DA0C0057213F /* jccolor.c */; };
+		FE08AA7A0945DA0C0057213F /* jcdctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA470945DA0C0057213F /* jcdctmgr.c */; };
+		FE08AA7B0945DA0C0057213F /* jchuff.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA480945DA0C0057213F /* jchuff.c */; };
+		FE08AA7C0945DA0C0057213F /* jcinit.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA490945DA0C0057213F /* jcinit.c */; };
+		FE08AA7D0945DA0C0057213F /* jcmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA4A0945DA0C0057213F /* jcmainct.c */; };
+		FE08AA7E0945DA0C0057213F /* jcmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA4B0945DA0C0057213F /* jcmarker.c */; };
+		FE08AA7F0945DA0C0057213F /* jcmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA4C0945DA0C0057213F /* jcmaster.c */; };
+		FE08AA800945DA0C0057213F /* jcomapi.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA4D0945DA0C0057213F /* jcomapi.c */; };
+		FE08AA810945DA0C0057213F /* jcparam.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA4E0945DA0C0057213F /* jcparam.c */; };
+		FE08AA820945DA0C0057213F /* jcphuff.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA4F0945DA0C0057213F /* jcphuff.c */; };
+		FE08AA830945DA0C0057213F /* jcprepct.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA500945DA0C0057213F /* jcprepct.c */; };
+		FE08AA840945DA0C0057213F /* jcsample.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA510945DA0C0057213F /* jcsample.c */; };
+		FE08AA850945DA0C0057213F /* jctrans.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA520945DA0C0057213F /* jctrans.c */; };
+		FE08AA860945DA0C0057213F /* jdapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA530945DA0C0057213F /* jdapimin.c */; };
+		FE08AA870945DA0C0057213F /* jdapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA540945DA0C0057213F /* jdapistd.c */; };
+		FE08AA880945DA0C0057213F /* jdatadst.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA550945DA0C0057213F /* jdatadst.c */; };
+		FE08AA890945DA0C0057213F /* jdatasrc.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA560945DA0C0057213F /* jdatasrc.c */; };
+		FE08AA8A0945DA0C0057213F /* jdcoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA570945DA0C0057213F /* jdcoefct.c */; };
+		FE08AA8B0945DA0C0057213F /* jdcolor.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA580945DA0C0057213F /* jdcolor.c */; };
+		FE08AA8C0945DA0C0057213F /* jddctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA590945DA0C0057213F /* jddctmgr.c */; };
+		FE08AA8D0945DA0C0057213F /* jdhuff.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA5A0945DA0C0057213F /* jdhuff.c */; };
+		FE08AA8E0945DA0C0057213F /* jdinput.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA5B0945DA0C0057213F /* jdinput.c */; };
+		FE08AA8F0945DA0C0057213F /* jdmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA5C0945DA0C0057213F /* jdmainct.c */; };
+		FE08AA900945DA0C0057213F /* jdmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA5D0945DA0C0057213F /* jdmarker.c */; };
+		FE08AA910945DA0C0057213F /* jdmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA5E0945DA0C0057213F /* jdmaster.c */; };
+		FE08AA920945DA0C0057213F /* jdmerge.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA5F0945DA0C0057213F /* jdmerge.c */; };
+		FE08AA930945DA0C0057213F /* jdphuff.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA600945DA0C0057213F /* jdphuff.c */; };
+		FE08AA940945DA0C0057213F /* jdpostct.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA610945DA0C0057213F /* jdpostct.c */; };
+		FE08AA950945DA0C0057213F /* jdsample.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA620945DA0C0057213F /* jdsample.c */; };
+		FE08AA960945DA0C0057213F /* jdtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA630945DA0C0057213F /* jdtrans.c */; };
+		FE08AA970945DA0C0057213F /* jerror.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA640945DA0C0057213F /* jerror.c */; };
+		FE08AA980945DA0C0057213F /* jfdctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA650945DA0C0057213F /* jfdctflt.c */; };
+		FE08AA990945DA0C0057213F /* jfdctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA660945DA0C0057213F /* jfdctfst.c */; };
+		FE08AA9A0945DA0C0057213F /* jfdctint.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA670945DA0C0057213F /* jfdctint.c */; };
+		FE08AA9B0945DA0C0057213F /* jidctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA680945DA0C0057213F /* jidctflt.c */; };
+		FE08AA9C0945DA0C0057213F /* jidctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA690945DA0C0057213F /* jidctfst.c */; };
+		FE08AA9D0945DA0C0057213F /* jidctint.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA6A0945DA0C0057213F /* jidctint.c */; };
+		FE08AA9E0945DA0C0057213F /* jidctred.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA6B0945DA0C0057213F /* jidctred.c */; };
+		FE08AA9F0945DA0C0057213F /* jmemansi.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA6C0945DA0C0057213F /* jmemansi.c */; };
+		FE08AAA20945DA0C0057213F /* jmemmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA6F0945DA0C0057213F /* jmemmgr.c */; };
+		FE08AAA60945DA0C0057213F /* jquant1.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA730945DA0C0057213F /* jquant1.c */; };
+		FE08AAA70945DA0C0057213F /* jquant2.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA740945DA0C0057213F /* jquant2.c */; };
+		FE08AAA80945DA0C0057213F /* jutils.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA750945DA0C0057213F /* jutils.c */; };
+		FE08ABBB0946182C0057213F /* jchuff.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08ABBA0946182C0057213F /* jchuff.h */; };
+		FE7B86310948E853001B952C /* SkImageDecoder_libjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE7B86300948E853001B952C /* SkImageDecoder_libjpeg.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		00B06C3C0E3E2D7200FAA74F /* jerror.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jerror.h; path = "../../extlibs/jpeg-6b/jerror.h"; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libjpeg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjpeg.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE08AA3F0945D5BF0057213F /* jconfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jconfig.h; path = "../../extlibs/jpeg-6b/jconfig.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA400945D5BF0057213F /* jpeglib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jpeglib.h; path = "../../extlibs/jpeg-6b/jpeglib.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA430945DA0C0057213F /* jcapimin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = "../../extlibs/jpeg-6b/jcapimin.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA440945DA0C0057213F /* jcapistd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = "../../extlibs/jpeg-6b/jcapistd.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA450945DA0C0057213F /* jccoefct.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = "../../extlibs/jpeg-6b/jccoefct.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA460945DA0C0057213F /* jccolor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = "../../extlibs/jpeg-6b/jccolor.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA470945DA0C0057213F /* jcdctmgr.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = "../../extlibs/jpeg-6b/jcdctmgr.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA480945DA0C0057213F /* jchuff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = "../../extlibs/jpeg-6b/jchuff.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA490945DA0C0057213F /* jcinit.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = "../../extlibs/jpeg-6b/jcinit.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA4A0945DA0C0057213F /* jcmainct.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = "../../extlibs/jpeg-6b/jcmainct.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA4B0945DA0C0057213F /* jcmarker.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = "../../extlibs/jpeg-6b/jcmarker.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA4C0945DA0C0057213F /* jcmaster.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = "../../extlibs/jpeg-6b/jcmaster.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA4D0945DA0C0057213F /* jcomapi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = "../../extlibs/jpeg-6b/jcomapi.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA4E0945DA0C0057213F /* jcparam.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = "../../extlibs/jpeg-6b/jcparam.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA4F0945DA0C0057213F /* jcphuff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = "../../extlibs/jpeg-6b/jcphuff.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA500945DA0C0057213F /* jcprepct.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = "../../extlibs/jpeg-6b/jcprepct.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA510945DA0C0057213F /* jcsample.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = "../../extlibs/jpeg-6b/jcsample.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA520945DA0C0057213F /* jctrans.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = "../../extlibs/jpeg-6b/jctrans.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA530945DA0C0057213F /* jdapimin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = "../../extlibs/jpeg-6b/jdapimin.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA540945DA0C0057213F /* jdapistd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = "../../extlibs/jpeg-6b/jdapistd.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA550945DA0C0057213F /* jdatadst.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdatadst.c; path = "../../extlibs/jpeg-6b/jdatadst.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA560945DA0C0057213F /* jdatasrc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = "../../extlibs/jpeg-6b/jdatasrc.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA570945DA0C0057213F /* jdcoefct.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = "../../extlibs/jpeg-6b/jdcoefct.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA580945DA0C0057213F /* jdcolor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = "../../extlibs/jpeg-6b/jdcolor.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA590945DA0C0057213F /* jddctmgr.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = "../../extlibs/jpeg-6b/jddctmgr.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA5A0945DA0C0057213F /* jdhuff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = "../../extlibs/jpeg-6b/jdhuff.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA5B0945DA0C0057213F /* jdinput.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = "../../extlibs/jpeg-6b/jdinput.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA5C0945DA0C0057213F /* jdmainct.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = "../../extlibs/jpeg-6b/jdmainct.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA5D0945DA0C0057213F /* jdmarker.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = "../../extlibs/jpeg-6b/jdmarker.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA5E0945DA0C0057213F /* jdmaster.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = "../../extlibs/jpeg-6b/jdmaster.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA5F0945DA0C0057213F /* jdmerge.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = "../../extlibs/jpeg-6b/jdmerge.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA600945DA0C0057213F /* jdphuff.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = "../../extlibs/jpeg-6b/jdphuff.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA610945DA0C0057213F /* jdpostct.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = "../../extlibs/jpeg-6b/jdpostct.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA620945DA0C0057213F /* jdsample.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = "../../extlibs/jpeg-6b/jdsample.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA630945DA0C0057213F /* jdtrans.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = "../../extlibs/jpeg-6b/jdtrans.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA640945DA0C0057213F /* jerror.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = "../../extlibs/jpeg-6b/jerror.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA650945DA0C0057213F /* jfdctflt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = "../../extlibs/jpeg-6b/jfdctflt.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA660945DA0C0057213F /* jfdctfst.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = "../../extlibs/jpeg-6b/jfdctfst.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA670945DA0C0057213F /* jfdctint.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = "../../extlibs/jpeg-6b/jfdctint.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA680945DA0C0057213F /* jidctflt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = "../../extlibs/jpeg-6b/jidctflt.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA690945DA0C0057213F /* jidctfst.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = "../../extlibs/jpeg-6b/jidctfst.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA6A0945DA0C0057213F /* jidctint.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = "../../extlibs/jpeg-6b/jidctint.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA6B0945DA0C0057213F /* jidctred.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = "../../extlibs/jpeg-6b/jidctred.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA6C0945DA0C0057213F /* jmemansi.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jmemansi.c; path = "../../extlibs/jpeg-6b/jmemansi.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA6F0945DA0C0057213F /* jmemmgr.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = "../../extlibs/jpeg-6b/jmemmgr.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA730945DA0C0057213F /* jquant1.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = "../../extlibs/jpeg-6b/jquant1.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA740945DA0C0057213F /* jquant2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = "../../extlibs/jpeg-6b/jquant2.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA750945DA0C0057213F /* jutils.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = "../../extlibs/jpeg-6b/jutils.c"; sourceTree = SOURCE_ROOT; };
+		FE08ABBA0946182C0057213F /* jchuff.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = jchuff.h; path = "../../extlibs/jpeg-6b/jchuff.h"; sourceTree = SOURCE_ROOT; };
+		FE7B86300948E853001B952C /* SkImageDecoder_libjpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libjpeg.cpp; path = ../../libs/graphics/images/SkImageDecoder_libjpeg.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* jpeg */ = {
+			isa = PBXGroup;
+			children = (
+				FE08AA3E0945D5620057213F /* Include */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = jpeg;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				FE7B86300948E853001B952C /* SkImageDecoder_libjpeg.cpp */,
+				FE08AA430945DA0C0057213F /* jcapimin.c */,
+				FE08AA440945DA0C0057213F /* jcapistd.c */,
+				FE08AA450945DA0C0057213F /* jccoefct.c */,
+				FE08AA460945DA0C0057213F /* jccolor.c */,
+				FE08AA470945DA0C0057213F /* jcdctmgr.c */,
+				FE08AA480945DA0C0057213F /* jchuff.c */,
+				FE08AA490945DA0C0057213F /* jcinit.c */,
+				FE08AA4A0945DA0C0057213F /* jcmainct.c */,
+				FE08AA4B0945DA0C0057213F /* jcmarker.c */,
+				FE08AA4C0945DA0C0057213F /* jcmaster.c */,
+				FE08AA4D0945DA0C0057213F /* jcomapi.c */,
+				FE08AA4E0945DA0C0057213F /* jcparam.c */,
+				FE08AA4F0945DA0C0057213F /* jcphuff.c */,
+				FE08AA500945DA0C0057213F /* jcprepct.c */,
+				FE08AA510945DA0C0057213F /* jcsample.c */,
+				FE08AA520945DA0C0057213F /* jctrans.c */,
+				FE08AA530945DA0C0057213F /* jdapimin.c */,
+				FE08AA540945DA0C0057213F /* jdapistd.c */,
+				FE08AA550945DA0C0057213F /* jdatadst.c */,
+				FE08AA560945DA0C0057213F /* jdatasrc.c */,
+				FE08AA570945DA0C0057213F /* jdcoefct.c */,
+				FE08AA580945DA0C0057213F /* jdcolor.c */,
+				FE08AA590945DA0C0057213F /* jddctmgr.c */,
+				FE08AA5A0945DA0C0057213F /* jdhuff.c */,
+				FE08AA5B0945DA0C0057213F /* jdinput.c */,
+				FE08AA5C0945DA0C0057213F /* jdmainct.c */,
+				FE08AA5D0945DA0C0057213F /* jdmarker.c */,
+				FE08AA5E0945DA0C0057213F /* jdmaster.c */,
+				FE08AA5F0945DA0C0057213F /* jdmerge.c */,
+				FE08AA600945DA0C0057213F /* jdphuff.c */,
+				FE08AA610945DA0C0057213F /* jdpostct.c */,
+				FE08AA620945DA0C0057213F /* jdsample.c */,
+				FE08AA630945DA0C0057213F /* jdtrans.c */,
+				FE08AA640945DA0C0057213F /* jerror.c */,
+				FE08AA650945DA0C0057213F /* jfdctflt.c */,
+				FE08AA660945DA0C0057213F /* jfdctfst.c */,
+				FE08AA670945DA0C0057213F /* jfdctint.c */,
+				FE08AA680945DA0C0057213F /* jidctflt.c */,
+				FE08AA690945DA0C0057213F /* jidctfst.c */,
+				FE08AA6A0945DA0C0057213F /* jidctint.c */,
+				FE08AA6B0945DA0C0057213F /* jidctred.c */,
+				FE08AA6C0945DA0C0057213F /* jmemansi.c */,
+				FE08AA6F0945DA0C0057213F /* jmemmgr.c */,
+				FE08AA730945DA0C0057213F /* jquant1.c */,
+				FE08AA740945DA0C0057213F /* jquant2.c */,
+				FE08AA750945DA0C0057213F /* jutils.c */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libjpeg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+		FE08AA3E0945D5620057213F /* Include */ = {
+			isa = PBXGroup;
+			children = (
+				00B06C3C0E3E2D7200FAA74F /* jerror.h */,
+				FE08ABBA0946182C0057213F /* jchuff.h */,
+				FE08AA3F0945D5BF0057213F /* jconfig.h */,
+				FE08AA400945D5BF0057213F /* jpeglib.h */,
+			);
+			name = Include;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE08AA410945D5BF0057213F /* jconfig.h in Headers */,
+				FE08AA420945D5BF0057213F /* jpeglib.h in Headers */,
+				FE08ABBB0946182C0057213F /* jchuff.h in Headers */,
+				00B06C3D0E3E2D7200FAA74F /* jerror.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* jpeg */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = FE5F48080947840B0095980F /* Build configuration list for PBXNativeTarget "jpeg" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = jpeg;
+			productName = jpeg;
+			productReference = D2AAC046055464E500DB518D /* libjpeg.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = FE5F480C0947840B0095980F /* Build configuration list for PBXProject "jpeg" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* jpeg */;
+			projectDirPath = "";
+			projectRoot = ../..;
+			targets = (
+				D2AAC045055464E500DB518D /* jpeg */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE08AA760945DA0C0057213F /* jcapimin.c in Sources */,
+				FE08AA770945DA0C0057213F /* jcapistd.c in Sources */,
+				FE08AA780945DA0C0057213F /* jccoefct.c in Sources */,
+				FE08AA790945DA0C0057213F /* jccolor.c in Sources */,
+				FE08AA7A0945DA0C0057213F /* jcdctmgr.c in Sources */,
+				FE08AA7B0945DA0C0057213F /* jchuff.c in Sources */,
+				FE08AA7C0945DA0C0057213F /* jcinit.c in Sources */,
+				FE08AA7D0945DA0C0057213F /* jcmainct.c in Sources */,
+				FE08AA7E0945DA0C0057213F /* jcmarker.c in Sources */,
+				FE08AA7F0945DA0C0057213F /* jcmaster.c in Sources */,
+				FE08AA800945DA0C0057213F /* jcomapi.c in Sources */,
+				FE08AA810945DA0C0057213F /* jcparam.c in Sources */,
+				FE08AA820945DA0C0057213F /* jcphuff.c in Sources */,
+				FE08AA830945DA0C0057213F /* jcprepct.c in Sources */,
+				FE08AA840945DA0C0057213F /* jcsample.c in Sources */,
+				FE08AA850945DA0C0057213F /* jctrans.c in Sources */,
+				FE08AA860945DA0C0057213F /* jdapimin.c in Sources */,
+				FE08AA870945DA0C0057213F /* jdapistd.c in Sources */,
+				FE08AA880945DA0C0057213F /* jdatadst.c in Sources */,
+				FE08AA890945DA0C0057213F /* jdatasrc.c in Sources */,
+				FE08AA8A0945DA0C0057213F /* jdcoefct.c in Sources */,
+				FE08AA8B0945DA0C0057213F /* jdcolor.c in Sources */,
+				FE08AA8C0945DA0C0057213F /* jddctmgr.c in Sources */,
+				FE08AA8D0945DA0C0057213F /* jdhuff.c in Sources */,
+				FE08AA8E0945DA0C0057213F /* jdinput.c in Sources */,
+				FE08AA8F0945DA0C0057213F /* jdmainct.c in Sources */,
+				FE08AA900945DA0C0057213F /* jdmarker.c in Sources */,
+				FE08AA910945DA0C0057213F /* jdmaster.c in Sources */,
+				FE08AA920945DA0C0057213F /* jdmerge.c in Sources */,
+				FE08AA930945DA0C0057213F /* jdphuff.c in Sources */,
+				FE08AA940945DA0C0057213F /* jdpostct.c in Sources */,
+				FE08AA950945DA0C0057213F /* jdsample.c in Sources */,
+				FE08AA960945DA0C0057213F /* jdtrans.c in Sources */,
+				FE08AA970945DA0C0057213F /* jerror.c in Sources */,
+				FE08AA980945DA0C0057213F /* jfdctflt.c in Sources */,
+				FE08AA990945DA0C0057213F /* jfdctfst.c in Sources */,
+				FE08AA9A0945DA0C0057213F /* jfdctint.c in Sources */,
+				FE08AA9B0945DA0C0057213F /* jidctflt.c in Sources */,
+				FE08AA9C0945DA0C0057213F /* jidctfst.c in Sources */,
+				FE08AA9D0945DA0C0057213F /* jidctint.c in Sources */,
+				FE08AA9E0945DA0C0057213F /* jidctred.c in Sources */,
+				FE08AA9F0945DA0C0057213F /* jmemansi.c in Sources */,
+				FE08AAA20945DA0C0057213F /* jmemmgr.c in Sources */,
+				FE08AAA60945DA0C0057213F /* jquant1.c in Sources */,
+				FE08AAA70945DA0C0057213F /* jquant2.c in Sources */,
+				FE08AAA80945DA0C0057213F /* jutils.c in Sources */,
+				FE7B86310948E853001B952C /* SkImageDecoder_libjpeg.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		FE5F48090947840B0095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = jpeg;
+				PUBLIC_HEADERS_FOLDER_PATH = "";
+				REZ_PREPROCESSOR_DEFINITIONS = "_LIB SK_FORCE_SCALARFIXED";
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		FE5F480A0947840B0095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = jpeg;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		FE5F480D0947840B0095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		FE5F480E0947840B0095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		FE5F48080947840B0095980F /* Build configuration list for PBXNativeTarget "jpeg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F48090947840B0095980F /* Debug */,
+				FE5F480A0947840B0095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		FE5F480C0947840B0095980F /* Build configuration list for PBXProject "jpeg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F480D0947840B0095980F /* Debug */,
+				FE5F480E0947840B0095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/libpng.xcodeproj/project.pbxproj b/ide/xcode/libpng.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..08ae603
--- /dev/null
+++ b/ide/xcode/libpng.xcodeproj/project.pbxproj
@@ -0,0 +1,307 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		00133B080E1413E1003D4A50 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AEF0E1413E1003D4A50 /* png.c */; };
+		00133B0B0E1413E1003D4A50 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AF40E1413E1003D4A50 /* pngerror.c */; };
+		00133B0C0E1413E1003D4A50 /* pnggccrd.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AF50E1413E1003D4A50 /* pnggccrd.c */; };
+		00133B0D0E1413E1003D4A50 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AF60E1413E1003D4A50 /* pngget.c */; };
+		00133B0E0E1413E1003D4A50 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AF70E1413E1003D4A50 /* pngmem.c */; };
+		00133B0F0E1413E1003D4A50 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AF90E1413E1003D4A50 /* pngpread.c */; };
+		00133B100E1413E1003D4A50 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AFA0E1413E1003D4A50 /* pngread.c */; };
+		00133B110E1413E1003D4A50 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AFB0E1413E1003D4A50 /* pngrio.c */; };
+		00133B120E1413E1003D4A50 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AFC0E1413E1003D4A50 /* pngrtran.c */; };
+		00133B130E1413E1003D4A50 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AFD0E1413E1003D4A50 /* pngrutil.c */; };
+		00133B140E1413E1003D4A50 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133AFE0E1413E1003D4A50 /* pngset.c */; };
+		00133B160E1413E1003D4A50 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133B010E1413E1003D4A50 /* pngtrans.c */; };
+		00133B180E1413E1003D4A50 /* pngvcrd.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133B030E1413E1003D4A50 /* pngvcrd.c */; };
+		00133B190E1413E1003D4A50 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133B040E1413E1003D4A50 /* pngwio.c */; };
+		00133B1A0E1413E1003D4A50 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133B050E1413E1003D4A50 /* pngwrite.c */; };
+		00133B1B0E1413E1003D4A50 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133B060E1413E1003D4A50 /* pngwtran.c */; };
+		00133B1C0E1413E1003D4A50 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = 00133B070E1413E1003D4A50 /* pngwutil.c */; };
+		FE7B862C0948E805001B952C /* SkImageDecoder_libpng.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE7B862B0948E805001B952C /* SkImageDecoder_libpng.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		00133AEF0E1413E1003D4A50 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = "../../extlibs/libpng-1.2.29/png.c"; sourceTree = SOURCE_ROOT; };
+		00133AF40E1413E1003D4A50 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = "../../extlibs/libpng-1.2.29/pngerror.c"; sourceTree = SOURCE_ROOT; };
+		00133AF50E1413E1003D4A50 /* pnggccrd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pnggccrd.c; path = "../../extlibs/libpng-1.2.29/pnggccrd.c"; sourceTree = SOURCE_ROOT; };
+		00133AF60E1413E1003D4A50 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = "../../extlibs/libpng-1.2.29/pngget.c"; sourceTree = SOURCE_ROOT; };
+		00133AF70E1413E1003D4A50 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = "../../extlibs/libpng-1.2.29/pngmem.c"; sourceTree = SOURCE_ROOT; };
+		00133AF90E1413E1003D4A50 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = "../../extlibs/libpng-1.2.29/pngpread.c"; sourceTree = SOURCE_ROOT; };
+		00133AFA0E1413E1003D4A50 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = "../../extlibs/libpng-1.2.29/pngread.c"; sourceTree = SOURCE_ROOT; };
+		00133AFB0E1413E1003D4A50 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = "../../extlibs/libpng-1.2.29/pngrio.c"; sourceTree = SOURCE_ROOT; };
+		00133AFC0E1413E1003D4A50 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = "../../extlibs/libpng-1.2.29/pngrtran.c"; sourceTree = SOURCE_ROOT; };
+		00133AFD0E1413E1003D4A50 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = "../../extlibs/libpng-1.2.29/pngrutil.c"; sourceTree = SOURCE_ROOT; };
+		00133AFE0E1413E1003D4A50 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = "../../extlibs/libpng-1.2.29/pngset.c"; sourceTree = SOURCE_ROOT; };
+		00133B010E1413E1003D4A50 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = "../../extlibs/libpng-1.2.29/pngtrans.c"; sourceTree = SOURCE_ROOT; };
+		00133B030E1413E1003D4A50 /* pngvcrd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngvcrd.c; path = "../../extlibs/libpng-1.2.29/pngvcrd.c"; sourceTree = SOURCE_ROOT; };
+		00133B040E1413E1003D4A50 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = "../../extlibs/libpng-1.2.29/pngwio.c"; sourceTree = SOURCE_ROOT; };
+		00133B050E1413E1003D4A50 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = "../../extlibs/libpng-1.2.29/pngwrite.c"; sourceTree = SOURCE_ROOT; };
+		00133B060E1413E1003D4A50 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = "../../extlibs/libpng-1.2.29/pngwtran.c"; sourceTree = SOURCE_ROOT; };
+		00133B070E1413E1003D4A50 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = "../../extlibs/libpng-1.2.29/pngwutil.c"; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* liblibpng.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = liblibpng.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE7B862B0948E805001B952C /* SkImageDecoder_libpng.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libpng.cpp; path = ../../libs/graphics/images/SkImageDecoder_libpng.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* libpng */ = {
+			isa = PBXGroup;
+			children = (
+				FE08AB7509460CE10057213F /* Include */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = libpng;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				00133AEF0E1413E1003D4A50 /* png.c */,
+				00133AF40E1413E1003D4A50 /* pngerror.c */,
+				00133AF50E1413E1003D4A50 /* pnggccrd.c */,
+				00133AF60E1413E1003D4A50 /* pngget.c */,
+				00133AF70E1413E1003D4A50 /* pngmem.c */,
+				00133AF90E1413E1003D4A50 /* pngpread.c */,
+				00133AFA0E1413E1003D4A50 /* pngread.c */,
+				00133AFB0E1413E1003D4A50 /* pngrio.c */,
+				00133AFC0E1413E1003D4A50 /* pngrtran.c */,
+				00133AFD0E1413E1003D4A50 /* pngrutil.c */,
+				00133AFE0E1413E1003D4A50 /* pngset.c */,
+				00133B010E1413E1003D4A50 /* pngtrans.c */,
+				00133B030E1413E1003D4A50 /* pngvcrd.c */,
+				00133B040E1413E1003D4A50 /* pngwio.c */,
+				00133B050E1413E1003D4A50 /* pngwrite.c */,
+				00133B060E1413E1003D4A50 /* pngwtran.c */,
+				00133B070E1413E1003D4A50 /* pngwutil.c */,
+				FE7B862B0948E805001B952C /* SkImageDecoder_libpng.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* liblibpng.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+		FE08AB7509460CE10057213F /* Include */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Include;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* libpng */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = FE5F4815094784400095980F /* Build configuration list for PBXNativeTarget "libpng" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = libpng;
+			productName = libpng;
+			productReference = D2AAC046055464E500DB518D /* liblibpng.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = FE5F4819094784400095980F /* Build configuration list for PBXProject "libpng" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* libpng */;
+			projectDirPath = "";
+			projectRoot = ../..;
+			targets = (
+				D2AAC045055464E500DB518D /* libpng */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE7B862C0948E805001B952C /* SkImageDecoder_libpng.cpp in Sources */,
+				00133B080E1413E1003D4A50 /* png.c in Sources */,
+				00133B0B0E1413E1003D4A50 /* pngerror.c in Sources */,
+				00133B0C0E1413E1003D4A50 /* pnggccrd.c in Sources */,
+				00133B0D0E1413E1003D4A50 /* pngget.c in Sources */,
+				00133B0E0E1413E1003D4A50 /* pngmem.c in Sources */,
+				00133B0F0E1413E1003D4A50 /* pngpread.c in Sources */,
+				00133B100E1413E1003D4A50 /* pngread.c in Sources */,
+				00133B110E1413E1003D4A50 /* pngrio.c in Sources */,
+				00133B120E1413E1003D4A50 /* pngrtran.c in Sources */,
+				00133B130E1413E1003D4A50 /* pngrutil.c in Sources */,
+				00133B140E1413E1003D4A50 /* pngset.c in Sources */,
+				00133B160E1413E1003D4A50 /* pngtrans.c in Sources */,
+				00133B180E1413E1003D4A50 /* pngvcrd.c in Sources */,
+				00133B190E1413E1003D4A50 /* pngwio.c in Sources */,
+				00133B1A0E1413E1003D4A50 /* pngwrite.c in Sources */,
+				00133B1B0E1413E1003D4A50 /* pngwtran.c in Sources */,
+				00133B1C0E1413E1003D4A50 /* pngwutil.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		FE5F4816094784400095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = (
+					../../include/graphics,
+					../../extlibs/png,
+					../../extlibs/zlib,
+				);
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = libpng;
+				REZ_PREPROCESSOR_DEFINITIONS = "_LIB PNG_USER_CONFIG SK_FORCE_SCALARFIXED";
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		FE5F4817094784400095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = libpng;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		FE5F481A094784400095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		FE5F481B094784400095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		FE5F4815094784400095980F /* Build configuration list for PBXNativeTarget "libpng" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F4816094784400095980F /* Debug */,
+				FE5F4817094784400095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		FE5F4819094784400095980F /* Build configuration list for PBXProject "libpng" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F481A094784400095980F /* Debug */,
+				FE5F481B094784400095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/ports-mac.xcodeproj/project.pbxproj b/ide/xcode/ports-mac.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..5a81cc9
--- /dev/null
+++ b/ide/xcode/ports-mac.xcodeproj/project.pbxproj
@@ -0,0 +1,252 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		00540DC209D04AD500307DCB /* SkTime_Unix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00540DC109D04AD500307DCB /* SkTime_Unix.cpp */; };
+		00E6E3520CCD19A900F102DB /* SkThread_pthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00E6E3510CCD19A900F102DB /* SkThread_pthread.cpp */; };
+		00FC59C20D09F1ED0069A803 /* SkImageDecoder_libbmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00FC59C10D09F1ED0069A803 /* SkImageDecoder_libbmp.cpp */; };
+		FE33C956094E031400C4A640 /* SkBitmap_Mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE33C954094E031400C4A640 /* SkBitmap_Mac.cpp */; };
+		FE33C957094E031400C4A640 /* SkOSWindow_Mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FE33C955094E031400C4A640 /* SkOSWindow_Mac.cpp */; };
+		FE33C959094E041D00C4A640 /* skia_mac.cp in Sources */ = {isa = PBXBuildFile; fileRef = FE33C958094E041D00C4A640 /* skia_mac.cp */; };
+		FE3487430952101C003F0C3F /* SkApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3487420952101C003F0C3F /* SkApplication.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		00540DC109D04AD500307DCB /* SkTime_Unix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTime_Unix.cpp; path = ../../libs/graphics/ports/SkTime_Unix.cpp; sourceTree = SOURCE_ROOT; };
+		00B502C909DB191900A01CD6 /* SkThread_none.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkThread_none.cpp; path = ../../libs/graphics/ports/SkThread_none.cpp; sourceTree = SOURCE_ROOT; };
+		00E6E3510CCD19A900F102DB /* SkThread_pthread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkThread_pthread.cpp; path = ../../libs/graphics/ports/SkThread_pthread.cpp; sourceTree = SOURCE_ROOT; };
+		00FC59C10D09F1ED0069A803 /* SkImageDecoder_libbmp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libbmp.cpp; path = ../../libs/graphics/images/SkImageDecoder_libbmp.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libports-mac.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libports-mac.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE33C954094E031400C4A640 /* SkBitmap_Mac.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitmap_Mac.cpp; path = ports/SkBitmap_Mac.cpp; sourceTree = "<group>"; };
+		FE33C955094E031400C4A640 /* SkOSWindow_Mac.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOSWindow_Mac.cpp; path = ports/SkOSWindow_Mac.cpp; sourceTree = "<group>"; };
+		FE33C958094E041D00C4A640 /* skia_mac.cp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = skia_mac.cp; path = ports/skia_mac.cp; sourceTree = "<group>"; };
+		FE3487420952101C003F0C3F /* SkApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkApplication.h; path = ../../include/graphics/SkApplication.h; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* ports-mac */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = "ports-mac";
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				00FC59C10D09F1ED0069A803 /* SkImageDecoder_libbmp.cpp */,
+				00E6E3510CCD19A900F102DB /* SkThread_pthread.cpp */,
+				00B502C909DB191900A01CD6 /* SkThread_none.cpp */,
+				00540DC109D04AD500307DCB /* SkTime_Unix.cpp */,
+				FE3487420952101C003F0C3F /* SkApplication.h */,
+				FE33C958094E041D00C4A640 /* skia_mac.cp */,
+				FE33C954094E031400C4A640 /* SkBitmap_Mac.cpp */,
+				FE33C955094E031400C4A640 /* SkOSWindow_Mac.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libports-mac.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE3487430952101C003F0C3F /* SkApplication.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* ports-mac */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "ports-mac" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "ports-mac";
+			productName = "ports-mac";
+			productReference = D2AAC046055464E500DB518D /* libports-mac.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "ports-mac" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* ports-mac */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* ports-mac */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE33C956094E031400C4A640 /* SkBitmap_Mac.cpp in Sources */,
+				FE33C957094E031400C4A640 /* SkOSWindow_Mac.cpp in Sources */,
+				FE33C959094E041D00C4A640 /* skia_mac.cp in Sources */,
+				00540DC209D04AD500307DCB /* SkTime_Unix.cpp in Sources */,
+				00E6E3520CCD19A900F102DB /* SkThread_pthread.cpp in Sources */,
+				00FC59C20D09F1ED0069A803 /* SkImageDecoder_libbmp.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_BUILD_FOR_MAC;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = "ports-mac";
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = "ports-mac";
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_BUILD_FOR_MAC;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "ports-mac" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "ports-mac" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/ports.xcodeproj/project.pbxproj b/ide/xcode/ports.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..d618305
--- /dev/null
+++ b/ide/xcode/ports.xcodeproj/project.pbxproj
@@ -0,0 +1,277 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		000F96970D340E3000AAF056 /* SkFontHost_gamma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000F96960D340E3000AAF056 /* SkFontHost_gamma.cpp */; };
+		00199D6A0AD6C5F000B087EA /* SkImageDecoder_libico.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00199D690AD6C5F000B087EA /* SkImageDecoder_libico.cpp */; };
+		0043B2A10D75B800004A0E2A /* bmpdecoderhelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 0043B29F0D75B800004A0E2A /* bmpdecoderhelper.h */; };
+		0043B2DE0D75C86D004A0E2A /* SkImageDecoder_libbmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0043B2DD0D75C86D004A0E2A /* SkImageDecoder_libbmp.cpp */; };
+		004E32230D0F288E007F9B40 /* SkMMapStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 004E32220D0F288D007F9B40 /* SkMMapStream.cpp */; };
+		0064A06A0AE5283700F758EE /* SkFontHost_android.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0064A0690AE5283700F758EE /* SkFontHost_android.cpp */; };
+		008CFCBD0C04C10100FB4126 /* SkImageDecoder_wbmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 008CFCBC0C04C10100FB4126 /* SkImageDecoder_wbmp.cpp */; };
+		00AC70770D0DAB9400413F47 /* SkThread_pthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00AC70760D0DAB9400413F47 /* SkThread_pthread.cpp */; };
+		00FA424D0D7601CE00D3F086 /* bmpdecoderhelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00FA424C0D7601CE00D3F086 /* bmpdecoderhelper.cpp */; };
+		FEDCDF8D09C1DB5B0042D964 /* SkMemory_stdlib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEDCDF8C09C1DB5B0042D964 /* SkMemory_stdlib.cpp */; };
+		FEDCDF9109C1DBC10042D964 /* SkDebug_stdio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEDCDF9009C1DBC10042D964 /* SkDebug_stdio.cpp */; };
+		FEEBB91809421FDD00C371A7 /* SkGlobals_global.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEEBB90E09421FDD00C371A7 /* SkGlobals_global.cpp */; };
+		FEEBB91909421FDD00C371A7 /* SkImageDecoder_Factory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEEBB90F09421FDD00C371A7 /* SkImageDecoder_Factory.cpp */; };
+		FEEBB91A09421FDD00C371A7 /* SkOSFile_stdio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEEBB91009421FDD00C371A7 /* SkOSFile_stdio.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		000F96960D340E3000AAF056 /* SkFontHost_gamma.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_gamma.cpp; path = ../../libs/graphics/ports/SkFontHost_gamma.cpp; sourceTree = SOURCE_ROOT; };
+		00199D690AD6C5F000B087EA /* SkImageDecoder_libico.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libico.cpp; path = ../../libs/graphics/images/SkImageDecoder_libico.cpp; sourceTree = SOURCE_ROOT; };
+		0043B29F0D75B800004A0E2A /* bmpdecoderhelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bmpdecoderhelper.h; path = ../../libs/graphics/images/bmpdecoderhelper.h; sourceTree = SOURCE_ROOT; };
+		0043B2DD0D75C86D004A0E2A /* SkImageDecoder_libbmp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libbmp.cpp; path = ../../libs/graphics/images/SkImageDecoder_libbmp.cpp; sourceTree = SOURCE_ROOT; };
+		004E32220D0F288D007F9B40 /* SkMMapStream.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMMapStream.cpp; path = ../../libs/graphics/images/SkMMapStream.cpp; sourceTree = SOURCE_ROOT; };
+		0064A0690AE5283700F758EE /* SkFontHost_android.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkFontHost_android.cpp; path = ../../libs/graphics/ports/SkFontHost_android.cpp; sourceTree = SOURCE_ROOT; };
+		008CFCBC0C04C10100FB4126 /* SkImageDecoder_wbmp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_wbmp.cpp; path = ../../libs/graphics/images/SkImageDecoder_wbmp.cpp; sourceTree = SOURCE_ROOT; };
+		00AC70760D0DAB9400413F47 /* SkThread_pthread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkThread_pthread.cpp; path = ../../libs/graphics/ports/SkThread_pthread.cpp; sourceTree = SOURCE_ROOT; };
+		00FA424C0D7601CE00D3F086 /* bmpdecoderhelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bmpdecoderhelper.cpp; path = ../../libs/graphics/images/bmpdecoderhelper.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libports.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libports.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE5F473C0947737F0095980F /* SkThread_none.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkThread_none.cpp; path = ../../libs/graphics/ports/SkThread_none.cpp; sourceTree = SOURCE_ROOT; };
+		FEDCDF8C09C1DB5B0042D964 /* SkMemory_stdlib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMemory_stdlib.cpp; path = ../../libs/corecg/SkMemory_stdlib.cpp; sourceTree = SOURCE_ROOT; };
+		FEDCDF9009C1DBC10042D964 /* SkDebug_stdio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkDebug_stdio.cpp; path = ../../libs/corecg/SkDebug_stdio.cpp; sourceTree = SOURCE_ROOT; };
+		FEEBB90E09421FDD00C371A7 /* SkGlobals_global.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkGlobals_global.cpp; path = ../../libs/graphics/ports/SkGlobals_global.cpp; sourceTree = SOURCE_ROOT; };
+		FEEBB90F09421FDD00C371A7 /* SkImageDecoder_Factory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_Factory.cpp; path = ../../libs/graphics/ports/SkImageDecoder_Factory.cpp; sourceTree = SOURCE_ROOT; };
+		FEEBB91009421FDD00C371A7 /* SkOSFile_stdio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOSFile_stdio.cpp; path = ../../libs/graphics/ports/SkOSFile_stdio.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* ports */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = ports;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				00FA424C0D7601CE00D3F086 /* bmpdecoderhelper.cpp */,
+				0043B2DD0D75C86D004A0E2A /* SkImageDecoder_libbmp.cpp */,
+				0043B29F0D75B800004A0E2A /* bmpdecoderhelper.h */,
+				000F96960D340E3000AAF056 /* SkFontHost_gamma.cpp */,
+				004E32220D0F288D007F9B40 /* SkMMapStream.cpp */,
+				00AC70760D0DAB9400413F47 /* SkThread_pthread.cpp */,
+				008CFCBC0C04C10100FB4126 /* SkImageDecoder_wbmp.cpp */,
+				0064A0690AE5283700F758EE /* SkFontHost_android.cpp */,
+				00199D690AD6C5F000B087EA /* SkImageDecoder_libico.cpp */,
+				FEDCDF9009C1DBC10042D964 /* SkDebug_stdio.cpp */,
+				FEDCDF8C09C1DB5B0042D964 /* SkMemory_stdlib.cpp */,
+				FE5F473C0947737F0095980F /* SkThread_none.cpp */,
+				FEEBB90E09421FDD00C371A7 /* SkGlobals_global.cpp */,
+				FEEBB90F09421FDD00C371A7 /* SkImageDecoder_Factory.cpp */,
+				FEEBB91009421FDD00C371A7 /* SkOSFile_stdio.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libports.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				0043B2A10D75B800004A0E2A /* bmpdecoderhelper.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* ports */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "ports" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = ports;
+			productName = ports;
+			productReference = D2AAC046055464E500DB518D /* libports.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "ports" */;
+			compatibilityVersion = "Xcode 2.4";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* ports */;
+			projectDirPath = "";
+			projectRoot = ../..;
+			targets = (
+				D2AAC045055464E500DB518D /* ports */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FEEBB91809421FDD00C371A7 /* SkGlobals_global.cpp in Sources */,
+				FEEBB91909421FDD00C371A7 /* SkImageDecoder_Factory.cpp in Sources */,
+				FEEBB91A09421FDD00C371A7 /* SkOSFile_stdio.cpp in Sources */,
+				FEDCDF8D09C1DB5B0042D964 /* SkMemory_stdlib.cpp in Sources */,
+				FEDCDF9109C1DBC10042D964 /* SkDebug_stdio.cpp in Sources */,
+				00199D6A0AD6C5F000B087EA /* SkImageDecoder_libico.cpp in Sources */,
+				0064A06A0AE5283700F758EE /* SkFontHost_android.cpp in Sources */,
+				008CFCBD0C04C10100FB4126 /* SkImageDecoder_wbmp.cpp in Sources */,
+				00AC70770D0DAB9400413F47 /* SkThread_pthread.cpp in Sources */,
+				004E32230D0F288E007F9B40 /* SkMMapStream.cpp in Sources */,
+				000F96970D340E3000AAF056 /* SkFontHost_gamma.cpp in Sources */,
+				0043B2DE0D75C86D004A0E2A /* SkImageDecoder_libbmp.cpp in Sources */,
+				00FA424D0D7601CE00D3F086 /* bmpdecoderhelper.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = ports;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = ports;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_BUILD_FOR_MAC;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					SK_BUILD_FOR_MAC,
+					SK_RELEASE,
+				);
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "ports" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "ports" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/ports/SkBitmap_Mac.cpp b/ide/xcode/ports/SkBitmap_Mac.cpp
new file mode 100644
index 0000000..06c2b27
--- /dev/null
+++ b/ide/xcode/ports/SkBitmap_Mac.cpp
@@ -0,0 +1,142 @@
+#include "SkBitmap.h"
+#include "SkColorPriv.h"
+#include "SkMath.h"
+
+#if defined(SK_BUILD_FOR_MAC) && !defined(SK_USE_WXWIDGETS)
+
+#include <ApplicationServices/ApplicationServices.h>
+
+#ifndef __ppc__
+    #define SWAP_16BIT
+#endif
+
+static void convertGL32_to_Mac32(uint32_t dst[], const SkBitmap& bm) {
+    memcpy(dst, bm.getPixels(), bm.getSize());
+    return;
+    
+    uint32_t* stop = dst + (bm.getSize() >> 2);
+    const uint8_t* src = (const uint8_t*)bm.getPixels();
+    while (dst < stop) {
+        *dst++ = src[2] << 24 | src[1] << 16 | src[0] << 8 | src[3] << 0;
+        src += sizeof(uint32_t);
+    }
+}
+
+static void convert565_to_32(uint32_t dst[], const SkBitmap& bm) {
+    for (int y = 0; y < bm.height(); y++) {
+        const uint16_t* src = bm.getAddr16(0, y);
+        const uint16_t* stop = src + bm.width();
+        while (src < stop) {
+            unsigned c = *src++;
+            unsigned r = SkPacked16ToR32(c);
+            unsigned g = SkPacked16ToG32(c);
+            unsigned b = SkPacked16ToB32(c);
+        
+            *dst++ = (b << 24) | (g << 16) | (r << 8) | 0xFF;
+        }
+    }
+}
+
+static void convert4444_to_555(uint16_t dst[], const uint16_t src[], int count)
+{
+    const uint16_t* stop = src + count;
+    
+    while (src < stop)
+    {
+        unsigned c = *src++;
+        
+        unsigned r = SkGetPackedR4444(c);
+        unsigned g = SkGetPackedG4444(c);
+        unsigned b = SkGetPackedB4444(c);
+        // convert to 5 bits
+        r = (r << 1) | (r >> 3);
+        g = (g << 1) | (g >> 3);
+        b = (b << 1) | (b >> 3);
+        // build the 555
+        c = (r << 10) | (g << 5) | b;
+        
+#ifdef SWAP_16BIT
+        c = (c >> 8) | (c << 8);
+#endif
+        *dst++ = c;
+    }
+}
+
+#include "SkTemplates.h"
+
+static CGImageRef bitmap2imageref(const SkBitmap& bm) {
+    size_t  bitsPerComp;
+    size_t  bitsPerPixel;
+    CGBitmapInfo info;
+    CGColorSpaceRef cs = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);
+    CGDataProviderRef data = CGDataProviderCreateWithData(NULL,
+                                                           bm.getPixels(),
+                                                           bm.getSize(),
+                                                           NULL);
+    SkAutoTCallVProc<CGDataProvider, CGDataProviderRelease> acp(data);
+    SkAutoTCallVProc<CGColorSpace, CGColorSpaceRelease> acp2(cs);
+
+    switch (bm.config()) {
+        case SkBitmap::kARGB_8888_Config:
+            bitsPerComp = 8;
+            bitsPerPixel = 32;
+            info = kCGImageAlphaPremultipliedLast;
+            break;
+        case SkBitmap::kARGB_4444_Config:
+            bitsPerComp = 4;
+            bitsPerPixel = 16;
+            info = kCGImageAlphaPremultipliedLast |  kCGBitmapByteOrder16Little;
+            break;
+#if 0   // not supported by quartz !!!
+        case SkBitmap::kRGB_565_Config:
+            bitsPerComp = 5;
+            bitsPerPixel = 16;
+            info = kCGImageAlphaNone | kCGBitmapByteOrder16Little;
+            break;
+#endif
+        default:
+            return NULL;
+    }
+
+    return CGImageCreate(bm.width(), bm.height(), bitsPerComp, bitsPerPixel,
+                         bm.rowBytes(), cs, info, data,
+                         NULL, false, kCGRenderingIntentDefault);
+}
+
+void SkBitmap::drawToPort(WindowRef wind, CGContextRef cg) const {
+	if (fPixels == NULL || fWidth == 0 || fHeight == 0) {
+		return;
+    }
+    
+    bool useQD = false;
+    if (NULL == cg) {
+        SetPortWindowPort(wind);
+        QDBeginCGContext(GetWindowPort(wind), &cg);
+        useQD = true;
+    }
+
+    SkBitmap bm;
+    if (this->config() == kRGB_565_Config) {
+        this->copyTo(&bm, kARGB_8888_Config);
+    } else {
+        bm = *this;
+    }
+    bm.lockPixels();
+
+    CGImageRef image = bitmap2imageref(bm);
+    if (image) {
+        CGRect rect;
+        rect.origin.x = rect.origin.y = 0;
+        rect.size.width = bm.width();
+        rect.size.height = bm.height();
+        
+        CGContextDrawImage(cg, rect, image);
+        CGImageRelease(image);
+    }
+
+    if (useQD) {
+        QDEndCGContext(GetWindowPort(wind), &cg);
+    }
+}
+
+#endif
diff --git a/ide/xcode/ports/SkOSWindow_Mac.cpp b/ide/xcode/ports/SkOSWindow_Mac.cpp
new file mode 100644
index 0000000..5184da5
--- /dev/null
+++ b/ide/xcode/ports/SkOSWindow_Mac.cpp
@@ -0,0 +1,328 @@
+#if defined(SK_BUILD_FOR_MAC) && !defined(SK_USE_WXWIDGETS)
+
+#include "SkWindow.h"
+#include "SkCanvas.h"
+#include "SkOSMenu.h"
+#include "SkTime.h"
+
+#include "SkGraphics.h"
+#include <new.h>
+
+static void (*gPrevNewHandler)();
+
+extern "C" {
+	static void sk_new_handler()
+	{
+		if (SkGraphics::SetFontCacheUsed(0))
+			return;
+		if (gPrevNewHandler)
+			gPrevNewHandler();
+		else
+			sk_throw();
+	}
+}
+
+static SkOSWindow* gCurrOSWin;
+static EventTargetRef gEventTarget;
+static EventQueueRef gCurrEventQ;
+
+#define SK_MacEventClass			FOUR_CHAR_CODE('SKec')
+#define SK_MacEventKind				FOUR_CHAR_CODE('SKek')
+#define SK_MacEventParamName		FOUR_CHAR_CODE('SKev')
+#define SK_MacEventSinkIDParamName	FOUR_CHAR_CODE('SKes')
+
+SkOSWindow::SkOSWindow(void* hWnd) : fHWND(hWnd)
+{	
+	static const EventTypeSpec  gTypes[] = {
+		{ kEventClassKeyboard,  kEventRawKeyDown			},
+        { kEventClassKeyboard,  kEventRawKeyUp              },
+		{ kEventClassMouse,		kEventMouseDown				},
+		{ kEventClassMouse,		kEventMouseDragged			},
+		{ kEventClassMouse,		kEventMouseUp				},
+		{ kEventClassTextInput, kEventTextInputUnicodeForKeyEvent   },
+		{ kEventClassWindow,	kEventWindowBoundsChanged	},
+		{ kEventClassWindow,	kEventWindowDrawContent		},
+		{ SK_MacEventClass,		SK_MacEventKind				}
+	};
+
+	EventHandlerUPP handlerUPP = NewEventHandlerUPP(SkOSWindow::EventHandler);
+	int				count = SK_ARRAY_COUNT(gTypes);
+	OSStatus		result;
+
+	result = InstallEventHandler(GetWindowEventTarget((WindowRef)hWnd), handlerUPP,
+						count, gTypes, this, nil);
+	SkASSERT(result == noErr);
+
+	gCurrOSWin = this;
+	gCurrEventQ = GetCurrentEventQueue();
+	gEventTarget = GetWindowEventTarget((WindowRef)hWnd);
+
+	static bool gOnce = true;
+	if (gOnce) {
+		gOnce = false;
+		gPrevNewHandler = set_new_handler(sk_new_handler);
+	}
+}
+
+void SkOSWindow::doPaint(void* ctx)
+{
+	this->update(NULL);
+
+	this->getBitmap().drawToPort((WindowRef)fHWND, (CGContextRef)ctx);
+}
+
+void SkOSWindow::updateSize()
+{
+	Rect	r;
+	
+	GetWindowBounds((WindowRef)fHWND, kWindowContentRgn, &r);
+	this->resize(r.right - r.left, r.bottom - r.top);
+}
+
+void SkOSWindow::onHandleInval(const SkIRect& r)
+{
+	Rect	rect;
+	
+	rect.left   = r.fLeft;
+	rect.top	= r.fTop;
+	rect.right  = r.fRight;
+	rect.bottom = r.fBottom;
+	InvalWindowRect((WindowRef)fHWND, &rect);
+}
+
+void SkOSWindow::onSetTitle(const char title[])
+{
+    CFStringRef str = CFStringCreateWithCString(NULL, title, kCFStringEncodingUTF8);
+    SetWindowTitleWithCFString((WindowRef)fHWND, str);
+    CFRelease(str);
+}
+
+void SkOSWindow::onAddMenu(const SkOSMenu* sk_menu)
+{
+}
+
+static void getparam(EventRef inEvent, OSType name, OSType type, UInt32 size, void* data)
+{
+	EventParamType  actualType;
+	UInt32			actualSize;
+	OSStatus		status;
+
+	status = GetEventParameter(inEvent, name, type, &actualType, size, &actualSize, data);
+	SkASSERT(status == noErr);
+	SkASSERT(actualType == type);
+	SkASSERT(actualSize == size);
+}
+
+enum {
+	SK_MacReturnKey		= 36,
+	SK_MacDeleteKey		= 51,
+	SK_MacEndKey		= 119,
+	SK_MacLeftKey		= 123,
+	SK_MacRightKey		= 124,
+	SK_MacDownKey		= 125,
+	SK_MacUpKey			= 126,
+    
+    SK_Mac0Key          = 0x52,
+    SK_Mac1Key          = 0x53,
+    SK_Mac2Key          = 0x54,
+    SK_Mac3Key          = 0x55,
+    SK_Mac4Key          = 0x56,
+    SK_Mac5Key          = 0x57,
+    SK_Mac6Key          = 0x58,
+    SK_Mac7Key          = 0x59,
+    SK_Mac8Key          = 0x5b,
+    SK_Mac9Key          = 0x5c
+};
+	
+static SkKey raw2key(UInt32 raw)
+{
+	static const struct {
+		UInt32  fRaw;
+		SkKey   fKey;
+	} gKeys[] = {
+		{ SK_MacUpKey,		kUp_SkKey		},
+		{ SK_MacDownKey,	kDown_SkKey		},
+		{ SK_MacLeftKey,	kLeft_SkKey		},
+		{ SK_MacRightKey,   kRight_SkKey	},
+		{ SK_MacReturnKey,  kOK_SkKey		},
+		{ SK_MacDeleteKey,  kBack_SkKey		},
+		{ SK_MacEndKey,		kEnd_SkKey		},
+        { SK_Mac0Key,       k0_SkKey        },
+        { SK_Mac1Key,       k1_SkKey        },
+        { SK_Mac2Key,       k2_SkKey        },
+        { SK_Mac3Key,       k3_SkKey        },
+        { SK_Mac4Key,       k4_SkKey        },
+        { SK_Mac5Key,       k5_SkKey        },
+        { SK_Mac6Key,       k6_SkKey        },
+        { SK_Mac7Key,       k7_SkKey        },
+        { SK_Mac8Key,       k8_SkKey        },
+        { SK_Mac9Key,       k9_SkKey        }
+	};
+	
+	for (unsigned i = 0; i < SK_ARRAY_COUNT(gKeys); i++)
+		if (gKeys[i].fRaw == raw)
+			return gKeys[i].fKey;
+	return kNONE_SkKey;
+}
+
+static void post_skmacevent()
+{
+	EventRef	ref;
+	OSStatus	status = CreateEvent(nil, SK_MacEventClass, SK_MacEventKind, 0, 0, &ref);
+	SkASSERT(status == noErr);
+	
+#if 0
+	status = SetEventParameter(ref, SK_MacEventParamName, SK_MacEventParamName, sizeof(evt), &evt);
+	SkASSERT(status == noErr);
+	status = SetEventParameter(ref, SK_MacEventSinkIDParamName, SK_MacEventSinkIDParamName, sizeof(sinkID), &sinkID);
+	SkASSERT(status == noErr);
+#endif
+	
+	EventTargetRef target = gEventTarget;
+	SetEventParameter(ref, kEventParamPostTarget, typeEventTargetRef, sizeof(target), &target);
+	SkASSERT(status == noErr);
+	
+	status = PostEventToQueue(gCurrEventQ, ref, kEventPriorityStandard);
+	SkASSERT(status == noErr);
+
+	ReleaseEvent(ref);
+}
+
+pascal OSStatus SkOSWindow::EventHandler( EventHandlerCallRef inHandler, EventRef inEvent, void* userData )
+{
+	SkOSWindow* win = (SkOSWindow*)userData;
+	OSStatus	result = eventNotHandledErr;
+	UInt32		wClass = GetEventClass(inEvent);
+	UInt32		wKind = GetEventKind(inEvent);
+
+	gCurrOSWin = win;	// will need to be in TLS. Set this so PostEvent will work
+
+	switch (wClass) {
+        case kEventClassMouse: {
+			Point   pt;
+			getparam(inEvent, kEventParamMouseLocation, typeQDPoint, sizeof(pt), &pt);
+			SetPortWindowPort((WindowRef)win->getHWND());
+			GlobalToLocal(&pt);
+
+			switch (wKind) {
+			case kEventMouseDown:
+				(void)win->handleClick(pt.h, pt.v, Click::kDown_State);
+				break;
+			case kEventMouseDragged:
+				(void)win->handleClick(pt.h, pt.v, Click::kMoved_State);
+				break;
+			case kEventMouseUp:
+				(void)win->handleClick(pt.h, pt.v, Click::kUp_State);
+				break;
+			default:
+				break;
+			}
+            break;
+		}
+        case kEventClassKeyboard:
+            if (wKind == kEventRawKeyDown) {
+                UInt32  raw;
+                getparam(inEvent, kEventParamKeyCode, typeUInt32, sizeof(raw), &raw);
+                SkKey key = raw2key(raw);
+                if (key != kNONE_SkKey)
+                    (void)win->handleKey(key);
+            } else if (wKind == kEventRawKeyUp) {
+                UInt32 raw;
+                getparam(inEvent, kEventParamKeyCode, typeUInt32, sizeof(raw), &raw);
+                SkKey key = raw2key(raw);
+                if (key != kNONE_SkKey)
+                    (void)win->handleKeyUp(key);
+            }
+            break;
+        case kEventClassTextInput:
+            if (wKind == kEventTextInputUnicodeForKeyEvent) {
+                UInt16  uni;
+                getparam(inEvent, kEventParamTextInputSendText, typeUnicodeText, sizeof(uni), &uni);
+                win->handleChar(uni);
+            }
+            break;
+        case kEventClassWindow:
+            switch (wKind) {
+                case kEventWindowBoundsChanged:
+                    win->updateSize();
+                    break;
+                case kEventWindowDrawContent: {
+                    CGContextRef cg;
+                    result = GetEventParameter(inEvent,
+                                               kEventParamCGContextRef,
+                                               typeCGContextRef,
+                                               NULL,
+                                               sizeof (CGContextRef),
+                                               NULL,
+                                               &cg);
+                    if (result != 0) {
+                        cg = NULL;
+                    }
+                    win->doPaint(cg);
+                    break;
+                }
+                default:
+                    break;
+            }
+            break;
+        case SK_MacEventClass: {
+            SkASSERT(wKind == SK_MacEventKind);
+            if (SkEvent::ProcessEvent()) {
+                    post_skmacevent();
+            }
+    #if 0
+            SkEvent*		evt;
+            SkEventSinkID	sinkID;
+            getparam(inEvent, SK_MacEventParamName, SK_MacEventParamName, sizeof(evt), &evt);
+            getparam(inEvent, SK_MacEventSinkIDParamName, SK_MacEventSinkIDParamName, sizeof(sinkID), &sinkID);
+    #endif
+            result = noErr;
+            break;
+        }
+        default:
+            break;
+	}
+	if (result == eventNotHandledErr) {
+		result = CallNextEventHandler(inHandler, inEvent);
+    }
+	return result;
+}
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+void SkEvent::SignalNonEmptyQueue()
+{
+	post_skmacevent();
+//	SkDebugf("signal nonempty\n");
+}
+
+static TMTask	gTMTaskRec;
+static TMTask*	gTMTaskPtr;
+
+static void sk_timer_proc(TMTask* rec)
+{
+	SkEvent::ServiceQueueTimer();
+//	SkDebugf("timer task fired\n");
+}
+
+void SkEvent::SignalQueueTimer(SkMSec delay)
+{
+	if (gTMTaskPtr)
+	{
+		RemoveTimeTask((QElem*)gTMTaskPtr);
+		DisposeTimerUPP(gTMTaskPtr->tmAddr);
+		gTMTaskPtr = nil;
+	}
+	if (delay)
+	{
+		gTMTaskPtr = &gTMTaskRec;
+		memset(gTMTaskPtr, 0, sizeof(gTMTaskRec));
+		gTMTaskPtr->tmAddr = NewTimerUPP(sk_timer_proc);
+		OSErr err = InstallTimeTask((QElem*)gTMTaskPtr);
+//		SkDebugf("installtimetask of %d returned %d\n", delay, err);
+		PrimeTimeTask((QElem*)gTMTaskPtr, delay);
+	}
+}
+
+#endif
+
diff --git a/ide/xcode/ports/skia_mac.cp b/ide/xcode/ports/skia_mac.cp
new file mode 100644
index 0000000..e6638d4
--- /dev/null
+++ b/ide/xcode/ports/skia_mac.cp
@@ -0,0 +1,96 @@
+#if defined(SK_BUILD_FOR_MAC) && !defined(SK_USE_WXWIDGETS)
+#include <Carbon/Carbon.h>
+#include <unistd.h>
+#include <cerrno>
+#include "SkApplication.h"
+#include "SkTypes.h"
+
+extern void get_preferred_size(int*, int*, int*, int* );
+
+int main(int argc, char* argv[])
+{
+    
+#if 0
+{
+	FILE* f = ::fopen("/whereami.txt", "w");
+	for (int i = 0; i < argc; i++)
+		fprintf(f, "[%d] %s\n", i, argv[i]);
+	::fclose(f);
+}
+#else
+// argv[0] is set to the execution path of the application, e.g. 
+// /Users/caryclark/android/device/build/ide/xcode/animatorTest/build/Debug/animatorTest.app/Contents/MacOS/animatorTest
+// the desired directory path is :
+// /Users/caryclark/android/device/jsapps
+// the variable (client-specific) part is :
+// /Users/caryclark/android/
+// since different applications share this library, they only have in common:
+// {client}/device/build/ide/xcode/{application}
+{
+	const char* applicationPath = argv[0];
+	const char* common = strstr(applicationPath, "build/ide/xcode/");
+	const char systemParent[] = "apps/"; 
+	if (common != 0) {
+		size_t prefixLength = common - applicationPath;
+		char* workingDirectory = new char[prefixLength + sizeof(systemParent)];
+		strncpy(workingDirectory, applicationPath, prefixLength);
+		strcpy(&workingDirectory[prefixLength], systemParent);
+		int error = chdir(workingDirectory);
+		if (error != 0) {
+			error = errno;
+			SkASSERT(error != ENOENT);
+			SkASSERT(error != ENOTDIR);
+			SkASSERT(error != EACCES);
+			SkASSERT(error != EIO);
+			SkASSERT(0);
+		}
+		delete workingDirectory;
+	}
+}
+#endif
+	IBNibRef 		nibRef;
+    WindowRef 		window;
+    
+    OSStatus		err;
+
+    // Create a Nib reference passing the name of the nib file (without the .nib extension)
+    // CreateNibReference only searches into the application bundle.
+    err = CreateNibReference(CFSTR("main"), &nibRef);
+    require_noerr( err, CantGetNibRef );
+    
+    // Once the nib reference is created, set the menu bar. "MainMenu" is the name of the menu bar
+    // object. This name is set in InterfaceBuilder when the nib is created.
+    err = SetMenuBarFromNib(nibRef, CFSTR("MenuBar"));
+    require_noerr( err, CantSetMenuBar );
+    
+    // Then create a window. "MainWindow" is the name of the window object. This name is set in 
+    // InterfaceBuilder when the nib is created.
+    err = CreateWindowFromNib(nibRef, CFSTR("MainWindow"), &window);
+    require_noerr( err, CantCreateWindow );
+
+    // We don't need the nib reference anymore.
+    DisposeNibReference(nibRef);
+    {
+	// if we get here, we can start our normal Skia sequence
+	application_init();
+	(void)create_sk_window(window);
+        int x =0, y =0, width =640, height=480;
+        get_preferred_size(&x, &y, &width, &height);
+        MoveWindow(window, x, y, false);
+        SizeWindow(window, width, height, false);
+    }
+    // The window was created hidden so show it.
+    ShowWindow( window );
+
+    // Call the event loop
+    RunApplicationEventLoop();
+	
+	application_term();
+
+CantCreateWindow:
+CantSetMenuBar:
+CantGetNibRef:
+	return err;
+}
+
+#endif
\ No newline at end of file
diff --git a/ide/xcode/pvjpeg.xcodeproj/project.pbxproj b/ide/xcode/pvjpeg.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..5d09e2d
--- /dev/null
+++ b/ide/xcode/pvjpeg.xcodeproj/project.pbxproj
@@ -0,0 +1,261 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 44;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		007ECA0E0DA67F7B0086775A /* jpgdec_bitstream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA010DA67F7B0086775A /* jpgdec_bitstream.cpp */; };
+		007ECA0F0DA67F7B0086775A /* jpgdec_cint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA020DA67F7B0086775A /* jpgdec_cint.cpp */; };
+		007ECA100DA67F7B0086775A /* jpgdec_colorconv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA030DA67F7B0086775A /* jpgdec_colorconv.cpp */; };
+		007ECA110DA67F7B0086775A /* jpgdec_ct.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA040DA67F7B0086775A /* jpgdec_ct.cpp */; };
+		007ECA120DA67F7B0086775A /* jpgdec_decoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA050DA67F7B0086775A /* jpgdec_decoder.cpp */; };
+		007ECA130DA67F7B0086775A /* jpgdec_header.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA060DA67F7B0086775A /* jpgdec_header.cpp */; };
+		007ECA140DA67F7B0086775A /* jpgdec_huffman.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA070DA67F7B0086775A /* jpgdec_huffman.cpp */; };
+		007ECA150DA67F7B0086775A /* jpgdec_idctp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA080DA67F7B0086775A /* jpgdec_idctp.cpp */; };
+		007ECA160DA67F7B0086775A /* jpgdec_idcts.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA090DA67F7B0086775A /* jpgdec_idcts.cpp */; };
+		007ECA170DA67F7B0086775A /* jpgdec_scan.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA0A0DA67F7B0086775A /* jpgdec_scan.cpp */; };
+		007ECA180DA67F7B0086775A /* jpgdec_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA0B0DA67F7B0086775A /* jpgdec_table.cpp */; };
+		007ECA190DA67F7B0086775A /* jpgdec_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA0C0DA67F7B0086775A /* jpgdec_utils.cpp */; };
+		007ECA1A0DA67F7B0086775A /* pvjpgdecoder_factory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA0D0DA67F7B0086775A /* pvjpgdecoder_factory.cpp */; };
+		007ECA500DA683160086775A /* SkImageDecoder_libpvjpeg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 007ECA4F0DA683160086775A /* SkImageDecoder_libpvjpeg.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		007ECA010DA67F7B0086775A /* jpgdec_bitstream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_bitstream.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_bitstream.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA020DA67F7B0086775A /* jpgdec_cint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_cint.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_cint.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA030DA67F7B0086775A /* jpgdec_colorconv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_colorconv.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_colorconv.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA040DA67F7B0086775A /* jpgdec_ct.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_ct.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_ct.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA050DA67F7B0086775A /* jpgdec_decoder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_decoder.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_decoder.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA060DA67F7B0086775A /* jpgdec_header.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_header.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_header.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA070DA67F7B0086775A /* jpgdec_huffman.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_huffman.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_huffman.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA080DA67F7B0086775A /* jpgdec_idctp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_idctp.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_idctp.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA090DA67F7B0086775A /* jpgdec_idcts.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_idcts.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_idcts.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA0A0DA67F7B0086775A /* jpgdec_scan.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_scan.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_scan.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA0B0DA67F7B0086775A /* jpgdec_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_table.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_table.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA0C0DA67F7B0086775A /* jpgdec_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = jpgdec_utils.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/jpgdec_utils.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA0D0DA67F7B0086775A /* pvjpgdecoder_factory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pvjpgdecoder_factory.cpp; path = ../../extlibs/pv/codecs_v2/image/jpeg/dec/src/pvjpgdecoder_factory.cpp; sourceTree = SOURCE_ROOT; };
+		007ECA4F0DA683160086775A /* SkImageDecoder_libpvjpeg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageDecoder_libpvjpeg.cpp; path = ../../libs/graphics/images/SkImageDecoder_libpvjpeg.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libpvjpeg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libpvjpeg.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* pvjpeg */ = {
+			isa = PBXGroup;
+			children = (
+				007ECA4F0DA683160086775A /* SkImageDecoder_libpvjpeg.cpp */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = pvjpeg;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				007ECA010DA67F7B0086775A /* jpgdec_bitstream.cpp */,
+				007ECA020DA67F7B0086775A /* jpgdec_cint.cpp */,
+				007ECA030DA67F7B0086775A /* jpgdec_colorconv.cpp */,
+				007ECA040DA67F7B0086775A /* jpgdec_ct.cpp */,
+				007ECA050DA67F7B0086775A /* jpgdec_decoder.cpp */,
+				007ECA060DA67F7B0086775A /* jpgdec_header.cpp */,
+				007ECA070DA67F7B0086775A /* jpgdec_huffman.cpp */,
+				007ECA080DA67F7B0086775A /* jpgdec_idctp.cpp */,
+				007ECA090DA67F7B0086775A /* jpgdec_idcts.cpp */,
+				007ECA0A0DA67F7B0086775A /* jpgdec_scan.cpp */,
+				007ECA0B0DA67F7B0086775A /* jpgdec_table.cpp */,
+				007ECA0C0DA67F7B0086775A /* jpgdec_utils.cpp */,
+				007ECA0D0DA67F7B0086775A /* pvjpgdecoder_factory.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libpvjpeg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* pvjpeg */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "pvjpeg" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = pvjpeg;
+			productName = pvjpeg;
+			productReference = D2AAC046055464E500DB518D /* libpvjpeg.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "pvjpeg" */;
+			compatibilityVersion = "Xcode 3.0";
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* pvjpeg */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC045055464E500DB518D /* pvjpeg */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				007ECA0E0DA67F7B0086775A /* jpgdec_bitstream.cpp in Sources */,
+				007ECA0F0DA67F7B0086775A /* jpgdec_cint.cpp in Sources */,
+				007ECA100DA67F7B0086775A /* jpgdec_colorconv.cpp in Sources */,
+				007ECA110DA67F7B0086775A /* jpgdec_ct.cpp in Sources */,
+				007ECA120DA67F7B0086775A /* jpgdec_decoder.cpp in Sources */,
+				007ECA130DA67F7B0086775A /* jpgdec_header.cpp in Sources */,
+				007ECA140DA67F7B0086775A /* jpgdec_huffman.cpp in Sources */,
+				007ECA150DA67F7B0086775A /* jpgdec_idctp.cpp in Sources */,
+				007ECA160DA67F7B0086775A /* jpgdec_idcts.cpp in Sources */,
+				007ECA170DA67F7B0086775A /* jpgdec_scan.cpp in Sources */,
+				007ECA180DA67F7B0086775A /* jpgdec_table.cpp in Sources */,
+				007ECA190DA67F7B0086775A /* jpgdec_utils.cpp in Sources */,
+				007ECA1A0DA67F7B0086775A /* pvjpgdecoder_factory.cpp in Sources */,
+				007ECA500DA683160086775A /* SkImageDecoder_libpvjpeg.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = pvjpeg;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = pvjpeg;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = "USE_PV_OSCL_LIB=0";
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../extlibs/pv/** ../../include/corecg ../../include/graphics";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = (
+					ppc,
+					i386,
+				);
+				GCC_ENABLE_CPP_EXCEPTIONS = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_OBJC_EXCEPTIONS = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = "USE_PV_OSCL_LIB=0";
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				PREBINDING = NO;
+				SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk";
+				USER_HEADER_SEARCH_PATHS = "../../extlibs/pv/** ../../include/corecg ../../include/graphics";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "pvjpeg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "pvjpeg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/svg.xcodeproj/project.pbxproj b/ide/xcode/svg.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..c4374eb
--- /dev/null
+++ b/ide/xcode/svg.xcodeproj/project.pbxproj
@@ -0,0 +1,435 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		002843AB09DDC030002E9CB0 /* SkSVGCircle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028437609DDC02F002E9CB0 /* SkSVGCircle.cpp */; };
+		002843AC09DDC030002E9CB0 /* SkSVGCircle.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028437709DDC02F002E9CB0 /* SkSVGCircle.h */; };
+		002843AD09DDC030002E9CB0 /* SkSVGClipPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028437809DDC02F002E9CB0 /* SkSVGClipPath.cpp */; };
+		002843AE09DDC030002E9CB0 /* SkSVGClipPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028437909DDC02F002E9CB0 /* SkSVGClipPath.h */; };
+		002843AF09DDC030002E9CB0 /* SkSVGDefs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028437A09DDC02F002E9CB0 /* SkSVGDefs.cpp */; };
+		002843B009DDC030002E9CB0 /* SkSVGDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028437B09DDC02F002E9CB0 /* SkSVGDefs.h */; };
+		002843B109DDC030002E9CB0 /* SkSVGElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028437C09DDC02F002E9CB0 /* SkSVGElements.cpp */; };
+		002843B209DDC030002E9CB0 /* SkSVGElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028437D09DDC02F002E9CB0 /* SkSVGElements.h */; };
+		002843B309DDC030002E9CB0 /* SkSVGEllipse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028437E09DDC02F002E9CB0 /* SkSVGEllipse.cpp */; };
+		002843B409DDC030002E9CB0 /* SkSVGEllipse.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028437F09DDC02F002E9CB0 /* SkSVGEllipse.h */; };
+		002843B509DDC030002E9CB0 /* SkSVGFeColorMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438009DDC02F002E9CB0 /* SkSVGFeColorMatrix.cpp */; };
+		002843B609DDC030002E9CB0 /* SkSVGFeColorMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438109DDC02F002E9CB0 /* SkSVGFeColorMatrix.h */; };
+		002843B709DDC030002E9CB0 /* SkSVGFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438209DDC02F002E9CB0 /* SkSVGFilter.cpp */; };
+		002843B809DDC030002E9CB0 /* SkSVGFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438309DDC02F002E9CB0 /* SkSVGFilter.h */; };
+		002843B909DDC030002E9CB0 /* SkSVGG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438409DDC02F002E9CB0 /* SkSVGG.cpp */; };
+		002843BA09DDC030002E9CB0 /* SkSVGG.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438509DDC02F002E9CB0 /* SkSVGG.h */; };
+		002843BB09DDC030002E9CB0 /* SkSVGGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438609DDC02F002E9CB0 /* SkSVGGradient.cpp */; };
+		002843BC09DDC030002E9CB0 /* SkSVGGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438709DDC02F002E9CB0 /* SkSVGGradient.h */; };
+		002843BD09DDC030002E9CB0 /* SkSVGGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438809DDC02F002E9CB0 /* SkSVGGroup.cpp */; };
+		002843BE09DDC030002E9CB0 /* SkSVGGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438909DDC02F002E9CB0 /* SkSVGGroup.h */; };
+		002843BF09DDC030002E9CB0 /* SkSVGImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438A09DDC02F002E9CB0 /* SkSVGImage.cpp */; };
+		002843C009DDC030002E9CB0 /* SkSVGImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438B09DDC02F002E9CB0 /* SkSVGImage.h */; };
+		002843C109DDC030002E9CB0 /* SkSVGLine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438C09DDC02F002E9CB0 /* SkSVGLine.cpp */; };
+		002843C209DDC030002E9CB0 /* SkSVGLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438D09DDC02F002E9CB0 /* SkSVGLine.h */; };
+		002843C309DDC030002E9CB0 /* SkSVGLinearGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028438E09DDC02F002E9CB0 /* SkSVGLinearGradient.cpp */; };
+		002843C409DDC030002E9CB0 /* SkSVGLinearGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028438F09DDC02F002E9CB0 /* SkSVGLinearGradient.h */; };
+		002843C509DDC030002E9CB0 /* SkSVGMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439009DDC02F002E9CB0 /* SkSVGMask.cpp */; };
+		002843C609DDC030002E9CB0 /* SkSVGMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439109DDC02F002E9CB0 /* SkSVGMask.h */; };
+		002843C709DDC030002E9CB0 /* SkSVGMetadata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439209DDC02F002E9CB0 /* SkSVGMetadata.cpp */; };
+		002843C809DDC030002E9CB0 /* SkSVGMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439309DDC02F002E9CB0 /* SkSVGMetadata.h */; };
+		002843C909DDC030002E9CB0 /* SkSVGPaintState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439409DDC02F002E9CB0 /* SkSVGPaintState.cpp */; };
+		002843CA09DDC030002E9CB0 /* SkSVGParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439509DDC02F002E9CB0 /* SkSVGParser.cpp */; };
+		002843CB09DDC030002E9CB0 /* SkSVGPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439609DDC02F002E9CB0 /* SkSVGPath.cpp */; };
+		002843CC09DDC030002E9CB0 /* SkSVGPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439709DDC02F002E9CB0 /* SkSVGPath.h */; };
+		002843CD09DDC030002E9CB0 /* SkSVGPolygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439809DDC02F002E9CB0 /* SkSVGPolygon.cpp */; };
+		002843CE09DDC030002E9CB0 /* SkSVGPolygon.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439909DDC02F002E9CB0 /* SkSVGPolygon.h */; };
+		002843CF09DDC030002E9CB0 /* SkSVGPolyline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439A09DDC02F002E9CB0 /* SkSVGPolyline.cpp */; };
+		002843D009DDC030002E9CB0 /* SkSVGPolyline.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439B09DDC02F002E9CB0 /* SkSVGPolyline.h */; };
+		002843D109DDC030002E9CB0 /* SkSVGRadialGradient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439C09DDC02F002E9CB0 /* SkSVGRadialGradient.cpp */; };
+		002843D209DDC030002E9CB0 /* SkSVGRadialGradient.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439D09DDC02F002E9CB0 /* SkSVGRadialGradient.h */; };
+		002843D309DDC030002E9CB0 /* SkSVGRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0028439E09DDC02F002E9CB0 /* SkSVGRect.cpp */; };
+		002843D409DDC030002E9CB0 /* SkSVGRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 0028439F09DDC02F002E9CB0 /* SkSVGRect.h */; };
+		002843D509DDC030002E9CB0 /* SkSVGStop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002843A009DDC02F002E9CB0 /* SkSVGStop.cpp */; };
+		002843D609DDC030002E9CB0 /* SkSVGStop.h in Headers */ = {isa = PBXBuildFile; fileRef = 002843A109DDC02F002E9CB0 /* SkSVGStop.h */; };
+		002843D709DDC030002E9CB0 /* SkSVGSVG.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002843A209DDC02F002E9CB0 /* SkSVGSVG.cpp */; };
+		002843D809DDC030002E9CB0 /* SkSVGSVG.h in Headers */ = {isa = PBXBuildFile; fileRef = 002843A309DDC02F002E9CB0 /* SkSVGSVG.h */; };
+		002843D909DDC030002E9CB0 /* SkSVGSymbol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002843A409DDC02F002E9CB0 /* SkSVGSymbol.cpp */; };
+		002843DA09DDC030002E9CB0 /* SkSVGSymbol.h in Headers */ = {isa = PBXBuildFile; fileRef = 002843A509DDC02F002E9CB0 /* SkSVGSymbol.h */; };
+		002843DB09DDC030002E9CB0 /* SkSVGText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002843A609DDC02F002E9CB0 /* SkSVGText.cpp */; };
+		002843DC09DDC030002E9CB0 /* SkSVGText.h in Headers */ = {isa = PBXBuildFile; fileRef = 002843A709DDC02F002E9CB0 /* SkSVGText.h */; };
+		002843DD09DDC030002E9CB0 /* SkSVGUse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 002843A809DDC02F002E9CB0 /* SkSVGUse.cpp */; };
+		002843DE09DDC030002E9CB0 /* SkSVGUse.h in Headers */ = {isa = PBXBuildFile; fileRef = 002843A909DDC02F002E9CB0 /* SkSVGUse.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildStyle section */
+		014CEA520018CE5811CA2923 /* Debug */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+			};
+			name = Debug;
+		};
+		014CEA530018CE5811CA2923 /* Release */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+			};
+			name = Release;
+		};
+/* End PBXBuildStyle section */
+
+/* Begin PBXFileReference section */
+		0028437609DDC02F002E9CB0 /* SkSVGCircle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGCircle.cpp; sourceTree = "<group>"; };
+		0028437709DDC02F002E9CB0 /* SkSVGCircle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGCircle.h; sourceTree = "<group>"; };
+		0028437809DDC02F002E9CB0 /* SkSVGClipPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGClipPath.cpp; sourceTree = "<group>"; };
+		0028437909DDC02F002E9CB0 /* SkSVGClipPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGClipPath.h; sourceTree = "<group>"; };
+		0028437A09DDC02F002E9CB0 /* SkSVGDefs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGDefs.cpp; sourceTree = "<group>"; };
+		0028437B09DDC02F002E9CB0 /* SkSVGDefs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGDefs.h; sourceTree = "<group>"; };
+		0028437C09DDC02F002E9CB0 /* SkSVGElements.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGElements.cpp; sourceTree = "<group>"; };
+		0028437D09DDC02F002E9CB0 /* SkSVGElements.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGElements.h; sourceTree = "<group>"; };
+		0028437E09DDC02F002E9CB0 /* SkSVGEllipse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGEllipse.cpp; sourceTree = "<group>"; };
+		0028437F09DDC02F002E9CB0 /* SkSVGEllipse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGEllipse.h; sourceTree = "<group>"; };
+		0028438009DDC02F002E9CB0 /* SkSVGFeColorMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGFeColorMatrix.cpp; sourceTree = "<group>"; };
+		0028438109DDC02F002E9CB0 /* SkSVGFeColorMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGFeColorMatrix.h; sourceTree = "<group>"; };
+		0028438209DDC02F002E9CB0 /* SkSVGFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGFilter.cpp; sourceTree = "<group>"; };
+		0028438309DDC02F002E9CB0 /* SkSVGFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGFilter.h; sourceTree = "<group>"; };
+		0028438409DDC02F002E9CB0 /* SkSVGG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGG.cpp; sourceTree = "<group>"; };
+		0028438509DDC02F002E9CB0 /* SkSVGG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGG.h; sourceTree = "<group>"; };
+		0028438609DDC02F002E9CB0 /* SkSVGGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGGradient.cpp; sourceTree = "<group>"; };
+		0028438709DDC02F002E9CB0 /* SkSVGGradient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGGradient.h; sourceTree = "<group>"; };
+		0028438809DDC02F002E9CB0 /* SkSVGGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGGroup.cpp; sourceTree = "<group>"; };
+		0028438909DDC02F002E9CB0 /* SkSVGGroup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGGroup.h; sourceTree = "<group>"; };
+		0028438A09DDC02F002E9CB0 /* SkSVGImage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGImage.cpp; sourceTree = "<group>"; };
+		0028438B09DDC02F002E9CB0 /* SkSVGImage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGImage.h; sourceTree = "<group>"; };
+		0028438C09DDC02F002E9CB0 /* SkSVGLine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGLine.cpp; sourceTree = "<group>"; };
+		0028438D09DDC02F002E9CB0 /* SkSVGLine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGLine.h; sourceTree = "<group>"; };
+		0028438E09DDC02F002E9CB0 /* SkSVGLinearGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGLinearGradient.cpp; sourceTree = "<group>"; };
+		0028438F09DDC02F002E9CB0 /* SkSVGLinearGradient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGLinearGradient.h; sourceTree = "<group>"; };
+		0028439009DDC02F002E9CB0 /* SkSVGMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGMask.cpp; sourceTree = "<group>"; };
+		0028439109DDC02F002E9CB0 /* SkSVGMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGMask.h; sourceTree = "<group>"; };
+		0028439209DDC02F002E9CB0 /* SkSVGMetadata.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGMetadata.cpp; sourceTree = "<group>"; };
+		0028439309DDC02F002E9CB0 /* SkSVGMetadata.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGMetadata.h; sourceTree = "<group>"; };
+		0028439409DDC02F002E9CB0 /* SkSVGPaintState.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGPaintState.cpp; sourceTree = "<group>"; };
+		0028439509DDC02F002E9CB0 /* SkSVGParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGParser.cpp; sourceTree = "<group>"; };
+		0028439609DDC02F002E9CB0 /* SkSVGPath.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGPath.cpp; sourceTree = "<group>"; };
+		0028439709DDC02F002E9CB0 /* SkSVGPath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGPath.h; sourceTree = "<group>"; };
+		0028439809DDC02F002E9CB0 /* SkSVGPolygon.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGPolygon.cpp; sourceTree = "<group>"; };
+		0028439909DDC02F002E9CB0 /* SkSVGPolygon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGPolygon.h; sourceTree = "<group>"; };
+		0028439A09DDC02F002E9CB0 /* SkSVGPolyline.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGPolyline.cpp; sourceTree = "<group>"; };
+		0028439B09DDC02F002E9CB0 /* SkSVGPolyline.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGPolyline.h; sourceTree = "<group>"; };
+		0028439C09DDC02F002E9CB0 /* SkSVGRadialGradient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGRadialGradient.cpp; sourceTree = "<group>"; };
+		0028439D09DDC02F002E9CB0 /* SkSVGRadialGradient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGRadialGradient.h; sourceTree = "<group>"; };
+		0028439E09DDC02F002E9CB0 /* SkSVGRect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGRect.cpp; sourceTree = "<group>"; };
+		0028439F09DDC02F002E9CB0 /* SkSVGRect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGRect.h; sourceTree = "<group>"; };
+		002843A009DDC02F002E9CB0 /* SkSVGStop.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGStop.cpp; sourceTree = "<group>"; };
+		002843A109DDC02F002E9CB0 /* SkSVGStop.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGStop.h; sourceTree = "<group>"; };
+		002843A209DDC02F002E9CB0 /* SkSVGSVG.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGSVG.cpp; sourceTree = "<group>"; };
+		002843A309DDC02F002E9CB0 /* SkSVGSVG.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGSVG.h; sourceTree = "<group>"; };
+		002843A409DDC02F002E9CB0 /* SkSVGSymbol.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGSymbol.cpp; sourceTree = "<group>"; };
+		002843A509DDC02F002E9CB0 /* SkSVGSymbol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGSymbol.h; sourceTree = "<group>"; };
+		002843A609DDC02F002E9CB0 /* SkSVGText.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGText.cpp; sourceTree = "<group>"; };
+		002843A709DDC02F002E9CB0 /* SkSVGText.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGText.h; sourceTree = "<group>"; };
+		002843A809DDC02F002E9CB0 /* SkSVGUse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SkSVGUse.cpp; sourceTree = "<group>"; };
+		002843A909DDC02F002E9CB0 /* SkSVGUse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SkSVGUse.h; sourceTree = "<group>"; };
+		D2AAC046055464E500DB518D /* libsvg.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libsvg.a; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		0028437409DDC02F002E9CB0 /* svg */ = {
+			isa = PBXGroup;
+			children = (
+				0028437609DDC02F002E9CB0 /* SkSVGCircle.cpp */,
+				0028437709DDC02F002E9CB0 /* SkSVGCircle.h */,
+				0028437809DDC02F002E9CB0 /* SkSVGClipPath.cpp */,
+				0028437909DDC02F002E9CB0 /* SkSVGClipPath.h */,
+				0028437A09DDC02F002E9CB0 /* SkSVGDefs.cpp */,
+				0028437B09DDC02F002E9CB0 /* SkSVGDefs.h */,
+				0028437C09DDC02F002E9CB0 /* SkSVGElements.cpp */,
+				0028437D09DDC02F002E9CB0 /* SkSVGElements.h */,
+				0028437E09DDC02F002E9CB0 /* SkSVGEllipse.cpp */,
+				0028437F09DDC02F002E9CB0 /* SkSVGEllipse.h */,
+				0028438009DDC02F002E9CB0 /* SkSVGFeColorMatrix.cpp */,
+				0028438109DDC02F002E9CB0 /* SkSVGFeColorMatrix.h */,
+				0028438209DDC02F002E9CB0 /* SkSVGFilter.cpp */,
+				0028438309DDC02F002E9CB0 /* SkSVGFilter.h */,
+				0028438409DDC02F002E9CB0 /* SkSVGG.cpp */,
+				0028438509DDC02F002E9CB0 /* SkSVGG.h */,
+				0028438609DDC02F002E9CB0 /* SkSVGGradient.cpp */,
+				0028438709DDC02F002E9CB0 /* SkSVGGradient.h */,
+				0028438809DDC02F002E9CB0 /* SkSVGGroup.cpp */,
+				0028438909DDC02F002E9CB0 /* SkSVGGroup.h */,
+				0028438A09DDC02F002E9CB0 /* SkSVGImage.cpp */,
+				0028438B09DDC02F002E9CB0 /* SkSVGImage.h */,
+				0028438C09DDC02F002E9CB0 /* SkSVGLine.cpp */,
+				0028438D09DDC02F002E9CB0 /* SkSVGLine.h */,
+				0028438E09DDC02F002E9CB0 /* SkSVGLinearGradient.cpp */,
+				0028438F09DDC02F002E9CB0 /* SkSVGLinearGradient.h */,
+				0028439009DDC02F002E9CB0 /* SkSVGMask.cpp */,
+				0028439109DDC02F002E9CB0 /* SkSVGMask.h */,
+				0028439209DDC02F002E9CB0 /* SkSVGMetadata.cpp */,
+				0028439309DDC02F002E9CB0 /* SkSVGMetadata.h */,
+				0028439409DDC02F002E9CB0 /* SkSVGPaintState.cpp */,
+				0028439509DDC02F002E9CB0 /* SkSVGParser.cpp */,
+				0028439609DDC02F002E9CB0 /* SkSVGPath.cpp */,
+				0028439709DDC02F002E9CB0 /* SkSVGPath.h */,
+				0028439809DDC02F002E9CB0 /* SkSVGPolygon.cpp */,
+				0028439909DDC02F002E9CB0 /* SkSVGPolygon.h */,
+				0028439A09DDC02F002E9CB0 /* SkSVGPolyline.cpp */,
+				0028439B09DDC02F002E9CB0 /* SkSVGPolyline.h */,
+				0028439C09DDC02F002E9CB0 /* SkSVGRadialGradient.cpp */,
+				0028439D09DDC02F002E9CB0 /* SkSVGRadialGradient.h */,
+				0028439E09DDC02F002E9CB0 /* SkSVGRect.cpp */,
+				0028439F09DDC02F002E9CB0 /* SkSVGRect.h */,
+				002843A009DDC02F002E9CB0 /* SkSVGStop.cpp */,
+				002843A109DDC02F002E9CB0 /* SkSVGStop.h */,
+				002843A209DDC02F002E9CB0 /* SkSVGSVG.cpp */,
+				002843A309DDC02F002E9CB0 /* SkSVGSVG.h */,
+				002843A409DDC02F002E9CB0 /* SkSVGSymbol.cpp */,
+				002843A509DDC02F002E9CB0 /* SkSVGSymbol.h */,
+				002843A609DDC02F002E9CB0 /* SkSVGText.cpp */,
+				002843A709DDC02F002E9CB0 /* SkSVGText.h */,
+				002843A809DDC02F002E9CB0 /* SkSVGUse.cpp */,
+				002843A909DDC02F002E9CB0 /* SkSVGUse.h */,
+			);
+			name = svg;
+			path = ../../libs/graphics/svg;
+			sourceTree = SOURCE_ROOT;
+		};
+		08FB7794FE84155DC02AAC07 /* svg */ = {
+			isa = PBXGroup;
+			children = (
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = svg;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				0028437409DDC02F002E9CB0 /* svg */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libsvg.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				002843AC09DDC030002E9CB0 /* SkSVGCircle.h in Headers */,
+				002843AE09DDC030002E9CB0 /* SkSVGClipPath.h in Headers */,
+				002843B009DDC030002E9CB0 /* SkSVGDefs.h in Headers */,
+				002843B209DDC030002E9CB0 /* SkSVGElements.h in Headers */,
+				002843B409DDC030002E9CB0 /* SkSVGEllipse.h in Headers */,
+				002843B609DDC030002E9CB0 /* SkSVGFeColorMatrix.h in Headers */,
+				002843B809DDC030002E9CB0 /* SkSVGFilter.h in Headers */,
+				002843BA09DDC030002E9CB0 /* SkSVGG.h in Headers */,
+				002843BC09DDC030002E9CB0 /* SkSVGGradient.h in Headers */,
+				002843BE09DDC030002E9CB0 /* SkSVGGroup.h in Headers */,
+				002843C009DDC030002E9CB0 /* SkSVGImage.h in Headers */,
+				002843C209DDC030002E9CB0 /* SkSVGLine.h in Headers */,
+				002843C409DDC030002E9CB0 /* SkSVGLinearGradient.h in Headers */,
+				002843C609DDC030002E9CB0 /* SkSVGMask.h in Headers */,
+				002843C809DDC030002E9CB0 /* SkSVGMetadata.h in Headers */,
+				002843CC09DDC030002E9CB0 /* SkSVGPath.h in Headers */,
+				002843CE09DDC030002E9CB0 /* SkSVGPolygon.h in Headers */,
+				002843D009DDC030002E9CB0 /* SkSVGPolyline.h in Headers */,
+				002843D209DDC030002E9CB0 /* SkSVGRadialGradient.h in Headers */,
+				002843D409DDC030002E9CB0 /* SkSVGRect.h in Headers */,
+				002843D609DDC030002E9CB0 /* SkSVGStop.h in Headers */,
+				002843D809DDC030002E9CB0 /* SkSVGSVG.h in Headers */,
+				002843DA09DDC030002E9CB0 /* SkSVGSymbol.h in Headers */,
+				002843DC09DDC030002E9CB0 /* SkSVGText.h in Headers */,
+				002843DE09DDC030002E9CB0 /* SkSVGUse.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* svg */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "svg" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			buildSettings = {
+			};
+			dependencies = (
+			);
+			name = svg;
+			productName = svg;
+			productReference = D2AAC046055464E500DB518D /* libsvg.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "svg" */;
+			buildSettings = {
+			};
+			buildStyles = (
+				014CEA520018CE5811CA2923 /* Debug */,
+				014CEA530018CE5811CA2923 /* Release */,
+			);
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* svg */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* svg */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				002843AB09DDC030002E9CB0 /* SkSVGCircle.cpp in Sources */,
+				002843AD09DDC030002E9CB0 /* SkSVGClipPath.cpp in Sources */,
+				002843AF09DDC030002E9CB0 /* SkSVGDefs.cpp in Sources */,
+				002843B109DDC030002E9CB0 /* SkSVGElements.cpp in Sources */,
+				002843B309DDC030002E9CB0 /* SkSVGEllipse.cpp in Sources */,
+				002843B509DDC030002E9CB0 /* SkSVGFeColorMatrix.cpp in Sources */,
+				002843B709DDC030002E9CB0 /* SkSVGFilter.cpp in Sources */,
+				002843B909DDC030002E9CB0 /* SkSVGG.cpp in Sources */,
+				002843BB09DDC030002E9CB0 /* SkSVGGradient.cpp in Sources */,
+				002843BD09DDC030002E9CB0 /* SkSVGGroup.cpp in Sources */,
+				002843BF09DDC030002E9CB0 /* SkSVGImage.cpp in Sources */,
+				002843C109DDC030002E9CB0 /* SkSVGLine.cpp in Sources */,
+				002843C309DDC030002E9CB0 /* SkSVGLinearGradient.cpp in Sources */,
+				002843C509DDC030002E9CB0 /* SkSVGMask.cpp in Sources */,
+				002843C709DDC030002E9CB0 /* SkSVGMetadata.cpp in Sources */,
+				002843C909DDC030002E9CB0 /* SkSVGPaintState.cpp in Sources */,
+				002843CA09DDC030002E9CB0 /* SkSVGParser.cpp in Sources */,
+				002843CB09DDC030002E9CB0 /* SkSVGPath.cpp in Sources */,
+				002843CD09DDC030002E9CB0 /* SkSVGPolygon.cpp in Sources */,
+				002843CF09DDC030002E9CB0 /* SkSVGPolyline.cpp in Sources */,
+				002843D109DDC030002E9CB0 /* SkSVGRadialGradient.cpp in Sources */,
+				002843D309DDC030002E9CB0 /* SkSVGRect.cpp in Sources */,
+				002843D509DDC030002E9CB0 /* SkSVGStop.cpp in Sources */,
+				002843D709DDC030002E9CB0 /* SkSVGSVG.cpp in Sources */,
+				002843D909DDC030002E9CB0 /* SkSVGSymbol.cpp in Sources */,
+				002843DB09DDC030002E9CB0 /* SkSVGText.cpp in Sources */,
+				002843DD09DDC030002E9CB0 /* SkSVGUse.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = svg;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = (
+					ppc,
+					i386,
+				);
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = svg;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "svg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "svg" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/views.xcodeproj/project.pbxproj b/ide/xcode/views.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..05de569
--- /dev/null
+++ b/ide/xcode/views.xcodeproj/project.pbxproj
@@ -0,0 +1,330 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		005FA5B00B52AB9000896055 /* SkBGViewArtist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA59B0B52AB9000896055 /* SkBGViewArtist.cpp */; };
+		005FA5B10B52AB9000896055 /* SkBorderView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA59C0B52AB9000896055 /* SkBorderView.cpp */; };
+		005FA5B20B52AB9000896055 /* SkImageView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA59D0B52AB9000896055 /* SkImageView.cpp */; };
+		005FA5B30B52AB9000896055 /* SkListView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA59E0B52AB9000896055 /* SkListView.cpp */; };
+		005FA5B40B52AB9000896055 /* SkListWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA59F0B52AB9000896055 /* SkListWidget.cpp */; };
+		005FA5B50B52AB9000896055 /* SkOSFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A00B52AB9000896055 /* SkOSFile.cpp */; };
+		005FA5B60B52AB9000896055 /* SkOSMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A10B52AB9000896055 /* SkOSMenu.cpp */; };
+		005FA5B70B52AB9000896055 /* SkOSSound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A20B52AB9000896055 /* SkOSSound.cpp */; };
+		005FA5B80B52AB9000896055 /* SkParsePaint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A30B52AB9000896055 /* SkParsePaint.cpp */; };
+		005FA5B90B52AB9000896055 /* SkProgressBarView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A40B52AB9000896055 /* SkProgressBarView.cpp */; };
+		005FA5BA0B52AB9000896055 /* SkProgressView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A50B52AB9000896055 /* SkProgressView.cpp */; };
+		005FA5BB0B52AB9000896055 /* SkScrollBarView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A60B52AB9000896055 /* SkScrollBarView.cpp */; };
+		005FA5BC0B52AB9000896055 /* SkStackViewLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A70B52AB9000896055 /* SkStackViewLayout.cpp */; };
+		005FA5BD0B52AB9000896055 /* SkView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A80B52AB9000896055 /* SkView.cpp */; };
+		005FA5BE0B52AB9000896055 /* SkViewInflate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5A90B52AB9000896055 /* SkViewInflate.cpp */; };
+		005FA5BF0B52AB9000896055 /* SkViewPriv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5AA0B52AB9000896055 /* SkViewPriv.cpp */; };
+		005FA5C00B52AB9000896055 /* SkViewPriv.h in Headers */ = {isa = PBXBuildFile; fileRef = 005FA5AB0B52AB9000896055 /* SkViewPriv.h */; };
+		005FA5C10B52AB9000896055 /* SkWidget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5AC0B52AB9000896055 /* SkWidget.cpp */; };
+		005FA5C20B52AB9000896055 /* SkWidgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5AD0B52AB9000896055 /* SkWidgets.cpp */; };
+		005FA5C30B52AB9000896055 /* SkWidgetViews.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5AE0B52AB9000896055 /* SkWidgetViews.cpp */; };
+		005FA5C40B52AB9000896055 /* SkWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 005FA5AF0B52AB9000896055 /* SkWindow.cpp */; };
+		FECBEAA00C60D34E00DB1DDA /* SkEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECBEA9A0C60D34E00DB1DDA /* SkEvent.cpp */; };
+		FECBEAA10C60D34E00DB1DDA /* SkEventSink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECBEA9B0C60D34E00DB1DDA /* SkEventSink.cpp */; };
+		FECBEAA20C60D34E00DB1DDA /* SkMetaData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECBEA9C0C60D34E00DB1DDA /* SkMetaData.cpp */; };
+		FECBEAA30C60D34E00DB1DDA /* SkTagList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECBEA9D0C60D34E00DB1DDA /* SkTagList.cpp */; };
+		FECBEAA40C60D34E00DB1DDA /* SkTagList.h in Headers */ = {isa = PBXBuildFile; fileRef = FECBEA9E0C60D34E00DB1DDA /* SkTagList.h */; };
+		FECBEAA50C60D34E00DB1DDA /* SkTextBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FECBEA9F0C60D34E00DB1DDA /* SkTextBox.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		005FA59B0B52AB9000896055 /* SkBGViewArtist.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBGViewArtist.cpp; path = ../../tests/skia/views/SkBGViewArtist.cpp; sourceTree = SOURCE_ROOT; };
+		005FA59C0B52AB9000896055 /* SkBorderView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkBorderView.cpp; path = ../../tests/skia/views/SkBorderView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA59D0B52AB9000896055 /* SkImageView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkImageView.cpp; path = ../../tests/skia/views/SkImageView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA59E0B52AB9000896055 /* SkListView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkListView.cpp; path = ../../tests/skia/views/SkListView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA59F0B52AB9000896055 /* SkListWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkListWidget.cpp; path = ../../tests/skia/views/SkListWidget.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A00B52AB9000896055 /* SkOSFile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOSFile.cpp; path = ../../tests/skia/views/SkOSFile.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A10B52AB9000896055 /* SkOSMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOSMenu.cpp; path = ../../tests/skia/views/SkOSMenu.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A20B52AB9000896055 /* SkOSSound.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkOSSound.cpp; path = ../../tests/skia/views/SkOSSound.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A30B52AB9000896055 /* SkParsePaint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkParsePaint.cpp; path = ../../tests/skia/views/SkParsePaint.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A40B52AB9000896055 /* SkProgressBarView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkProgressBarView.cpp; path = ../../tests/skia/views/SkProgressBarView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A50B52AB9000896055 /* SkProgressView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkProgressView.cpp; path = ../../tests/skia/views/SkProgressView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A60B52AB9000896055 /* SkScrollBarView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkScrollBarView.cpp; path = ../../tests/skia/views/SkScrollBarView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A70B52AB9000896055 /* SkStackViewLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkStackViewLayout.cpp; path = ../../tests/skia/views/SkStackViewLayout.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A80B52AB9000896055 /* SkView.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkView.cpp; path = ../../tests/skia/views/SkView.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5A90B52AB9000896055 /* SkViewInflate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkViewInflate.cpp; path = ../../tests/skia/views/SkViewInflate.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5AA0B52AB9000896055 /* SkViewPriv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkViewPriv.cpp; path = ../../tests/skia/views/SkViewPriv.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5AB0B52AB9000896055 /* SkViewPriv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkViewPriv.h; path = ../../tests/skia/views/SkViewPriv.h; sourceTree = SOURCE_ROOT; };
+		005FA5AC0B52AB9000896055 /* SkWidget.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkWidget.cpp; path = ../../tests/skia/views/SkWidget.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5AD0B52AB9000896055 /* SkWidgets.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkWidgets.cpp; path = ../../tests/skia/views/SkWidgets.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5AE0B52AB9000896055 /* SkWidgetViews.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkWidgetViews.cpp; path = ../../tests/skia/views/SkWidgetViews.cpp; sourceTree = SOURCE_ROOT; };
+		005FA5AF0B52AB9000896055 /* SkWindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkWindow.cpp; path = ../../tests/skia/views/SkWindow.cpp; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libviews.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libviews.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FECBEA9A0C60D34E00DB1DDA /* SkEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkEvent.cpp; path = ../../libs/graphics/views/SkEvent.cpp; sourceTree = SOURCE_ROOT; };
+		FECBEA9B0C60D34E00DB1DDA /* SkEventSink.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkEventSink.cpp; path = ../../libs/graphics/views/SkEventSink.cpp; sourceTree = SOURCE_ROOT; };
+		FECBEA9C0C60D34E00DB1DDA /* SkMetaData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkMetaData.cpp; path = ../../libs/graphics/views/SkMetaData.cpp; sourceTree = SOURCE_ROOT; };
+		FECBEA9D0C60D34E00DB1DDA /* SkTagList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTagList.cpp; path = ../../libs/graphics/views/SkTagList.cpp; sourceTree = SOURCE_ROOT; };
+		FECBEA9E0C60D34E00DB1DDA /* SkTagList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SkTagList.h; path = ../../libs/graphics/views/SkTagList.h; sourceTree = SOURCE_ROOT; };
+		FECBEA9F0C60D34E00DB1DDA /* SkTextBox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SkTextBox.cpp; path = ../../libs/graphics/views/SkTextBox.cpp; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		00797CCD0A88F0D50017AF55 /* Views */ = {
+			isa = PBXGroup;
+			children = (
+				005FA59B0B52AB9000896055 /* SkBGViewArtist.cpp */,
+				005FA59C0B52AB9000896055 /* SkBorderView.cpp */,
+				005FA59D0B52AB9000896055 /* SkImageView.cpp */,
+				005FA59E0B52AB9000896055 /* SkListView.cpp */,
+				005FA59F0B52AB9000896055 /* SkListWidget.cpp */,
+				005FA5A00B52AB9000896055 /* SkOSFile.cpp */,
+				005FA5A10B52AB9000896055 /* SkOSMenu.cpp */,
+				005FA5A20B52AB9000896055 /* SkOSSound.cpp */,
+				005FA5A30B52AB9000896055 /* SkParsePaint.cpp */,
+				005FA5A40B52AB9000896055 /* SkProgressBarView.cpp */,
+				005FA5A50B52AB9000896055 /* SkProgressView.cpp */,
+				005FA5A60B52AB9000896055 /* SkScrollBarView.cpp */,
+				005FA5A70B52AB9000896055 /* SkStackViewLayout.cpp */,
+				005FA5A80B52AB9000896055 /* SkView.cpp */,
+				005FA5A90B52AB9000896055 /* SkViewInflate.cpp */,
+				005FA5AA0B52AB9000896055 /* SkViewPriv.cpp */,
+				005FA5AB0B52AB9000896055 /* SkViewPriv.h */,
+				005FA5AC0B52AB9000896055 /* SkWidget.cpp */,
+				005FA5AD0B52AB9000896055 /* SkWidgets.cpp */,
+				005FA5AE0B52AB9000896055 /* SkWidgetViews.cpp */,
+				005FA5AF0B52AB9000896055 /* SkWindow.cpp */,
+			);
+			name = Views;
+			sourceTree = "<group>";
+		};
+		08FB7794FE84155DC02AAC07 /* views */ = {
+			isa = PBXGroup;
+			children = (
+				00797CCD0A88F0D50017AF55 /* Views */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = views;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				FECBEA9A0C60D34E00DB1DDA /* SkEvent.cpp */,
+				FECBEA9B0C60D34E00DB1DDA /* SkEventSink.cpp */,
+				FECBEA9C0C60D34E00DB1DDA /* SkMetaData.cpp */,
+				FECBEA9D0C60D34E00DB1DDA /* SkTagList.cpp */,
+				FECBEA9E0C60D34E00DB1DDA /* SkTagList.h */,
+				FECBEA9F0C60D34E00DB1DDA /* SkTextBox.cpp */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libviews.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				005FA5C00B52AB9000896055 /* SkViewPriv.h in Headers */,
+				FECBEAA40C60D34E00DB1DDA /* SkTagList.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* views */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "views" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = views;
+			productName = views;
+			productReference = D2AAC046055464E500DB518D /* libviews.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "views" */;
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* views */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* views */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				005FA5B00B52AB9000896055 /* SkBGViewArtist.cpp in Sources */,
+				005FA5B10B52AB9000896055 /* SkBorderView.cpp in Sources */,
+				005FA5B20B52AB9000896055 /* SkImageView.cpp in Sources */,
+				005FA5B30B52AB9000896055 /* SkListView.cpp in Sources */,
+				005FA5B40B52AB9000896055 /* SkListWidget.cpp in Sources */,
+				005FA5B50B52AB9000896055 /* SkOSFile.cpp in Sources */,
+				005FA5B60B52AB9000896055 /* SkOSMenu.cpp in Sources */,
+				005FA5B70B52AB9000896055 /* SkOSSound.cpp in Sources */,
+				005FA5B80B52AB9000896055 /* SkParsePaint.cpp in Sources */,
+				005FA5B90B52AB9000896055 /* SkProgressBarView.cpp in Sources */,
+				005FA5BA0B52AB9000896055 /* SkProgressView.cpp in Sources */,
+				005FA5BB0B52AB9000896055 /* SkScrollBarView.cpp in Sources */,
+				005FA5BC0B52AB9000896055 /* SkStackViewLayout.cpp in Sources */,
+				005FA5BD0B52AB9000896055 /* SkView.cpp in Sources */,
+				005FA5BE0B52AB9000896055 /* SkViewInflate.cpp in Sources */,
+				005FA5BF0B52AB9000896055 /* SkViewPriv.cpp in Sources */,
+				005FA5C10B52AB9000896055 /* SkWidget.cpp in Sources */,
+				005FA5C20B52AB9000896055 /* SkWidgets.cpp in Sources */,
+				005FA5C30B52AB9000896055 /* SkWidgetViews.cpp in Sources */,
+				005FA5C40B52AB9000896055 /* SkWindow.cpp in Sources */,
+				FECBEAA00C60D34E00DB1DDA /* SkEvent.cpp in Sources */,
+				FECBEAA10C60D34E00DB1DDA /* SkEventSink.cpp in Sources */,
+				FECBEAA20C60D34E00DB1DDA /* SkMetaData.cpp in Sources */,
+				FECBEAA30C60D34E00DB1DDA /* SkTagList.cpp in Sources */,
+				FECBEAA50C60D34E00DB1DDA /* SkTextBox.cpp in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = views;
+				ZERO_LINK = NO;
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(NATIVE_ARCH)";
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				INSTALL_PATH = /usr/local/lib;
+				PRODUCT_NAME = views;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = "";
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg ../../libs/graphics/sgl";
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				HEADER_SEARCH_PATHS = "$(HEADER_SEARCH_PATHS)";
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				SDKROOT = "";
+				SHARED_PRECOMPS_DIR = "";
+				STRIP_INSTALLED_PRODUCT = NO;
+				USER_HEADER_SEARCH_PATHS = "../../include/graphics ../../include/corecg ../../libs/graphics/sgl";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "views" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "views" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/ide/xcode/zlib.xcodeproj/project.pbxproj b/ide/xcode/zlib.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..dad1a97
--- /dev/null
+++ b/ide/xcode/zlib.xcodeproj/project.pbxproj
@@ -0,0 +1,350 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 42;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		FE08AA0D0944F1E40057213F /* adler32.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA020944F1E40057213F /* adler32.c */; };
+		FE08AA0E0944F1E40057213F /* compress.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA030944F1E40057213F /* compress.c */; };
+		FE08AA0F0944F1E40057213F /* crc32.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA040944F1E40057213F /* crc32.c */; };
+		FE08AA100944F1E40057213F /* deflate.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA050944F1E40057213F /* deflate.c */; };
+		FE08AA110944F1E40057213F /* infback.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA060944F1E40057213F /* infback.c */; };
+		FE08AA120944F1E40057213F /* inffast.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA070944F1E40057213F /* inffast.c */; };
+		FE08AA130944F1E40057213F /* inflate.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA080944F1E40057213F /* inflate.c */; };
+		FE08AA140944F1E40057213F /* inftrees.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA090944F1E40057213F /* inftrees.c */; };
+		FE08AA150944F1E40057213F /* trees.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA0A0944F1E40057213F /* trees.c */; };
+		FE08AA160944F1E40057213F /* uncompr.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA0B0944F1E40057213F /* uncompr.c */; };
+		FE08AA170944F1E40057213F /* zutil.c in Sources */ = {isa = PBXBuildFile; fileRef = FE08AA0C0944F1E40057213F /* zutil.c */; };
+		FE08AA260944F2710057213F /* crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA1B0944F2710057213F /* crc32.h */; };
+		FE08AA270944F2710057213F /* deflate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA1C0944F2710057213F /* deflate.h */; };
+		FE08AA280944F2710057213F /* inffast.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA1D0944F2710057213F /* inffast.h */; };
+		FE08AA290944F2710057213F /* inffixed.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA1E0944F2710057213F /* inffixed.h */; };
+		FE08AA2A0944F2710057213F /* inflate.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA1F0944F2710057213F /* inflate.h */; };
+		FE08AA2B0944F2710057213F /* inftrees.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA200944F2710057213F /* inftrees.h */; };
+		FE08AA2C0944F2710057213F /* trees.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA210944F2710057213F /* trees.h */; };
+		FE08AA2D0944F2710057213F /* zconf.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA220944F2710057213F /* zconf.h */; };
+		FE08AA2E0944F2710057213F /* zconf.in.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA230944F2710057213F /* zconf.in.h */; };
+		FE08AA2F0944F2710057213F /* zlib.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA240944F2710057213F /* zlib.h */; };
+		FE08AA300944F2710057213F /* zutil.h in Headers */ = {isa = PBXBuildFile; fileRef = FE08AA250944F2710057213F /* zutil.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildStyle section */
+		014CEA520018CE5811CA2923 /* Development */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				ZERO_LINK = YES;
+			};
+			name = Development;
+		};
+		014CEA530018CE5811CA2923 /* Deployment */ = {
+			isa = PBXBuildStyle;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				ZERO_LINK = NO;
+			};
+			name = Deployment;
+		};
+/* End PBXBuildStyle section */
+
+/* Begin PBXFileReference section */
+		D2AAC046055464E500DB518D /* libzlib.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libzlib.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		FE08AA020944F1E40057213F /* adler32.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = adler32.c; path = "../../extlibs/zlib-1.2.3/adler32.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA030944F1E40057213F /* compress.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = compress.c; path = "../../extlibs/zlib-1.2.3/compress.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA040944F1E40057213F /* crc32.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = crc32.c; path = "../../extlibs/zlib-1.2.3/crc32.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA050944F1E40057213F /* deflate.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = deflate.c; path = "../../extlibs/zlib-1.2.3/deflate.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA060944F1E40057213F /* infback.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = infback.c; path = "../../extlibs/zlib-1.2.3/infback.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA070944F1E40057213F /* inffast.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = inffast.c; path = "../../extlibs/zlib-1.2.3/inffast.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA080944F1E40057213F /* inflate.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = inflate.c; path = "../../extlibs/zlib-1.2.3/inflate.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA090944F1E40057213F /* inftrees.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = inftrees.c; path = "../../extlibs/zlib-1.2.3/inftrees.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA0A0944F1E40057213F /* trees.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = trees.c; path = "../../extlibs/zlib-1.2.3/trees.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA0B0944F1E40057213F /* uncompr.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = uncompr.c; path = "../../extlibs/zlib-1.2.3/uncompr.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA0C0944F1E40057213F /* zutil.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = zutil.c; path = "../../extlibs/zlib-1.2.3/zutil.c"; sourceTree = SOURCE_ROOT; };
+		FE08AA1B0944F2710057213F /* crc32.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = crc32.h; path = "../../extlibs/zlib-1.2.3/crc32.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA1C0944F2710057213F /* deflate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = deflate.h; path = "../../extlibs/zlib-1.2.3/deflate.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA1D0944F2710057213F /* inffast.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = inffast.h; path = "../../extlibs/zlib-1.2.3/inffast.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA1E0944F2710057213F /* inffixed.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = inffixed.h; path = "../../extlibs/zlib-1.2.3/inffixed.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA1F0944F2710057213F /* inflate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = inflate.h; path = "../../extlibs/zlib-1.2.3/inflate.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA200944F2710057213F /* inftrees.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = inftrees.h; path = "../../extlibs/zlib-1.2.3/inftrees.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA210944F2710057213F /* trees.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = trees.h; path = "../../extlibs/zlib-1.2.3/trees.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA220944F2710057213F /* zconf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = zconf.h; path = "../../extlibs/zlib-1.2.3/zconf.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA230944F2710057213F /* zconf.in.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = zconf.in.h; path = "../../extlibs/zlib-1.2.3/zconf.in.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA240944F2710057213F /* zlib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = zlib.h; path = "../../extlibs/zlib-1.2.3/zlib.h"; sourceTree = SOURCE_ROOT; };
+		FE08AA250944F2710057213F /* zutil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = zutil.h; path = "../../extlibs/zlib-1.2.3/zutil.h"; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* zlib */ = {
+			isa = PBXGroup;
+			children = (
+				FE08AA1A0944F1FE0057213F /* Include */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = zlib;
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				FE08AA020944F1E40057213F /* adler32.c */,
+				FE08AA030944F1E40057213F /* compress.c */,
+				FE08AA040944F1E40057213F /* crc32.c */,
+				FE08AA050944F1E40057213F /* deflate.c */,
+				FE08AA060944F1E40057213F /* infback.c */,
+				FE08AA070944F1E40057213F /* inffast.c */,
+				FE08AA080944F1E40057213F /* inflate.c */,
+				FE08AA090944F1E40057213F /* inftrees.c */,
+				FE08AA0A0944F1E40057213F /* trees.c */,
+				FE08AA0B0944F1E40057213F /* uncompr.c */,
+				FE08AA0C0944F1E40057213F /* zutil.c */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libzlib.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+		FE08AA1A0944F1FE0057213F /* Include */ = {
+			isa = PBXGroup;
+			children = (
+				FE08AA1B0944F2710057213F /* crc32.h */,
+				FE08AA1C0944F2710057213F /* deflate.h */,
+				FE08AA1D0944F2710057213F /* inffast.h */,
+				FE08AA1E0944F2710057213F /* inffixed.h */,
+				FE08AA1F0944F2710057213F /* inflate.h */,
+				FE08AA200944F2710057213F /* inftrees.h */,
+				FE08AA210944F2710057213F /* trees.h */,
+				FE08AA220944F2710057213F /* zconf.h */,
+				FE08AA230944F2710057213F /* zconf.in.h */,
+				FE08AA240944F2710057213F /* zlib.h */,
+				FE08AA250944F2710057213F /* zutil.h */,
+			);
+			name = Include;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE08AA260944F2710057213F /* crc32.h in Headers */,
+				FE08AA270944F2710057213F /* deflate.h in Headers */,
+				FE08AA280944F2710057213F /* inffast.h in Headers */,
+				FE08AA290944F2710057213F /* inffixed.h in Headers */,
+				FE08AA2A0944F2710057213F /* inflate.h in Headers */,
+				FE08AA2B0944F2710057213F /* inftrees.h in Headers */,
+				FE08AA2C0944F2710057213F /* trees.h in Headers */,
+				FE08AA2D0944F2710057213F /* zconf.h in Headers */,
+				FE08AA2E0944F2710057213F /* zconf.in.h in Headers */,
+				FE08AA2F0944F2710057213F /* zlib.h in Headers */,
+				FE08AA300944F2710057213F /* zutil.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* zlib */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = FE5F4830094784880095980F /* Build configuration list for PBXNativeTarget "zlib" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			buildSettings = {
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = zlib;
+			};
+			dependencies = (
+			);
+			name = zlib;
+			productName = zlib;
+			productReference = D2AAC046055464E500DB518D /* libzlib.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = FE5F4834094784880095980F /* Build configuration list for PBXProject "zlib" */;
+			buildSettings = {
+			};
+			buildStyles = (
+				014CEA520018CE5811CA2923 /* Development */,
+				014CEA530018CE5811CA2923 /* Deployment */,
+			);
+			hasScannedForEncodings = 1;
+			mainGroup = 08FB7794FE84155DC02AAC07 /* zlib */;
+			projectDirPath = "";
+			targets = (
+				D2AAC045055464E500DB518D /* zlib */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				FE08AA0D0944F1E40057213F /* adler32.c in Sources */,
+				FE08AA0E0944F1E40057213F /* compress.c in Sources */,
+				FE08AA0F0944F1E40057213F /* crc32.c in Sources */,
+				FE08AA100944F1E40057213F /* deflate.c in Sources */,
+				FE08AA110944F1E40057213F /* infback.c in Sources */,
+				FE08AA120944F1E40057213F /* inffast.c in Sources */,
+				FE08AA130944F1E40057213F /* inflate.c in Sources */,
+				FE08AA140944F1E40057213F /* inftrees.c in Sources */,
+				FE08AA150944F1E40057213F /* trees.c in Sources */,
+				FE08AA160944F1E40057213F /* uncompr.c in Sources */,
+				FE08AA170944F1E40057213F /* zutil.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		FE5F4831094784880095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_MODEL_TUNING = G5;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = zlib;
+				ZERO_LINK = YES;
+			};
+			name = Debug;
+		};
+		FE5F4832094784880095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = YES;
+				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+				GCC_MODEL_TUNING = G5;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				INSTALL_PATH = /usr/local/lib;
+				LIBRARY_STYLE = STATIC;
+				PREBINDING = NO;
+				PRODUCT_NAME = zlib;
+				ZERO_LINK = NO;
+			};
+			name = Release;
+		};
+		FE5F4835094784880095980F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				STRIP_INSTALLED_PRODUCT = NO;
+			};
+			name = Debug;
+		};
+		FE5F4836094784880095980F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				COPY_PHASE_STRIP = NO;
+				GCC_CW_ASM_SYNTAX = NO;
+				GCC_ENABLE_CPP_RTTI = NO;
+				GCC_ENABLE_PASCAL_STRINGS = NO;
+				GCC_ENABLE_SYMBOL_SEPARATION = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SK_RELEASE;
+				GCC_USE_GCC3_PFE_SUPPORT = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				LINK_WITH_STANDARD_LIBRARIES = NO;
+				PREBINDING = NO;
+				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
+				STRIP_INSTALLED_PRODUCT = NO;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		FE5F4830094784880095980F /* Build configuration list for PBXNativeTarget "zlib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F4831094784880095980F /* Debug */,
+				FE5F4832094784880095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		FE5F4834094784880095980F /* Build configuration list for PBXProject "zlib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				FE5F4835094784880095980F /* Debug */,
+				FE5F4836094784880095980F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}