Fix Context.getDrawable() crash on earlier platforms
am: 9ad497c285

* commit '9ad497c2850e2e47d8083b342f58ee33f1ea26d9':
  Fix Context.getDrawable() crash on earlier platforms
diff --git a/apps/Development/AndroidManifest.xml b/apps/Development/AndroidManifest.xml
index 3ac8190..d932174 100644
--- a/apps/Development/AndroidManifest.xml
+++ b/apps/Development/AndroidManifest.xml
@@ -66,6 +66,8 @@
         </activity>
         <activity android:name="PackageSummary" android:label="Package Summary">
         </activity>
+        <activity android:name="ShowActivity" android:label="Activity Detail">
+        </activity>
         <activity android:name="AppPicker"
                 android:theme="@android:style/Theme.Dialog">
         </activity>
@@ -86,8 +88,7 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="SyncAdapterDriver" android:label="Sync Tester"
-                  android:theme="@android:style/Theme.Light">
+        <activity android:name="SyncAdapterDriver" android:label="Sync Tester">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.TEST" />
diff --git a/apps/Development/res/layout/connectivity.xml b/apps/Development/res/layout/connectivity.xml
index 8de23da..c596f19 100644
--- a/apps/Development/res/layout/connectivity.xml
+++ b/apps/Development/res/layout/connectivity.xml
@@ -261,6 +261,19 @@
       android:orientation="horizontal"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">
+        <Button android:id="@+id/request_supl"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:text="@string/request_supl" />
+        <Button android:id="@+id/release_supl"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:text="@string/release_supl" />
+    </LinearLayout>
+    <LinearLayout
+      android:orientation="horizontal"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content">
         <Button android:id="@+id/request_cell"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
@@ -272,6 +285,7 @@
     </LinearLayout>
     <LinearLayout
       android:orientation="horizontal"
+      android:paddingBottom="4dip"
       android:layout_width="match_parent"
       android:layout_height="wrap_content">
         <Button android:id="@+id/report_all_bad"
@@ -280,15 +294,10 @@
           android:text="@string/report_all_bad" />
     </LinearLayout>
 
-    <LinearLayout
-      android:orientation="horizontal"
+    <!-- divider line -->
+    <View android:background="#FFFFFFFF"
       android:layout_width="match_parent"
-      android:layout_height="wrap_content">
-        <Button android:id="@+id/crash"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:text="@string/crash" />
-    </LinearLayout>
+      android:layout_height="3dip" />
 
     <LinearLayout
       android:orientation="horizontal"
diff --git a/apps/Development/res/values/strings.xml b/apps/Development/res/values/strings.xml
index ed42725..dd6cefd 100644
--- a/apps/Development/res/values/strings.xml
+++ b/apps/Development/res/values/strings.xml
@@ -42,9 +42,10 @@
 
     <string name="request_mms">Request MMS</string>
     <string name="release_mms">Release MMS</string>
+    <string name="request_supl">Request SUPL</string>
+    <string name="release_supl">Release SUPL</string>
     <string name="request_cell">Request cell</string>
     <string name="release_cell">Release cell</string>
-    <string name="crash">CRASH</string>
     <string name="report_all_bad">Report all bad</string>
 
     <string name="netid">NetId</string>
diff --git a/apps/Development/src/com/android/development/Connectivity.java b/apps/Development/src/com/android/development/Connectivity.java
index 21bf07c..347612a 100644
--- a/apps/Development/src/com/android/development/Connectivity.java
+++ b/apps/Development/src/com/android/development/Connectivity.java
@@ -76,7 +76,6 @@
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.methods.HttpGet;
@@ -86,6 +85,8 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.impl.client.DefaultHttpClient;
 
+import static android.net.NetworkCapabilities.*;
+
 public class Connectivity extends Activity {
     private static final String TAG = "DevTools - Connectivity";
     private static final String GET_SCAN_RES = "Get Results";
@@ -298,6 +299,21 @@
             mReleaseButton = releaseButton;
         }
 
+        public RequestableNetwork(int capability, int requestButton, int releaseButton) {
+            this(new NetworkRequest.Builder()
+                    .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
+                    .addCapability(capability)
+                    .build(),
+                    requestButton, releaseButton);
+        }
+
+        public void addOnClickListener() {
+            findViewById(mRequestButton).setOnClickListener(
+                    new View.OnClickListener() { public void onClick(View v) { request(); }});
+            findViewById(mReleaseButton).setOnClickListener(
+                    new View.OnClickListener() { public void onClick(View v) { release(); }});
+        }
+
         public void setRequested(boolean requested) {
             findViewById(mRequestButton).setEnabled(!requested);
             findViewById(mReleaseButton).setEnabled(requested);
@@ -320,20 +336,18 @@
         }
     }
 
-    private final RequestableNetwork mMmsNetwork = new RequestableNetwork(
-            new NetworkRequest.Builder()
-                    .addCapability(NetworkCapabilities.NET_CAPABILITY_MMS)
-                    .build(),
-            R.id.request_mms,
-            R.id.release_mms);
+    private final ArrayList<RequestableNetwork> mRequestableNetworks = new ArrayList<>();
 
-    private final RequestableNetwork mCellNetwork = new RequestableNetwork(
-            new NetworkRequest.Builder()
-                    .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
-                    .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
-                    .build(),
-            R.id.request_cell,
-            R.id.release_cell);
+    private void addRequestableNetwork(int capability, int requestButton, int releaseButton) {
+        mRequestableNetworks.add(new RequestableNetwork(capability, requestButton, releaseButton));
+    }
+
+    public Connectivity() {
+        super();
+        addRequestableNetwork(NET_CAPABILITY_MMS, R.id.request_mms, R.id.release_mms);
+        addRequestableNetwork(NET_CAPABILITY_SUPL, R.id.request_supl, R.id.release_supl);
+        addRequestableNetwork(NET_CAPABILITY_INTERNET, R.id.request_cell, R.id.release_cell);
+    }
 
     final NetworkRequest mEmptyRequest = new NetworkRequest.Builder().clearCapabilities().build();
 
@@ -386,12 +400,7 @@
         findViewById(R.id.startTdls).setOnClickListener(mClickListener);
         findViewById(R.id.stopTdls).setOnClickListener(mClickListener);
 
-        findViewById(R.id.request_mms).setOnClickListener(mClickListener);
-        findViewById(R.id.release_mms).setOnClickListener(mClickListener);
-        findViewById(R.id.request_cell).setOnClickListener(mClickListener);
-        findViewById(R.id.release_cell).setOnClickListener(mClickListener);
         findViewById(R.id.report_all_bad).setOnClickListener(mClickListener);
-        findViewById(R.id.crash).setOnClickListener(mClickListener);
 
         findViewById(R.id.add_default_route).setOnClickListener(mClickListener);
         findViewById(R.id.remove_default_route).setOnClickListener(mClickListener);
@@ -403,8 +412,10 @@
         findViewById(R.id.default_socket).setOnClickListener(mClickListener);
         findViewById(R.id.link_stats).setOnClickListener(mClickListener);
 
-        mCellNetwork.setRequested(false);
-        mMmsNetwork.setRequested(false);
+        for (RequestableNetwork network : mRequestableNetworks) {
+            network.setRequested(false);
+            network.addOnClickListener();
+        }
 
         registerReceiver(mReceiver, new IntentFilter(CONNECTIVITY_TEST_ALARM));
 
@@ -418,8 +429,9 @@
     @Override
     public void onDestroy() {
         super.onDestroy();
-        mCellNetwork.release();
-        mMmsNetwork.release();
+        for (RequestableNetwork network : mRequestableNetworks) {
+            network.release();
+        }
         mCm.unregisterNetworkCallback(mCallback);
         mCallback = null;
         unregisterReceiver(mReceiver);
@@ -461,12 +473,6 @@
                 case R.id.stopTdls:
                     onStopTdls();
                     break;
-                case R.id.request_mms:
-                    mMmsNetwork.request();
-                    break;
-                case R.id.release_mms:
-                    mMmsNetwork.release();
-                    break;
                 case R.id.default_socket:
                     onDefaultSocket();
                     break;
@@ -494,15 +500,6 @@
                 case R.id.report_all_bad:
                     onReportAllBad();
                     break;
-                case R.id.crash:
-                    onCrash();
-                    break;
-                case R.id.request_cell:
-                    mCellNetwork.request();
-                    break;
-                case R.id.release_cell:
-                    mCellNetwork.release();
-                    break;
                 case R.id.link_stats:
                     onLinkStats();
                     break;
@@ -575,12 +572,6 @@
         }
     }
 
-    private void onCrash() {
-        ConnectivityManager foo = null;
-        foo.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
-                Phone.FEATURE_ENABLE_MMS);
-    }
-
     private void onStartScanCycle() {
         if (mScanCur == -1) {
             try {
diff --git a/build/Android.mk b/build/Android.mk
index ae6ae1f..4b41b8c 100644
--- a/build/Android.mk
+++ b/build/Android.mk
@@ -83,6 +83,10 @@
 
 # ====================================================
 
+# The Jack & Jill compiler jars
+ALL_SDK_FILES += $(HOST_OUT)/framework/jack.jar
+ALL_SDK_FILES += $(HOST_OUT)/framework/jill.jar
+
 # The uiautomator stubs
 ALL_SDK_FILES += $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_uiautomator_intermediates/javalib.jar
 
@@ -160,3 +164,14 @@
 
 # Build and store the android_system.jar.
 $(call dist-for-goals,sdk win_sdk,$(full_target):android_system.jar)
+
+# ============ Test SDK ============
+sdk_stub_name := android_test_stubs_current
+stub_timestamp := $(OUT_DOCS)/test-api-stubs-timestamp
+include $(LOCAL_PATH)/build_android_stubs.mk
+
+.PHONY: android_test_stubs
+android_test_stubs: $(full_target)
+
+# Build and store the android_test.jar.
+$(call dist-for-goals,sdk win_sdk,$(full_target):android_test.jar)
diff --git a/build/build_android_stubs.mk b/build/build_android_stubs.mk
index f74d23c..211d4a5 100644
--- a/build/build_android_stubs.mk
+++ b/build/build_android_stubs.mk
@@ -51,5 +51,7 @@
 	$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .
 	$(hide) jar -u0f $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) resources.arsc
 
-$(jack_lib) : $(full_target) $(JILL_JAR) $(JACK_JAR)
-	$(transform-jar-to-jack)
\ No newline at end of file
+$(jack_lib) : $(full_target) $(JILL_JAR) $(JACK)
+	$(transform-jar-to-jack)
+
+$(call define-jar-to-toc-rule, $(full_target))
diff --git a/build/sdk-darwin-x86.atree b/build/sdk-darwin-x86.atree
index 0ed8e20..a844794 100644
--- a/build/sdk-darwin-x86.atree
+++ b/build/sdk-darwin-x86.atree
@@ -28,11 +28,11 @@
 # revision as specified in the source.properties.
 
 
-lib/libLLVM.dylib                                     strip build-tools/${PLATFORM_NAME}/lib/libLLVM.dylib
-lib/libbcc.dylib                                      strip build-tools/${PLATFORM_NAME}/lib/libbcc.dylib
-lib/libbcinfo.dylib                                   strip build-tools/${PLATFORM_NAME}/lib/libbcinfo.dylib
-lib/libclang.dylib                                    strip build-tools/${PLATFORM_NAME}/lib/libclang.dylib
-lib/libc++.dylib                                      strip build-tools/${PLATFORM_NAME}/lib/libc++.dylib
+lib64/libLLVM.dylib                                     strip build-tools/${PLATFORM_NAME}/lib64/libLLVM.dylib
+lib64/libbcc.dylib                                      strip build-tools/${PLATFORM_NAME}/lib64/libbcc.dylib
+lib64/libbcinfo.dylib                                   strip build-tools/${PLATFORM_NAME}/lib64/libbcinfo.dylib
+lib64/libclang.dylib                                    strip build-tools/${PLATFORM_NAME}/lib64/libclang.dylib
+lib64/libc++.dylib                                      strip build-tools/${PLATFORM_NAME}/lib64/libc++.dylib
 
 prebuilts/sdk/tools/darwin/bin/arm-linux-androideabi-ld   strip build-tools/${PLATFORM_NAME}/arm-linux-androideabi-ld
 prebuilts/sdk/tools/darwin/bin/i686-linux-android-ld      strip build-tools/${PLATFORM_NAME}/i686-linux-android-ld
diff --git a/build/sdk-linux-x86.atree b/build/sdk-linux-x86.atree
index 63dcbc3..f18413d 100644
--- a/build/sdk-linux-x86.atree
+++ b/build/sdk-linux-x86.atree
@@ -18,7 +18,7 @@
 # Platform Tools Component
 ##############################################################################
 
-lib/libc++.so                                        strip platform-tools/lib/libc++.so
+lib64/libc++.so                                        strip platform-tools/lib64/libc++.so
 
 ##############################################################################
 # Build Tools Component
@@ -28,11 +28,11 @@
 # revision as specified in the source.properties.
 
 
-lib/libLLVM.so                                       strip build-tools/${PLATFORM_NAME}/lib/libLLVM.so
-lib/libbcc.so                                        strip build-tools/${PLATFORM_NAME}/lib/libbcc.so
-lib/libbcinfo.so                                     strip build-tools/${PLATFORM_NAME}/lib/libbcinfo.so
-lib/libclang.so                                      strip build-tools/${PLATFORM_NAME}/lib/libclang.so
-lib/libc++.so                                        strip build-tools/${PLATFORM_NAME}/lib/libc++.so
+lib64/libLLVM.so                                       strip build-tools/${PLATFORM_NAME}/lib64/libLLVM.so
+lib64/libbcc.so                                        strip build-tools/${PLATFORM_NAME}/lib64/libbcc.so
+lib64/libbcinfo.so                                     strip build-tools/${PLATFORM_NAME}/lib64/libbcinfo.so
+lib64/libclang.so                                      strip build-tools/${PLATFORM_NAME}/lib64/libclang.so
+lib64/libc++.so                                        strip build-tools/${PLATFORM_NAME}/lib64/libc++.so
 
 prebuilts/sdk/tools/linux/bin/arm-linux-androideabi-ld   strip build-tools/${PLATFORM_NAME}/arm-linux-androideabi-ld
 prebuilts/sdk/tools/linux/bin/i686-linux-android-ld      strip build-tools/${PLATFORM_NAME}/i686-linux-android-ld
diff --git a/build/sdk-windows-x86.atree b/build/sdk-windows-x86.atree
index 9856f98..abad009 100644
--- a/build/sdk-windows-x86.atree
+++ b/build/sdk-windows-x86.atree
@@ -79,20 +79,20 @@
 bin/llvm-rs-cc.exe                      strip build-tools/${PLATFORM_NAME}/llvm-rs-cc.exe
 
 # libc++.so not needed on Windows.
-rm build-tools/${PLATFORM_NAME}/lib/libc++.so
+rm build-tools/${PLATFORM_NAME}/lib64/libc++.so
 
-rm build-tools/${PLATFORM_NAME}/lib/libLLVM.so
+rm build-tools/${PLATFORM_NAME}/lib64/libLLVM.so
 lib/libLLVM.dll                         strip build-tools/${PLATFORM_NAME}/libLLVM.dll
 
-rm build-tools/${PLATFORM_NAME}/lib/libclang.so
+rm build-tools/${PLATFORM_NAME}/lib64/libclang.so
 lib/libclang.dll                        strip build-tools/${PLATFORM_NAME}/libclang.dll
 
 #bcc not yet compiled on windows
 
-rm build-tools/${PLATFORM_NAME}/lib/libbcc.so
+rm build-tools/${PLATFORM_NAME}/lib64/libbcc.so
 lib/libbcc.dll                          strip build-tools/${PLATFORM_NAME}/libbcc.dll
 
-rm build-tools/${PLATFORM_NAME}/lib/libbcinfo.so
+rm build-tools/${PLATFORM_NAME}/lib64/libbcinfo.so
 lib/libbcinfo.dll                       strip build-tools/${PLATFORM_NAME}/libbcinfo.dll
 
 rm build-tools/${PLATFORM_NAME}/bcc_compat
diff --git a/build/sdk.atree b/build/sdk.atree
index b302a58..14acaaa 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -57,19 +57,19 @@
 prebuilts/sdk/sdk-annotations/annotations.zip   platform-tools/api/annotations.zip
 
 # systrace
-external/chromium-trace/agents/__init__.py            platform-tools/systrace/agents/__init__.py
-external/chromium-trace/agents/atrace_agent.py        platform-tools/systrace/agents/atrace_agent.py
-external/chromium-trace/systrace.py                   platform-tools/systrace/systrace.py
-external/chromium-trace/systrace-legacy.py            platform-tools/systrace/systrace-legacy.py
-external/chromium-trace/systrace_agent.py             platform-tools/systrace/systrace_agent.py
-external/chromium-trace/util.py                       platform-tools/systrace/util.py
-external/chromium-trace/systrace_trace_viewer.html    platform-tools/systrace/systrace_trace_viewer.html
-external/chromium-trace/prefix.html                   platform-tools/systrace/prefix.html
-external/chromium-trace/suffix.html                   platform-tools/systrace/suffix.html
-external/chromium-trace/LICENSE                       platform-tools/systrace/LICENSE
-external/chromium-trace/AUTHORS                       platform-tools/systrace/AUTHORS
-external/chromium-trace/NOTICE                        platform-tools/systrace/NOTICE
-external/chromium-trace/UPSTREAM_REVISION             platform-tools/systrace/UPSTREAM_REVISION
+external/chromium-trace/catapult/systrace/systrace/agents/__init__.py     platform-tools/systrace/agents/__init__.py
+external/chromium-trace/catapult/systrace/systrace/agents/atrace_agent.py platform-tools/systrace/agents/atrace_agent.py
+external/chromium-trace/catapult/systrace/systrace/systrace.py            platform-tools/systrace/systrace.py
+external/chromium-trace/catapult/systrace/systrace/systrace-legacy.py     platform-tools/systrace/systrace-legacy.py
+external/chromium-trace/catapult/systrace/systrace/systrace_agent.py      platform-tools/systrace/systrace_agent.py
+external/chromium-trace/catapult/systrace/systrace/util.py                platform-tools/systrace/util.py
+external/chromium-trace/catapult/systrace/systrace/prefix.html            platform-tools/systrace/prefix.html
+external/chromium-trace/catapult/systrace/systrace/suffix.html            platform-tools/systrace/suffix.html
+external/chromium-trace/catapult/systrace/systrace/LICENSE                platform-tools/systrace/LICENSE
+external/chromium-trace/catapult/systrace/systrace/AUTHORS                platform-tools/systrace/AUTHORS
+external/chromium-trace/systrace_trace_viewer.html                        platform-tools/systrace/systrace_trace_viewer.html
+external/chromium-trace/NOTICE                                            platform-tools/systrace/NOTICE
+external/chromium-trace/UPSTREAM_REVISION                                 platform-tools/systrace/UPSTREAM_REVISION
 
 ##############################################################################
 # Build Tools Component
@@ -129,10 +129,12 @@
 
 # multi-dex
 prebuilts/sdk/tools/lib/shrinkedAndroid.jar   build-tools/${PLATFORM_NAME}/lib/shrinkedAndroid.jar
-prebuilts/sdk/tools/jack.jar                  build-tools/${PLATFORM_NAME}/jack.jar
-prebuilts/sdk/tools/jill.jar                  build-tools/${PLATFORM_NAME}/jill.jar
 dalvik/dx/etc/mainDexClasses.rules            build-tools/${PLATFORM_NAME}/mainDexClasses.rules
 
+# Jack & Jill
+${HOST_OUT}/framework/jack.jar                build-tools/${PLATFORM_NAME}/jack.jar
+${HOST_OUT}/framework/jill.jar                build-tools/${PLATFORM_NAME}/jill.jar
+
 
 ##############################################################################
 # Platform Component
diff --git a/build/tools/windows_sdk.mk b/build/tools/windows_sdk.mk
index 9b97a19..7d586a8 100644
--- a/build/tools/windows_sdk.mk
+++ b/build/tools/windows_sdk.mk
@@ -11,13 +11,10 @@
 # This way we avoid the headache of building a full SDK in MinGW mode, which is
 # made complicated by the fact the build system does not support cross-compilation.
 
-# We can only use this under Linux with the mingw32 package installed.
+# We can only use this under Linux
 ifneq ($(shell uname),Linux)
 $(error Linux is required to create a Windows SDK)
 endif
-ifeq ($(strip $(shell which i586-mingw32msvc-gcc 2>/dev/null)),)
-$(error MinGW is required to build a Windows SDK. Please 'apt-get install mingw32')
-endif
 ifeq ($(strip $(shell which unix2dos todos 2>/dev/null)),)
 $(error Need a unix2dos command. Please 'apt-get install tofrodos')
 endif
@@ -34,26 +31,18 @@
 	aapt adb aidl \
 	aprotoc \
 	bcc_compat \
+	clang \
 	etc1tool \
 	dexdump dmtracedump \
 	fastboot \
 	hprof-conv \
 	llvm-rs-cc \
-	prebuilt \
 	sqlite3 \
 	zipalign \
 	split-select \
 	$(WIN_SDK_TARGETS)
 
-# This is the list of *Linux* build tools that we need
-# in order to be able to make the WIN_TARGETS. They are
-# build prerequisites.
-WIN_BUILD_PREREQ := \
-	acp \
-	llvm-tblgen \
-	clang-tblgen \
-	$(WIN_SDK_BUILD_PREREQ)
-
+WIN_TARGETS := $(foreach t,$(WIN_TARGETS),$(ALL_MODULES.host_cross_$(t).INSTALLED))
 
 # MAIN_SDK_NAME/DIR is set in build/core/Makefile
 WIN_SDK_NAME := $(subst $(HOST_OS)-$(SDK_HOST_ARCH),windows,$(MAIN_SDK_NAME))
@@ -80,11 +69,10 @@
 win_sdk: $(WIN_SDK_ZIP)
 	$(call winsdk-banner,Done)
 
-winsdk-tools: $(WIN_BUILD_PREREQ)
-	$(call winsdk-banner,Build Windows Tools)
-	$(hide) USE_MINGW=1 USE_CCACHE="" $(MAKE) PRODUCT-$(TARGET_PRODUCT)-$(strip $(WIN_TARGETS)) $(if $(hide),,showcommands)
+winsdk-tools: $(WIN_TARGETS)
+	$(call winsdk-banner,Tools Done)
 
-$(WIN_SDK_ZIP): winsdk-tools sdk
+$(WIN_SDK_ZIP): $(WIN_TARGETS) $(INTERNAL_SDK_TARGET)
 	$(call winsdk-banner,Build $(WIN_SDK_NAME))
 	$(call winsdk-info)
 	$(hide) rm -rf $(WIN_SDK_DIR)
diff --git a/build/windows_sdk_whitelist.mk b/build/windows_sdk_whitelist.mk
deleted file mode 100644
index bf04360..0000000
--- a/build/windows_sdk_whitelist.mk
+++ /dev/null
@@ -1,83 +0,0 @@
-# Whitelist of SDK projects that can be built for the SDK on Windows
-
-# The Windows SDK cannot build all the projects from the SDK tree, typically
-# due to obvious compiler/architectures differences. When building the Windows
-# SDK, we only care about a subset of projects (e.g. generally the SDK tools
-# and a few platform-specific binaries.)
-#
-# This file defines a whitelist of projects that can be built in the Windows
-# SDK case. Note that whitelisting a project directory will NOT actually build
-# it -- it will only allow one to reference it as a make dependency.
-#
-# This file is included by build/core/main.mk.
-
-# Note that there are 2 flavors of this file:
-#
-# - The other file: sdk/build/windows_sdk_whitelist.mk
-#   must list all projects that are that are NOT specific to a given platform.
-#   These binaries are the ones typically found in the SDK/tools directory.
-#
-# - This file: development/build/windows_sdk_whitelist.mk
-#   must list all projects that are specific to a given platform. These
-#   projects generate files that are generally locates in SDK/platform-tools,
-#   or SDK/platforms/, etc.
-
-# -----
-# Whitelist of platform specific projects that do NOT need Java (e.g. C libraries)
-
-subdirs += \
-	prebuilt \
-	prebuilts \
-	build/libs/host \
-	build/tools/zipalign \
-	dalvik/dexdump \
-	dalvik/libdex \
-	dalvik/tools/dmtracedump \
-	dalvik/tools/hprof-conv \
-	development/host \
-	development/tools/etc1tool \
-	development/tools/line_endings \
-	external/clang \
-	external/easymock \
-	external/expat \
-	external/gtest \
-	external/libcxx \
-	external/libcxxabi \
-	external/compiler-rt \
-	external/libpng \
-	external/llvm \
-	external/protobuf \
-	external/sqlite/dist \
-	external/zlib \
-	external/zopfli \
-	frameworks/base \
-	frameworks/compile \
-	frameworks/native \
-	frameworks/rs \
-	frameworks/tools \
-	system/core/adb \
-	system/core/base \
-	system/core/fastboot \
-	system/core/libcutils \
-	system/core/liblog \
-	system/core/libsparse \
-	system/core/libziparchive \
-	system/core/libutils \
-	system/extras/ext4_utils
-
-# -----
-# Whitelist of platform specific projects that DO require Java
-
-ifneq (,$(shell which javac 2>/dev/null))
-subdirs += \
-	build/tools/signapk \
-	dalvik/dx \
-	libcore \
-	development/apps \
-	development/tools/mkstubs \
-	frameworks/compile/libbcc \
-	packages
-
-else
-$(warning SDK_ONLY: javac not available.)
-endif
diff --git a/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java b/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java
index 80c7e50..b7350b0 100644
--- a/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java
+++ b/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java
@@ -446,6 +446,7 @@
             if (lastKey != KeyEvent.KEYCODE_POWER
                     && lastKey != KeyEvent.KEYCODE_ENDCALL
                     && lastKey != KeyEvent.KEYCODE_SLEEP
+                    && lastKey != KeyEvent.KEYCODE_SOFT_SLEEP
                     && PHYSICAL_KEY_EXISTS[lastKey]) {
                 break;
             }
diff --git a/host/windows/.gitignore b/host/windows/.gitignore
index 434a0fa..0b5cf31 100755
--- a/host/windows/.gitignore
+++ b/host/windows/.gitignore
@@ -6,7 +6,10 @@
 usb/Release

 usb/api/obj*

 usb/api/*.log

+usb/api/*.wrn

 usb/adb_winapi_test/obj*

 usb/adb_winapi_test/*.log

+usb/adb_winapi_test/*.wrn

 usb/winusb/obj*

-usb/winusb/*.log
\ No newline at end of file
+usb/winusb/*.log

+usb/winusb/*.wrn

diff --git a/host/windows/prebuilt/usb/AdbWinApi.def b/host/windows/prebuilt/usb/AdbWinApi.def
deleted file mode 100644
index 1894148..0000000
--- a/host/windows/prebuilt/usb/AdbWinApi.def
+++ /dev/null
@@ -1,15 +0,0 @@
-LIBRARY AdbWinApi.dll
-EXPORTS
-AdbEnumInterfaces
-AdbNextInterface
-AdbCreateInterfaceByName
-AdbOpenDefaultBulkReadEndpoint
-AdbOpenDefaultBulkWriteEndpoint
-AdbCloseHandle
-AdbGetInterfaceName
-AdbWriteEndpointSync
-AdbReadEndpointSync
-AdbGetSerialNumber
-AdbGetUsbInterfaceDescriptor
-AdbGetUsbDeviceDescriptor
-AdbGetEndpointInformation
diff --git a/host/windows/prebuilt/usb/AdbWinApi.dll b/host/windows/prebuilt/usb/AdbWinApi.dll
index b5586eb..7abe26c 100755
--- a/host/windows/prebuilt/usb/AdbWinApi.dll
+++ b/host/windows/prebuilt/usb/AdbWinApi.dll
Binary files differ
diff --git a/host/windows/prebuilt/usb/AdbWinApi.pdb b/host/windows/prebuilt/usb/AdbWinApi.pdb
new file mode 100755
index 0000000..233518b
--- /dev/null
+++ b/host/windows/prebuilt/usb/AdbWinApi.pdb
Binary files differ
diff --git a/host/windows/prebuilt/usb/AdbWinUsbApi.dll b/host/windows/prebuilt/usb/AdbWinUsbApi.dll
index 0c9e00b..e7a6de1 100755
--- a/host/windows/prebuilt/usb/AdbWinUsbApi.dll
+++ b/host/windows/prebuilt/usb/AdbWinUsbApi.dll
Binary files differ
diff --git a/host/windows/prebuilt/usb/AdbWinUsbApi.pdb b/host/windows/prebuilt/usb/AdbWinUsbApi.pdb
new file mode 100755
index 0000000..0883ebf
--- /dev/null
+++ b/host/windows/prebuilt/usb/AdbWinUsbApi.pdb
Binary files differ
diff --git a/host/windows/prebuilt/usb/Android.mk b/host/windows/prebuilt/usb/Android.mk
index e8af167..f1da6b9 100644
--- a/host/windows/prebuilt/usb/Android.mk
+++ b/host/windows/prebuilt/usb/Android.mk
@@ -7,6 +7,7 @@
 LOCAL_SRC_FILES_x86 := AdbWinApi.a
 LOCAL_MODULE_SUFFIX := .a
 LOCAL_MULTILIB := 32
+LOCAL_MODULE_HOST_OS := windows
 include $(BUILD_PREBUILT)
 
 include $(CLEAR_VARS)
@@ -16,6 +17,7 @@
 LOCAL_SRC_FILES_x86 := AdbWinApi.dll
 LOCAL_MODULE_SUFFIX := .dll
 LOCAL_MULTILIB := 32
+LOCAL_MODULE_HOST_OS := windows
 include $(BUILD_PREBUILT)
 
 include $(CLEAR_VARS)
@@ -25,4 +27,5 @@
 LOCAL_SRC_FILES_x86 := AdbWinUsbApi.dll
 LOCAL_MODULE_SUFFIX := .dll
 LOCAL_MULTILIB := 32
+LOCAL_MODULE_HOST_OS := windows
 include $(BUILD_PREBUILT)
diff --git a/host/windows/usb/adb_winapi_test/BUILDME.TXT b/host/windows/usb/adb_winapi_test/BUILDME.TXT
index 9365b58..f53fee2 100755
--- a/host/windows/usb/adb_winapi_test/BUILDME.TXT
+++ b/host/windows/usb/adb_winapi_test/BUILDME.TXT
@@ -12,8 +12,31 @@
 See the License for the specific language governing permissions and

 limitations under the License.

 

-In order to build adb_winapi_test.dll you will need to install Windows Driver

-Kit, which can be obtained from Microsoft. Assuming that WDK is installed, you

-need to set one of the WDK's build environments, "cd" back into this directory,

-and execute "build -cbeEIFZ" to clean and rebuild this project, or you can

-execute "build -befEIF" to do a minimal build.

+In order to build a directory with a SOURCES file you will need to install

+the Windows Driver Kit, which can be obtained from Microsoft:

+

+Windows Driver Kit Version 7.1.0

+https://www.microsoft.com/en-us/download/details.aspx?id=11800

+md5: 8fe981a1706d43ad34bda496e6558f94

+sha1: de6abdb8eb4e08942add4aa270c763ed4e3d8242

+

+This old version is used because it can build for Windows Vista (WDK 8.1

+cannot), it includes compilers (so it doesn't require Visual Studio), and it is

+probably not too far from the WDK that this code was originally built with, so

+it should be less risky.

+

+When installing the WDK, uncheck `Device Simulation Framework' because it is

+unnecessary and it installs a kernel-mode driver that we don't need.

+

+Assuming that WDK is installed, you need to set one of the WDK's build

+environments (Start Menu -> Windows Driver Kits -> x86 Free Build Environment;

+choose the one for the oldest version of Windows you want to support),

+"cd" back into this directory, and execute "build -cbeEIFZ" to clean and rebuild

+this project, or you can execute "build -befEIF" to do a minimal build.

+

+Note that you need to build AdbWinApi.dll (..\api) before you build

+this directory, as this depends on the AdbWinApi.lib import library.

+

+When you're done with the WDK build environment, don't forget to right-click the

+OACR icon (in the lower-right notification area of the taskbar) and choose

+`Close'.

diff --git a/host/windows/usb/adb_winapi_test/SOURCES b/host/windows/usb/adb_winapi_test/SOURCES
index ec82dee..3663ecb 100755
--- a/host/windows/usb/adb_winapi_test/SOURCES
+++ b/host/windows/usb/adb_winapi_test/SOURCES
@@ -18,12 +18,17 @@
 TARGETPATH = obj

 TARGETTYPE = PROGRAM

 

+_NT_TARGET_VERSION = $(_NT_TARGET_VERSION_VISTA)

+

 UMTYPE  = console

 UMENTRY = main

 

 # Use statically linked atl libraries:

 USE_STATIC_ATL  = 1

 

+# Use STL, default version

+USE_STL         = 1

+

 # Use multithreaded libraries

 USE_LIBCMT      = 1

 

@@ -34,13 +39,19 @@
 INCLUDES=$(DDK_INC_PATH)\;$(SDK_INC_PATH)\;$(CRT_INC_PATH)\;$(ATL_INC_PATH)\api

 

 # Common C defines

-USER_C_FLAGS = $(USER_C_FLAGS) /FD /wd4100 /nologo
+USER_C_FLAGS = $(USER_C_FLAGS) /FD /wd4100 /nologo

+

+# The STL uses C++ exception handling.

+USE_NATIVE_EH=1

 

 # Turn on all warnings, and treat warnings as errors

-MSC_WARNING_LEVEL = /W4 /Wp64 /WX
+MSC_WARNING_LEVEL = /W4 /WX

 

-PRECOMPILED_CXX = 1

-PRECOMPILED_INCLUDE = stdafx.h

-PRECOMPILED_SOURCEFILE = stdafx.cpp

+# Disable precompiled header to work-around compiler issue with interaction with

+# ASLR on Windows 7 and newer.

+# http://blogs.msdn.com/b/vcblog/archive/2009/11/12/visual-c-precompiled-header-errors-on-windows-7.aspx

+#PRECOMPILED_CXX = 1

+#PRECOMPILED_INCLUDE = stdafx.h

+#PRECOMPILED_SOURCEFILE = stdafx.cpp

 

 SOURCES = adb_winapi_test.cpp

diff --git a/host/windows/usb/adb_winapi_test/adb_winapi_test.cpp b/host/windows/usb/adb_winapi_test/adb_winapi_test.cpp
index 11fcadf..75bf76a 100755
--- a/host/windows/usb/adb_winapi_test/adb_winapi_test.cpp
+++ b/host/windows/usb/adb_winapi_test/adb_winapi_test.cpp
Binary files differ
diff --git a/host/windows/usb/adb_winapi_test/stdafx.h b/host/windows/usb/adb_winapi_test/stdafx.h
index 2aa9910..41f6bdb 100755
--- a/host/windows/usb/adb_winapi_test/stdafx.h
+++ b/host/windows/usb/adb_winapi_test/stdafx.h
@@ -49,6 +49,9 @@
 

 #include <windows.h>

 #include <atlbase.h>

+#include <algorithm>

+#include <map>

+#include <string>

 

 #include <initguid.h>

 

diff --git a/host/windows/usb/api/BUILDME.TXT b/host/windows/usb/api/BUILDME.TXT
index 8e13107..998673a 100755
--- a/host/windows/usb/api/BUILDME.TXT
+++ b/host/windows/usb/api/BUILDME.TXT
@@ -12,8 +12,28 @@
 See the License for the specific language governing permissions and

 limitations under the License.

 

-In order to build AdbWinApi.dll you will need to install Windows Driver Kit,

-which can be obtained from Microsoft. Assuming that WDK is installed, you

-need to set one of the WDK's build environments, "cd" back into this directory,

-and execute "build -cbeEIFZ" to clean and rebuild this project, or you can

-execute "build -befEIF" to do a minimal build.

+In order to build a directory with a SOURCES file you will need to install

+the Windows Driver Kit, which can be obtained from Microsoft:

+

+Windows Driver Kit Version 7.1.0

+https://www.microsoft.com/en-us/download/details.aspx?id=11800

+md5: 8fe981a1706d43ad34bda496e6558f94

+sha1: de6abdb8eb4e08942add4aa270c763ed4e3d8242

+

+This old version is used because it can build for Windows Vista (WDK 8.1

+cannot), it includes compilers (so it doesn't require Visual Studio), and it is

+probably not too far from the WDK that this code was originally built with, so

+it should be less risky.

+

+When installing the WDK, uncheck `Device Simulation Framework' because it is

+unnecessary and it installs a kernel-mode driver that we don't need.

+

+Assuming that WDK is installed, you need to set one of the WDK's build

+environments (Start Menu -> Windows Driver Kits -> x86 Free Build Environment;

+choose the one for the oldest version of Windows you want to support),

+"cd" back into this directory, and execute "build -cbeEIFZ" to clean and rebuild

+this project, or you can execute "build -befEIF" to do a minimal build.

+

+When you're done with the WDK build environment, don't forget to right-click the

+OACR icon (in the lower-right notification area of the taskbar) and choose

+`Close'.

diff --git a/host/windows/usb/api/SOURCES b/host/windows/usb/api/SOURCES
index 3569521..25cc892 100755
--- a/host/windows/usb/api/SOURCES
+++ b/host/windows/usb/api/SOURCES
@@ -18,8 +18,13 @@
 TARGETPATH = obj

 TARGETTYPE = DYNLINK

 

+_NT_TARGET_VERSION = $(_NT_TARGET_VERSION_VISTA)

+

 UMTYPE = windows

 DLLDEF = AdbWinApi.def

+# Use the same load address as previous versions just to be conservative. This

+# really doesn't matter on newer OSes that use ASLR.

+DLLBASE = 0x400000

 

 # Use statically linked atl libraries:

 # - atls.lib for free build

@@ -33,6 +38,12 @@
 # Use multithreaded libraries

 USE_LIBCMT      = 1

 

+!IF !$(FREEBUILD)

+# In checked build, ATL headers call APIs that are only in atlsd.lib. To use

+# atlsd.lib in checked build, set DEBUG_CRTS.

+DEBUG_CRTS=1

+!ENDIF

+

 # Include directories

 INCLUDES = $(DDK_INC_PATH);           \

            $(SDK_INC_PATH);           \

@@ -52,33 +63,28 @@
              $(SDK_LIB_PATH)\setupapi.lib \

              $(SDK_LIB_PATH)\usbd.lib

            

-!IF "$(DDKBUILDENV)" == "fre"
-# Libraries for release (free) builds
-TARGETLIBS = $(TARGETLIBS) $(ATL_LIB_PATH)\atls.lib

-!ELSE

-# Libraries for debug (checked) builds
-TARGETLIBS = $(TARGETLIBS) $(ATL_LIB_PATH)\atlsd.lib

-!ENDIF

-           

 # Common C defines           

 C_DEFINES= $(C_DEFINES) -DADBWIN_EXPORTS -D_UNICODE \

            -DUNICODE -DWIN32 -D_WINDOWS -D_USRDLL -D_WINDLL

 

-!IF "$(DDKBUILDENV)" == "fre"
-# C defines for release (free) builds
+!IF "$(DDKBUILDENV)" == "fre"

+# C defines for release (free) builds

 C_DEFINES = $(C_DEFINES) -DNDEBUG

 !ELSE

-# C defines for debug (checked) builds
+# C defines for debug (checked) builds

 C_DEFINES = $(C_DEFINES) -D_DEBUG

 !ENDIF

 

 # Turn on all warnings, and treat warnings as errors

-MSC_WARNING_LEVEL = /W4 /Wp64 /WX
-
+MSC_WARNING_LEVEL = /W4 /WX

+

+# operator new throws C++ exceptions

+USE_NATIVE_EH=1

+

 # Common C defines           

-USER_C_FLAGS = $(USER_C_FLAGS) /FD /EHsc /wd4100 /wd4200 /wd4702 /nologo
-
-# Set precompiled header information
+USER_C_FLAGS = $(USER_C_FLAGS) /FD /wd4100 /wd4200 /wd4702 /nologo

+

+# Set precompiled header information

 PRECOMPILED_CXX = 1

 PRECOMPILED_INCLUDE = stdafx.h

 PRECOMPILED_SOURCEFILE = stdafx.cpp

diff --git a/host/windows/usb/api/adb_api.h b/host/windows/usb/api/adb_api.h
old mode 100644
new mode 100755
index 29c4ee3..9bd9274
--- a/host/windows/usb/api/adb_api.h
+++ b/host/windows/usb/api/adb_api.h
@@ -91,28 +91,6 @@
 #define ANDROID_USB_CLASS_ID \

 {0xf72fe0d4, 0xcbcb, 0x407d, {0x88, 0x14, 0x9e, 0xd6, 0x73, 0xd0, 0xdd, 0x6b}};

 

-/// Defines vendor ID for HCT devices.

-#define DEVICE_VENDOR_ID                  0x0BB4

-

-/// Defines product ID for the device with single interface.

-#define DEVICE_SINGLE_PRODUCT_ID          0x0C01

-

-/// Defines product ID for the Dream composite device.

-#define DEVICE_COMPOSITE_PRODUCT_ID       0x0C02

-

-/// Defines product ID for the Magic composite device.

-#define DEVICE_MAGIC_COMPOSITE_PRODUCT_ID 0x0C03

-

-/// Defines interface ID for the device.

-#define DEVICE_INTERFACE_ID               0x01

-

-/// Defines vendor ID for the device

-#define DEVICE_EMULATOR_VENDOR_ID         0x18D1

-

-/// Defines product ID for a SoftUSB device simulator that is used to test

-/// the driver in isolation from hardware.

-#define DEVICE_EMULATOR_PROD_ID           0xDDDD

-

 // The following ifdef block is the standard way of creating macros which make

 // exporting  from a DLL simpler. All files within this DLL are compiled with

 // the ADBWIN_EXPORTS symbol defined on the command line. this symbol should

diff --git a/host/windows/usb/winusb/AdbWinUsbApi.rc b/host/windows/usb/winusb/AdbWinUsbApi.rc
index 44aa100..a33082e 100755
--- a/host/windows/usb/winusb/AdbWinUsbApi.rc
+++ b/host/windows/usb/winusb/AdbWinUsbApi.rc
@@ -57,8 +57,8 @@
 //

 

 VS_VERSION_INFO VERSIONINFO

- FILEVERSION 2,0,0,0

- PRODUCTVERSION 2,0,0,0

+ FILEVERSION 2,0,0,1

+ PRODUCTVERSION 2,0,0,1

  FILEFLAGSMASK 0x3fL

 #ifdef _DEBUG

  FILEFLAGS 0x1L

@@ -75,12 +75,12 @@
         BEGIN

             VALUE "CompanyName", "Google, inc"

             VALUE "FileDescription", "Android ADB API (WinUsb)"

-            VALUE "FileVersion", "2.0.0.0"

-            VALUE "LegalCopyright", "Copyright (C) 2006 The Android Open Source Project"

+            VALUE "FileVersion", "2.0.0.1"

+            VALUE "LegalCopyright", "Copyright (C) 2006-2015 The Android Open Source Project"

             VALUE "InternalName", "AdbWinUsbApi.dll"

             VALUE "OriginalFilename", "AdbWinUsbApi.dll"

             VALUE "ProductName", "Android SDK"

-            VALUE "ProductVersion", "2.0.0.0"

+            VALUE "ProductVersion", "2.0.0.1"

             VALUE "OLESelfRegister", ""

         END

     END

diff --git a/host/windows/usb/winusb/BUILDME.TXT b/host/windows/usb/winusb/BUILDME.TXT
index 2a459ef..1f74021 100755
--- a/host/windows/usb/winusb/BUILDME.TXT
+++ b/host/windows/usb/winusb/BUILDME.TXT
@@ -1,7 +1,42 @@
-In order to build AdbWinUsbApi.dll you will need to install Windows Driver Kit,

-which can be obtained from Microsoft. Assuming that WDK is installed, you

-need to set one of the WDK's build environments, "cd" back into this directory,

-and execute "build -cbeEIFZ" to clean and rebuild this project, or you can

-execute "build -befEIF" to do a minimal build.

+Copyright (C) 2006 The Android Open Source Project

+

+Licensed under the Apache License, Version 2.0 (the "License");

+you may not use this file except in compliance with the License.

+You may obtain a copy of the License at

+

+  http://www.apache.org/licenses/LICENSE-2.0

+

+Unless required by applicable law or agreed to in writing, software

+distributed under the License is distributed on an "AS IS" BASIS,

+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+See the License for the specific language governing permissions and

+limitations under the License.

+

+In order to build a directory with a SOURCES file you will need to install

+the Windows Driver Kit, which can be obtained from Microsoft:

+

+Windows Driver Kit Version 7.1.0

+https://www.microsoft.com/en-us/download/details.aspx?id=11800

+md5: 8fe981a1706d43ad34bda496e6558f94

+sha1: de6abdb8eb4e08942add4aa270c763ed4e3d8242

+

+This old version is used because it can build for Windows Vista (WDK 8.1

+cannot), it includes compilers (so it doesn't require Visual Studio), and it is

+probably not too far from the WDK that this code was originally built with, so

+it should be less risky.

+

+When installing the WDK, uncheck `Device Simulation Framework' because it is

+unnecessary and it installs a kernel-mode driver that we don't need.

+

+Assuming that WDK is installed, you need to set one of the WDK's build

+environments (Start Menu -> Windows Driver Kits -> x86 Free Build Environment;

+choose the one for the oldest version of Windows you want to support),

+"cd" back into this directory, and execute "build -cbeEIFZ" to clean and rebuild

+this project, or you can execute "build -befEIF" to do a minimal build.

+

 Note that you need to build AdbWinApi.dll (..\api) before you build

-AdbWinUsbApi.dll, as it depends on AdbWinApi.lib library.

+this directory, as this depends on the AdbWinApi.lib import library.

+

+When you're done with the WDK build environment, don't forget to right-click the

+OACR icon (in the lower-right notification area of the taskbar) and choose

+`Close'.

diff --git a/host/windows/usb/winusb/SOURCES b/host/windows/usb/winusb/SOURCES
index 80d17ae..d61fbcd 100755
--- a/host/windows/usb/winusb/SOURCES
+++ b/host/windows/usb/winusb/SOURCES
@@ -18,8 +18,13 @@
 TARGETPATH = obj

 TARGETTYPE = DYNLINK

 

+_NT_TARGET_VERSION = $(_NT_TARGET_VERSION_VISTA)

+

 UMTYPE = windows

 DLLDEF = AdbWinUsbApi.def

+# Use the same load address as previous versions just to be conservative. This

+# really doesn't matter on newer OSes that use ASLR.

+DLLBASE = 0x400000

 

 # Use statically linked atl libraries:

 # - atls.lib for free build

@@ -33,6 +38,12 @@
 # Use multithreaded libraries

 USE_LIBCMT      = 1

 

+!IF !$(FREEBUILD)

+# In checked build, ATL headers call APIs that are only in atlsd.lib. To use

+# atlsd.lib in checked build, set DEBUG_CRTS.

+DEBUG_CRTS=1

+!ENDIF

+

 # Include directories

 INCLUDES = $(DDK_INC_PATH);           \

            $(SDK_INC_PATH);           \

@@ -54,33 +65,28 @@
              $(SDK_LIB_PATH)\winusb.lib   \

              ..\api\obj$(BUILD_ALT_DIR)\i386\AdbWinApi.lib

 

-!IF "$(DDKBUILDENV)" == "fre"
-# Libraries for release (free) builds
-TARGETLIBS = $(TARGETLIBS) $(ATL_LIB_PATH)\atls.lib

-!ELSE

-# Libraries for debug (checked) builds
-TARGETLIBS = $(TARGETLIBS) $(ATL_LIB_PATH)\atlsd.lib

-!ENDIF

-

 # Common C defines

 C_DEFINES= $(C_DEFINES) -DADBWINUSB_EXPORTS -D_UNICODE \

            -DUNICODE -DWIN32 -D_WINDOWS -D_USRDLL -D_WINDLL

 

-!IF "$(DDKBUILDENV)" == "fre"
-# C defines for release (free) builds
+!IF "$(DDKBUILDENV)" == "fre"

+# C defines for release (free) builds

 C_DEFINES = $(C_DEFINES) -DNDEBUG

 !ELSE

-# C defines for debug (checked) builds
+# C defines for debug (checked) builds

 C_DEFINES = $(C_DEFINES) -D_DEBUG

 !ENDIF

 

 # Turn on all warnings, and treat warnings as errors

-MSC_WARNING_LEVEL = /W4 /Wp64 /WX
-
+MSC_WARNING_LEVEL = /W4 /WX

+

+# operator new throws C++ exceptions

+USE_NATIVE_EH=1

+

 # Common C defines

-USER_C_FLAGS = $(USER_C_FLAGS) /FD /EHsc /wd4100 /wd4200 /wd4702 /nologo
-
-# Set precompiled header information
+USER_C_FLAGS = $(USER_C_FLAGS) /FD /wd4100 /wd4200 /wd4702 /nologo

+

+# Set precompiled header information

 PRECOMPILED_CXX = 1

 PRECOMPILED_INCLUDE = stdafx.h

 PRECOMPILED_SOURCEFILE = stdafx.cpp

diff --git a/host/windows/usb/winusb/adb_winusb_endpoint_object.cpp b/host/windows/usb/winusb/adb_winusb_endpoint_object.cpp
index 16f7837..dee9167 100755
--- a/host/windows/usb/winusb/adb_winusb_endpoint_object.cpp
+++ b/host/windows/usb/winusb/adb_winusb_endpoint_object.cpp
@@ -27,7 +27,8 @@
     AdbWinUsbInterfaceObject* parent_interf,

     UCHAR endpoint_id,

     UCHAR endpoint_index)

-    : AdbEndpointObject(parent_interf, endpoint_id, endpoint_index) {

+    : AdbEndpointObject(parent_interf, endpoint_id, endpoint_index),

+    lock_(), is_closing_(false), pending_io_count_(0) {

 }

 

 AdbWinUsbEndpointObject::~AdbWinUsbEndpointObject() {

@@ -44,6 +45,54 @@
   return ret;

 }

 

+bool AdbWinUsbEndpointObject::CloseHandle() {

+  // This method only returns once all pending IOs are aborted and after

+  // preventing future pending IOs. This means that once CloseHandle()

+  // returns, threads using this object won't be using

+  // parent_winusb_interface()->winusb_handle(), so it can then be safely

+  // released.

+  lock_.Lock();

+  if (!is_closing_) {

+    // Set flag to prevent new I/Os from starting up.

+    is_closing_ = true;

+  }

+

+  // While there are pending IOs, keep aborting the pipe. We have to do this

+  // repeatedly because pending_ios_ is incremented before the IO has actually

+  // started, and abort (probably) only works if the IO has been started.

+  while (pending_io_count_ > 0) {

+    lock_.Unlock();

+

+    // It has been noticed that on Windows 7, if you only call

+    // WinUsb_AbortPipe(), without first calling WinUsb_ResetPipe(), the call

+    // to WinUsb_AbortPipe() hangs.

+    if (!WinUsb_ResetPipe(parent_winusb_interface()->winusb_handle(),

+                          endpoint_id()) ||

+        !WinUsb_AbortPipe(parent_winusb_interface()->winusb_handle(),

+                          endpoint_id())) {

+      // Reset or Abort failed for unexpected reason. We might not be able to

+      // abort pending IOs, so we shouldn't keep polling pending_io_count_ or

+      // else we might hang forever waiting for the IOs to abort. In this

+      // situation it is preferable to risk a race condition (which may or may

+      // not crash) and just break now.

+      lock_.Lock();

+      break;

+    }

+

+    // Give the IO threads time to break out of I/O calls and decrement

+    // pending_io_count_. They should finish up pretty quick. The amount of time

+    // "wasted" here (as opposed to if we did synchronization with an event)

+    // doesn't really matter since this is an uncommon corner-case.

+    Sleep(16);  // 16 ms, old default OS scheduler granularity

+

+    lock_.Lock();

+  }

+

+  lock_.Unlock();

+

+  return AdbEndpointObject::CloseHandle();

+}

+

 ADBAPIHANDLE AdbWinUsbEndpointObject::CommonAsyncReadWrite(

     bool is_read,

     void* buffer,

@@ -51,6 +100,9 @@
     ULONG* bytes_transferred,

     HANDLE event_handle,

     ULONG time_out) {

+  // TODO: Do synchronization with is_closing_ and pending_io_count_ like

+  // CommonSyncReadWrite(). This is not yet implemented because there are no

+  // callers to Adb{Read,Write}EndpointAsync() in AOSP, and hence no testing.

   if (!SetTimeout(time_out))

     return false;

 

@@ -110,6 +162,24 @@
                                                   ULONG bytes_to_transfer,

                                                   ULONG* bytes_transferred,

                                                   ULONG time_out) {

+  lock_.Lock();

+  if (is_closing_) {

+    lock_.Unlock();

+    // AdbCloseHandle() is in progress, so don't start up any new IOs.

+    SetLastError(ERROR_HANDLES_CLOSED);

+    return false;

+  } else {

+    // Not closing down, so record the fact that we're doing IO. This will

+    // prevent CloseHandle() from returning until our IO completes or it aborts

+    // our IO.

+    ++pending_io_count_;

+    lock_.Unlock();

+  }

+

+  // Because we've incremented pending_ios_, do the matching decrement when this

+  // object goes out of scope.

+  DecrementPendingIO dec(this);

+

   if (!SetTimeout(time_out))

     return false;

 

diff --git a/host/windows/usb/winusb/adb_winusb_endpoint_object.h b/host/windows/usb/winusb/adb_winusb_endpoint_object.h
index 92b6e04..2da7bd2 100755
--- a/host/windows/usb/winusb/adb_winusb_endpoint_object.h
+++ b/host/windows/usb/winusb/adb_winusb_endpoint_object.h
@@ -72,6 +72,17 @@
   */

   virtual LONG Release();

 

+    /** \brief This method is called when handle to this object gets closed.

+

+    In this call object is deleted from the AdbObjectHandleMap. We override

+    this method in order to abort pending IOs and to prevent new IOs from

+    starting up.

+    @return true on success or false if object is already closed. If

+            false is returned GetLastError() provides extended error

+            information.

+  */

+  virtual bool CloseHandle();

+

   //

   // Abstract overrides

   //

@@ -150,6 +161,32 @@
   WINUSB_INTERFACE_HANDLE winusb_handle() const {

     return parent_winusb_interface()->winusb_handle();

   }

+

+ protected:

+   /// Helper class whose destructor decrements pending_io_count_.

+   class DecrementPendingIO {

+   public:

+     DecrementPendingIO(AdbWinUsbEndpointObject* endpoint)

+       : endpoint_(endpoint) {}

+     ~DecrementPendingIO() {

+       endpoint_->lock_.Lock();

+       ATLASSERT(endpoint_->pending_io_count_ > 0);

+       --(endpoint_->pending_io_count_);

+       endpoint_->lock_.Unlock();

+     }

+   private:

+     AdbWinUsbEndpointObject* endpoint_;

+   };

+

+ protected:

+  /// Protects is_closing_ and pending_io_count_.

+  CComAutoCriticalSection lock_;

+

+  /// Once set, prevents new IOs from starting up.

+  bool is_closing_;

+

+  /// Count of pending IOs potentially blocked in WinUsb APIs.

+  ULONG pending_io_count_;

 };

 

 #endif  // ANDROID_USB_API_ADB_WINUSB_ENDPOINT_OBJECT_H__

diff --git a/ide/intellij/codestyles/AndroidStyle.xml b/ide/intellij/codestyles/AndroidStyle.xml
index 5a21b7c..67a4090 100644
--- a/ide/intellij/codestyles/AndroidStyle.xml
+++ b/ide/intellij/codestyles/AndroidStyle.xml
@@ -18,6 +18,8 @@
   <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="9999" />
   <option name="IMPORT_LAYOUT_TABLE">
     <value>
+      <package name="android" withSubpackages="true" static="false" />
+      <emptyLine />
       <package name="com.google" withSubpackages="true" static="false" />
       <emptyLine />
       <package name="com" withSubpackages="true" static="false" />
@@ -28,8 +30,6 @@
       <emptyLine />
       <package name="org" withSubpackages="true" static="false" />
       <emptyLine />
-      <package name="android" withSubpackages="true" static="false" />
-      <emptyLine />
       <package name="java" withSubpackages="true" static="false" />
       <emptyLine />
       <package name="javax" withSubpackages="true" static="false" />
@@ -82,6 +82,9 @@
     <option name="LABEL_INDENT_ABSOLUTE" value="false" />
     <option name="USE_RELATIVE_INDENTS" value="false" />
   </ADDITIONAL_INDENT_OPTIONS>
+  <XML>
+    <option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
+  </XML>
   <ADDITIONAL_INDENT_OPTIONS fileType="java">
     <option name="INDENT_SIZE" value="4" />
     <option name="CONTINUATION_INDENT_SIZE" value="8" />
@@ -171,4 +174,38 @@
     <option name="FOR_BRACE_FORCE" value="3" />
     <option name="PARENT_SETTINGS_INSTALLED" value="true" />
   </codeStyleSettings>
+  <codeStyleSettings language="XML">
+    <arrangement>
+      <rules>
+        <section>
+          <rule>
+            <match>
+              <NAME>xmlns:.*</NAME>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <NAME>android:id</NAME>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <NAME>android:layout_width</NAME>
+            </match>
+          </rule>
+        </section>
+        <section>
+          <rule>
+            <match>
+              <NAME>android:layout_height</NAME>
+            </match>
+          </rule>
+        </section>
+      </rules>
+    </arrangement>
+  </codeStyleSettings>
 </code_scheme>
diff --git a/ide/xcode/GL.xcodeproj/project.pbxproj b/ide/xcode/GL.xcodeproj/project.pbxproj
deleted file mode 100644
index 1a11676..0000000
--- a/ide/xcode/GL.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,267 +0,0 @@
-// !$*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
deleted file mode 100644
index e842e19..0000000
--- a/ide/xcode/SampleCode/English.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,3 +0,0 @@
-/* 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
deleted file mode 100644
index c4b887e..0000000
--- a/ide/xcode/SampleCode/English.lproj/main.nib/classes.nib
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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
deleted file mode 100644
index 2af896b..0000000
--- a/ide/xcode/SampleCode/English.lproj/main.nib/info.nib
+++ /dev/null
@@ -1,18 +0,0 @@
-<?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
deleted file mode 100644
index a9e438e..0000000
--- a/ide/xcode/SampleCode/English.lproj/main.nib/objects.xib
+++ /dev/null
@@ -1,269 +0,0 @@
-<?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
deleted file mode 100644
index e12ff9b..0000000
--- a/ide/xcode/SampleCode/Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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
deleted file mode 100644
index 826bb6a..0000000
--- a/ide/xcode/SampleCode/SampleCode.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1082 +0,0 @@
-// !$*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
deleted file mode 100644
index 4291858..0000000
--- a/ide/xcode/SampleCode/SampleCode_Prefix.pch
+++ /dev/null
@@ -1,5 +0,0 @@
-//
-// 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
deleted file mode 100644
index 3b3bee4..0000000
--- a/ide/xcode/animator.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,851 +0,0 @@
-// !$*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
deleted file mode 100644
index 4137b0e..0000000
--- a/ide/xcode/animatorTest/English.lproj/InfoPlist.strings
+++ /dev/null
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
deleted file mode 100644
index ea58db1..0000000
--- a/ide/xcode/animatorTest/English.lproj/main.nib/classes.nib
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-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
deleted file mode 100644
index 61c153e..0000000
--- a/ide/xcode/animatorTest/English.lproj/main.nib/info.nib
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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
deleted file mode 100644
index 8ae9ed6..0000000
--- a/ide/xcode/animatorTest/English.lproj/main.nib/objects.xib
+++ /dev/null
@@ -1,269 +0,0 @@
-<?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
deleted file mode 100644
index 90c4211..0000000
--- a/ide/xcode/animatorTest/Info.plist
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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
deleted file mode 100644
index 26004dc..0000000
--- a/ide/xcode/animatorTest/animatorTest.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1112 +0,0 @@
-// !$*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
deleted file mode 100644
index 39aee7e..0000000
--- a/ide/xcode/animatorTest/animatorTest_Prefix.pch
+++ /dev/null
@@ -1,5 +0,0 @@
-//
-// 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
deleted file mode 100644
index d30ddcd..0000000
--- a/ide/xcode/chipmunk.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,258 +0,0 @@
-// !$*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
deleted file mode 100644
index c4ac10e..0000000
--- a/ide/xcode/corecg.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,396 +0,0 @@
-// !$*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
deleted file mode 100644
index afc3d85..0000000
--- a/ide/xcode/expat.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,256 +0,0 @@
-// !$*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
deleted file mode 100644
index 6635d72..0000000
--- a/ide/xcode/freetype2.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,454 +0,0 @@
-// !$*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
deleted file mode 100644
index 0645a35..0000000
--- a/ide/xcode/gif.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,264 +0,0 @@
-// !$*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
deleted file mode 100644
index 679bb71..0000000
--- a/ide/xcode/giflib.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,251 +0,0 @@
-// !$*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
deleted file mode 100644
index 0eabe53..0000000
--- a/ide/xcode/graphics.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1220 +0,0 @@
-// !$*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
deleted file mode 100644
index a169c20..0000000
--- a/ide/xcode/jpeg.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,440 +0,0 @@
-// !$*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
deleted file mode 100644
index 08ae603..0000000
--- a/ide/xcode/libpng.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,307 +0,0 @@
-// !$*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
deleted file mode 100644
index 5a81cc9..0000000
--- a/ide/xcode/ports-mac.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,252 +0,0 @@
-// !$*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
deleted file mode 100644
index d618305..0000000
--- a/ide/xcode/ports.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,277 +0,0 @@
-// !$*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
deleted file mode 100644
index 06c2b27..0000000
--- a/ide/xcode/ports/SkBitmap_Mac.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-#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
deleted file mode 100644
index 5184da5..0000000
--- a/ide/xcode/ports/SkOSWindow_Mac.cpp
+++ /dev/null
@@ -1,328 +0,0 @@
-#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
deleted file mode 100644
index e6638d4..0000000
--- a/ide/xcode/ports/skia_mac.cp
+++ /dev/null
@@ -1,96 +0,0 @@
-#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
deleted file mode 100644
index 5d09e2d..0000000
--- a/ide/xcode/pvjpeg.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,261 +0,0 @@
-// !$*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
deleted file mode 100644
index c4374eb..0000000
--- a/ide/xcode/svg.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,435 +0,0 @@
-// !$*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
deleted file mode 100644
index 05de569..0000000
--- a/ide/xcode/views.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,330 +0,0 @@
-// !$*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
deleted file mode 100644
index dad1a97..0000000
--- a/ide/xcode/zlib.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,350 +0,0 @@
-// !$*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 */;
-}
diff --git a/ndk/Android.mk b/ndk/Android.mk
index 6c93761..c362694 100644
--- a/ndk/Android.mk
+++ b/ndk/Android.mk
@@ -1,4 +1 @@
-# Please this file empty. It is used to make the Android build system happy.
-
-include development/ndk/sources/android/libportable/Android.mk
 include development/ndk/sources/android/native_app_glue/Android.mk
diff --git a/ndk/platforms/android-21/arch-mips/include/asm/reg.h b/ndk/platforms/android-21/arch-mips/include/asm/reg.h
new file mode 100644
index 0000000..c0f003e
--- /dev/null
+++ b/ndk/platforms/android-21/arch-mips/include/asm/reg.h
@@ -0,0 +1,223 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __UAPI_ASM_MIPS_REG_H
+#define __UAPI_ASM_MIPS_REG_H
+#define MIPS32_EF_R0 6
+#define MIPS32_EF_R1 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R2 8
+#define MIPS32_EF_R3 9
+#define MIPS32_EF_R4 10
+#define MIPS32_EF_R5 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R6 12
+#define MIPS32_EF_R7 13
+#define MIPS32_EF_R8 14
+#define MIPS32_EF_R9 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R10 16
+#define MIPS32_EF_R11 17
+#define MIPS32_EF_R12 18
+#define MIPS32_EF_R13 19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R14 20
+#define MIPS32_EF_R15 21
+#define MIPS32_EF_R16 22
+#define MIPS32_EF_R17 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R18 24
+#define MIPS32_EF_R19 25
+#define MIPS32_EF_R20 26
+#define MIPS32_EF_R21 27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R22 28
+#define MIPS32_EF_R23 29
+#define MIPS32_EF_R24 30
+#define MIPS32_EF_R25 31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R26 32
+#define MIPS32_EF_R27 33
+#define MIPS32_EF_R28 34
+#define MIPS32_EF_R29 35
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R30 36
+#define MIPS32_EF_R31 37
+#define MIPS32_EF_LO 38
+#define MIPS32_EF_HI 39
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_CP0_EPC 40
+#define MIPS32_EF_CP0_BADVADDR 41
+#define MIPS32_EF_CP0_STATUS 42
+#define MIPS32_EF_CP0_CAUSE 43
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_UNUSED0 44
+#define MIPS32_EF_SIZE 180
+#define MIPS64_EF_R0 0
+#define MIPS64_EF_R1 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R2 2
+#define MIPS64_EF_R3 3
+#define MIPS64_EF_R4 4
+#define MIPS64_EF_R5 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R6 6
+#define MIPS64_EF_R7 7
+#define MIPS64_EF_R8 8
+#define MIPS64_EF_R9 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R10 10
+#define MIPS64_EF_R11 11
+#define MIPS64_EF_R12 12
+#define MIPS64_EF_R13 13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R14 14
+#define MIPS64_EF_R15 15
+#define MIPS64_EF_R16 16
+#define MIPS64_EF_R17 17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R18 18
+#define MIPS64_EF_R19 19
+#define MIPS64_EF_R20 20
+#define MIPS64_EF_R21 21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R22 22
+#define MIPS64_EF_R23 23
+#define MIPS64_EF_R24 24
+#define MIPS64_EF_R25 25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R26 26
+#define MIPS64_EF_R27 27
+#define MIPS64_EF_R28 28
+#define MIPS64_EF_R29 29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R30 30
+#define MIPS64_EF_R31 31
+#define MIPS64_EF_LO 32
+#define MIPS64_EF_HI 33
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_CP0_EPC 34
+#define MIPS64_EF_CP0_BADVADDR 35
+#define MIPS64_EF_CP0_STATUS 36
+#define MIPS64_EF_CP0_CAUSE 37
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_SIZE 304
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define EF_R0 MIPS32_EF_R0
+#define EF_R1 MIPS32_EF_R1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R2 MIPS32_EF_R2
+#define EF_R3 MIPS32_EF_R3
+#define EF_R4 MIPS32_EF_R4
+#define EF_R5 MIPS32_EF_R5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R6 MIPS32_EF_R6
+#define EF_R7 MIPS32_EF_R7
+#define EF_R8 MIPS32_EF_R8
+#define EF_R9 MIPS32_EF_R9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R10 MIPS32_EF_R10
+#define EF_R11 MIPS32_EF_R11
+#define EF_R12 MIPS32_EF_R12
+#define EF_R13 MIPS32_EF_R13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R14 MIPS32_EF_R14
+#define EF_R15 MIPS32_EF_R15
+#define EF_R16 MIPS32_EF_R16
+#define EF_R17 MIPS32_EF_R17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R18 MIPS32_EF_R18
+#define EF_R19 MIPS32_EF_R19
+#define EF_R20 MIPS32_EF_R20
+#define EF_R21 MIPS32_EF_R21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R22 MIPS32_EF_R22
+#define EF_R23 MIPS32_EF_R23
+#define EF_R24 MIPS32_EF_R24
+#define EF_R25 MIPS32_EF_R25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R26 MIPS32_EF_R26
+#define EF_R27 MIPS32_EF_R27
+#define EF_R28 MIPS32_EF_R28
+#define EF_R29 MIPS32_EF_R29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R30 MIPS32_EF_R30
+#define EF_R31 MIPS32_EF_R31
+#define EF_LO MIPS32_EF_LO
+#define EF_HI MIPS32_EF_HI
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_CP0_EPC MIPS32_EF_CP0_EPC
+#define EF_CP0_BADVADDR MIPS32_EF_CP0_BADVADDR
+#define EF_CP0_STATUS MIPS32_EF_CP0_STATUS
+#define EF_CP0_CAUSE MIPS32_EF_CP0_CAUSE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_UNUSED0 MIPS32_EF_UNUSED0
+#define EF_SIZE MIPS32_EF_SIZE
+#elif _MIPS_SIM==_MIPS_SIM_ABI64||_MIPS_SIM==_MIPS_SIM_NABI32
+#define EF_R0 MIPS64_EF_R0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R1 MIPS64_EF_R1
+#define EF_R2 MIPS64_EF_R2
+#define EF_R3 MIPS64_EF_R3
+#define EF_R4 MIPS64_EF_R4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R5 MIPS64_EF_R5
+#define EF_R6 MIPS64_EF_R6
+#define EF_R7 MIPS64_EF_R7
+#define EF_R8 MIPS64_EF_R8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R9 MIPS64_EF_R9
+#define EF_R10 MIPS64_EF_R10
+#define EF_R11 MIPS64_EF_R11
+#define EF_R12 MIPS64_EF_R12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R13 MIPS64_EF_R13
+#define EF_R14 MIPS64_EF_R14
+#define EF_R15 MIPS64_EF_R15
+#define EF_R16 MIPS64_EF_R16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R17 MIPS64_EF_R17
+#define EF_R18 MIPS64_EF_R18
+#define EF_R19 MIPS64_EF_R19
+#define EF_R20 MIPS64_EF_R20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R21 MIPS64_EF_R21
+#define EF_R22 MIPS64_EF_R22
+#define EF_R23 MIPS64_EF_R23
+#define EF_R24 MIPS64_EF_R24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R25 MIPS64_EF_R25
+#define EF_R26 MIPS64_EF_R26
+#define EF_R27 MIPS64_EF_R27
+#define EF_R28 MIPS64_EF_R28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R29 MIPS64_EF_R29
+#define EF_R30 MIPS64_EF_R30
+#define EF_R31 MIPS64_EF_R31
+#define EF_LO MIPS64_EF_LO
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_HI MIPS64_EF_HI
+#define EF_CP0_EPC MIPS64_EF_CP0_EPC
+#define EF_CP0_BADVADDR MIPS64_EF_CP0_BADVADDR
+#define EF_CP0_STATUS MIPS64_EF_CP0_STATUS
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_CP0_CAUSE MIPS64_EF_CP0_CAUSE
+#define EF_SIZE MIPS64_EF_SIZE
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-21/arch-mips/include/machine/elf_machdep.h b/ndk/platforms/android-21/arch-mips/include/machine/elf_machdep.h
index d27d431..339cf20 100644
--- a/ndk/platforms/android-21/arch-mips/include/machine/elf_machdep.h
+++ b/ndk/platforms/android-21/arch-mips/include/machine/elf_machdep.h
@@ -121,6 +121,8 @@
 #define	DT_MIPS_GOTSYM		0x70000013	/* first dynamic sym in got */
 #define DT_MIPS_HIPAGENO	0x70000014
 #define	DT_MIPS_RLD_MAP		0x70000016	/* address of loader map */
+#define DT_MIPS_RLD_MAP2        0x70000035      /* Address of run time loader map, used for debugging. */
+
 
 /*
  * ELF Flags
diff --git a/ndk/platforms/android-21/arch-mips/include/machine/exec.h b/ndk/platforms/android-21/arch-mips/include/machine/exec.h
index 3c63f74..88f82f4 100644
--- a/ndk/platforms/android-21/arch-mips/include/machine/exec.h
+++ b/ndk/platforms/android-21/arch-mips/include/machine/exec.h
@@ -91,6 +91,7 @@
 #define DT_MIPS_GOTSYM       0x70000013 /* First GOT entry in .dynsym */
 #define DT_MIPS_HIPAGENO     0x70000014 /* Number of GOT page table entries */
 #define DT_MIPS_RLD_MAP      0x70000016 /* Address of debug map pointer */
+#define DT_MIPS_RLD_MAP2     0x70000035 /* Address of run time loader map, used for debugging. */
 
 #define DT_PROCNUM (DT_MIPS_RLD_MAP - DT_LOPROC + 1)
 
diff --git a/ndk/platforms/android-21/arch-mips/libr2 b/ndk/platforms/android-21/arch-mips/libr2
new file mode 120000
index 0000000..7951405
--- /dev/null
+++ b/ndk/platforms/android-21/arch-mips/libr2
@@ -0,0 +1 @@
+lib
\ No newline at end of file
diff --git a/ndk/platforms/android-21/arch-mips/libr6 b/ndk/platforms/android-21/arch-mips/libr6
new file mode 120000
index 0000000..22de3c9
--- /dev/null
+++ b/ndk/platforms/android-21/arch-mips/libr6
@@ -0,0 +1 @@
+../arch-mips64/libr6
\ No newline at end of file
diff --git a/ndk/platforms/android-21/arch-mips64/include/asm/reg.h b/ndk/platforms/android-21/arch-mips64/include/asm/reg.h
new file mode 100644
index 0000000..c0f003e
--- /dev/null
+++ b/ndk/platforms/android-21/arch-mips64/include/asm/reg.h
@@ -0,0 +1,223 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __UAPI_ASM_MIPS_REG_H
+#define __UAPI_ASM_MIPS_REG_H
+#define MIPS32_EF_R0 6
+#define MIPS32_EF_R1 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R2 8
+#define MIPS32_EF_R3 9
+#define MIPS32_EF_R4 10
+#define MIPS32_EF_R5 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R6 12
+#define MIPS32_EF_R7 13
+#define MIPS32_EF_R8 14
+#define MIPS32_EF_R9 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R10 16
+#define MIPS32_EF_R11 17
+#define MIPS32_EF_R12 18
+#define MIPS32_EF_R13 19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R14 20
+#define MIPS32_EF_R15 21
+#define MIPS32_EF_R16 22
+#define MIPS32_EF_R17 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R18 24
+#define MIPS32_EF_R19 25
+#define MIPS32_EF_R20 26
+#define MIPS32_EF_R21 27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R22 28
+#define MIPS32_EF_R23 29
+#define MIPS32_EF_R24 30
+#define MIPS32_EF_R25 31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R26 32
+#define MIPS32_EF_R27 33
+#define MIPS32_EF_R28 34
+#define MIPS32_EF_R29 35
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_R30 36
+#define MIPS32_EF_R31 37
+#define MIPS32_EF_LO 38
+#define MIPS32_EF_HI 39
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_CP0_EPC 40
+#define MIPS32_EF_CP0_BADVADDR 41
+#define MIPS32_EF_CP0_STATUS 42
+#define MIPS32_EF_CP0_CAUSE 43
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS32_EF_UNUSED0 44
+#define MIPS32_EF_SIZE 180
+#define MIPS64_EF_R0 0
+#define MIPS64_EF_R1 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R2 2
+#define MIPS64_EF_R3 3
+#define MIPS64_EF_R4 4
+#define MIPS64_EF_R5 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R6 6
+#define MIPS64_EF_R7 7
+#define MIPS64_EF_R8 8
+#define MIPS64_EF_R9 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R10 10
+#define MIPS64_EF_R11 11
+#define MIPS64_EF_R12 12
+#define MIPS64_EF_R13 13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R14 14
+#define MIPS64_EF_R15 15
+#define MIPS64_EF_R16 16
+#define MIPS64_EF_R17 17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R18 18
+#define MIPS64_EF_R19 19
+#define MIPS64_EF_R20 20
+#define MIPS64_EF_R21 21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R22 22
+#define MIPS64_EF_R23 23
+#define MIPS64_EF_R24 24
+#define MIPS64_EF_R25 25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R26 26
+#define MIPS64_EF_R27 27
+#define MIPS64_EF_R28 28
+#define MIPS64_EF_R29 29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_R30 30
+#define MIPS64_EF_R31 31
+#define MIPS64_EF_LO 32
+#define MIPS64_EF_HI 33
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_CP0_EPC 34
+#define MIPS64_EF_CP0_BADVADDR 35
+#define MIPS64_EF_CP0_STATUS 36
+#define MIPS64_EF_CP0_CAUSE 37
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS64_EF_SIZE 304
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define EF_R0 MIPS32_EF_R0
+#define EF_R1 MIPS32_EF_R1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R2 MIPS32_EF_R2
+#define EF_R3 MIPS32_EF_R3
+#define EF_R4 MIPS32_EF_R4
+#define EF_R5 MIPS32_EF_R5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R6 MIPS32_EF_R6
+#define EF_R7 MIPS32_EF_R7
+#define EF_R8 MIPS32_EF_R8
+#define EF_R9 MIPS32_EF_R9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R10 MIPS32_EF_R10
+#define EF_R11 MIPS32_EF_R11
+#define EF_R12 MIPS32_EF_R12
+#define EF_R13 MIPS32_EF_R13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R14 MIPS32_EF_R14
+#define EF_R15 MIPS32_EF_R15
+#define EF_R16 MIPS32_EF_R16
+#define EF_R17 MIPS32_EF_R17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R18 MIPS32_EF_R18
+#define EF_R19 MIPS32_EF_R19
+#define EF_R20 MIPS32_EF_R20
+#define EF_R21 MIPS32_EF_R21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R22 MIPS32_EF_R22
+#define EF_R23 MIPS32_EF_R23
+#define EF_R24 MIPS32_EF_R24
+#define EF_R25 MIPS32_EF_R25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R26 MIPS32_EF_R26
+#define EF_R27 MIPS32_EF_R27
+#define EF_R28 MIPS32_EF_R28
+#define EF_R29 MIPS32_EF_R29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R30 MIPS32_EF_R30
+#define EF_R31 MIPS32_EF_R31
+#define EF_LO MIPS32_EF_LO
+#define EF_HI MIPS32_EF_HI
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_CP0_EPC MIPS32_EF_CP0_EPC
+#define EF_CP0_BADVADDR MIPS32_EF_CP0_BADVADDR
+#define EF_CP0_STATUS MIPS32_EF_CP0_STATUS
+#define EF_CP0_CAUSE MIPS32_EF_CP0_CAUSE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_UNUSED0 MIPS32_EF_UNUSED0
+#define EF_SIZE MIPS32_EF_SIZE
+#elif _MIPS_SIM==_MIPS_SIM_ABI64||_MIPS_SIM==_MIPS_SIM_NABI32
+#define EF_R0 MIPS64_EF_R0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R1 MIPS64_EF_R1
+#define EF_R2 MIPS64_EF_R2
+#define EF_R3 MIPS64_EF_R3
+#define EF_R4 MIPS64_EF_R4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R5 MIPS64_EF_R5
+#define EF_R6 MIPS64_EF_R6
+#define EF_R7 MIPS64_EF_R7
+#define EF_R8 MIPS64_EF_R8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R9 MIPS64_EF_R9
+#define EF_R10 MIPS64_EF_R10
+#define EF_R11 MIPS64_EF_R11
+#define EF_R12 MIPS64_EF_R12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R13 MIPS64_EF_R13
+#define EF_R14 MIPS64_EF_R14
+#define EF_R15 MIPS64_EF_R15
+#define EF_R16 MIPS64_EF_R16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R17 MIPS64_EF_R17
+#define EF_R18 MIPS64_EF_R18
+#define EF_R19 MIPS64_EF_R19
+#define EF_R20 MIPS64_EF_R20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R21 MIPS64_EF_R21
+#define EF_R22 MIPS64_EF_R22
+#define EF_R23 MIPS64_EF_R23
+#define EF_R24 MIPS64_EF_R24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R25 MIPS64_EF_R25
+#define EF_R26 MIPS64_EF_R26
+#define EF_R27 MIPS64_EF_R27
+#define EF_R28 MIPS64_EF_R28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R29 MIPS64_EF_R29
+#define EF_R30 MIPS64_EF_R30
+#define EF_R31 MIPS64_EF_R31
+#define EF_LO MIPS64_EF_LO
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_HI MIPS64_EF_HI
+#define EF_CP0_EPC MIPS64_EF_CP0_EPC
+#define EF_CP0_BADVADDR MIPS64_EF_CP0_BADVADDR
+#define EF_CP0_STATUS MIPS64_EF_CP0_STATUS
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_CP0_CAUSE MIPS64_EF_CP0_CAUSE
+#define EF_SIZE MIPS64_EF_SIZE
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-21/arch-mips64/include/machine/elf_machdep.h b/ndk/platforms/android-21/arch-mips64/include/machine/elf_machdep.h
index d27d431..26fd1f1 100644
--- a/ndk/platforms/android-21/arch-mips64/include/machine/elf_machdep.h
+++ b/ndk/platforms/android-21/arch-mips64/include/machine/elf_machdep.h
@@ -121,6 +121,7 @@
 #define	DT_MIPS_GOTSYM		0x70000013	/* first dynamic sym in got */
 #define DT_MIPS_HIPAGENO	0x70000014
 #define	DT_MIPS_RLD_MAP		0x70000016	/* address of loader map */
+#define DT_MIPS_RLD_MAP2        0x70000035      /* Address of run time loader map, used for debugging. */
 
 /*
  * ELF Flags
diff --git a/ndk/platforms/android-21/arch-mips64/include/machine/exec.h b/ndk/platforms/android-21/arch-mips64/include/machine/exec.h
index 3c63f74..88f82f4 100644
--- a/ndk/platforms/android-21/arch-mips64/include/machine/exec.h
+++ b/ndk/platforms/android-21/arch-mips64/include/machine/exec.h
@@ -91,6 +91,7 @@
 #define DT_MIPS_GOTSYM       0x70000013 /* First GOT entry in .dynsym */
 #define DT_MIPS_HIPAGENO     0x70000014 /* Number of GOT page table entries */
 #define DT_MIPS_RLD_MAP      0x70000016 /* Address of debug map pointer */
+#define DT_MIPS_RLD_MAP2     0x70000035 /* Address of run time loader map, used for debugging. */
 
 #define DT_PROCNUM (DT_MIPS_RLD_MAP - DT_LOPROC + 1)
 
diff --git a/ndk/platforms/android-21/arch-p/include/machine/endian.h b/ndk/platforms/android-21/arch-mips64/src/asm_multiarch.h
similarity index 88%
rename from ndk/platforms/android-21/arch-p/include/machine/endian.h
rename to ndk/platforms/android-21/arch-mips64/src/asm_multiarch.h
index d54fc52..91cb8af 100644
--- a/ndk/platforms/android-21/arch-p/include/machine/endian.h
+++ b/ndk/platforms/android-21/arch-mips64/src/asm_multiarch.h
@@ -26,12 +26,11 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _MACHINE_ENDIAN_H_
-#define _MACHINE_ENDIAN_H_
+#ifdef __LP64__
+# define ASM_PTR_SIZE(x) .quad x
+# define ASM_ALIGN_TO_PTR_SIZE .balign 8
+#else
+# define ASM_PTR_SIZE(x) .long x
+# define ASM_ALIGN_TO_PTR_SIZE .balign 4
+#endif
 
-#include <sys/types.h>
-#include <sys/endian.h>
-
-#define _BYTE_ORDER _LITTLE_ENDIAN
-
-#endif /* _MACHINE_ENDIAN_H_ */
diff --git a/ndk/platforms/android-21/arch-mips64/src/crtend_android.S b/ndk/platforms/android-21/arch-mips64/src/crtend_android.S
index 8a3cc6c..c7bab47 100644
--- a/ndk/platforms/android-21/arch-mips64/src/crtend_android.S
+++ b/ndk/platforms/android-21/arch-mips64/src/crtend_android.S
@@ -25,25 +25,30 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-	
+
+#include "asm_multiarch.h"
+
 	.section .preinit_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section .init_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section .fini_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section .ctors, "aw"
 	.type __CTOR_END__, @object
 __CTOR_END__:
-	.long 0
+	ASM_PTR_SIZE(0)
 
 	.section .dtors, "aw"
 	.type __DTOR_END__, @object
 __DTOR_END__:
-	.long 0
+	ASM_PTR_SIZE(0)
 
 	.section	.eh_frame,"a",@progbits
 	.align 4
diff --git a/ndk/platforms/android-21/arch-mips64/src/crtend_so.S b/ndk/platforms/android-21/arch-mips64/src/crtend_so.S
index f09c427..490af3c 100644
--- a/ndk/platforms/android-21/arch-mips64/src/crtend_so.S
+++ b/ndk/platforms/android-21/arch-mips64/src/crtend_so.S
@@ -1,5 +1,9 @@
+#include "asm_multiarch.h"
+
 	.section .init_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section .fini_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
diff --git a/ndk/platforms/android-21/arch-p/include/_FORBIDDEN_HEADER.h b/ndk/platforms/android-21/arch-p/include/_FORBIDDEN_HEADER.h
deleted file mode 100644
index 99fea7d..0000000
--- a/ndk/platforms/android-21/arch-p/include/_FORBIDDEN_HEADER.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#ifndef _FORBIDDEN_HEADER_H
-#define _FORBIDDEN_HEADER_H
-
-#ifndef NDEBUG
-#warning "The header file should not included directly by user."
-#endif
-
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/auxvec.h b/ndk/platforms/android-21/arch-p/include/asm/auxvec.h
deleted file mode 100644
index 2fa0e6b..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/auxvec.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/auxvec.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/bitsperlong.h b/ndk/platforms/android-21/arch-p/include/asm/bitsperlong.h
deleted file mode 100644
index f7d5d77..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/bitsperlong.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifdef __LP64__
-#define __BITS_PER_LONG 64
-#else
-#define __BITS_PER_LONG 32
-#endif
-#include <asm-generic/bitsperlong.h>
-
diff --git a/ndk/platforms/android-21/arch-p/include/asm/byteorder.h b/ndk/platforms/android-21/arch-p/include/asm/byteorder.h
deleted file mode 100644
index 6f17a48..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/byteorder.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_ARM_BYTEORDER_H
-#define __ASM_ARM_BYTEORDER_H
-#include <linux/byteorder/little_endian.h>
-#endif
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-21/arch-p/include/asm/errno.h b/ndk/platforms/android-21/arch-p/include/asm/errno.h
deleted file mode 100644
index 392cd94..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/errno.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/errno.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/fcntl.h b/ndk/platforms/android-21/arch-p/include/asm/fcntl.h
deleted file mode 100644
index cb5399e..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/fcntl.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef _TARGET_FCNTL_H
-#define _TARGET_FCNTL_H
-
-#define O_DIRECTORY 040000  // TODO: x86, mips family needs to be fixed
-#define O_NOFOLLOW 0100000
-#define O_DIRECT 0200000
-#define O_LARGEFILE 0400000
-#include <asm-generic/fcntl.h>
-
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/ioctl.h b/ndk/platforms/android-21/arch-p/include/asm/ioctl.h
deleted file mode 100644
index 7b7bd37..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/ioctl.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/ioctl.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/ioctls.h b/ndk/platforms/android-21/arch-p/include/asm/ioctls.h
deleted file mode 100644
index f3381f8..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/ioctls.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_TARGET_IOCTLS_H
-#define __ASM_TARGET_IOCTLS_H
-#define FIOQSIZE 0x545E
-#include <asm-generic/ioctls.h>
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/ipcbuf.h b/ndk/platforms/android-21/arch-p/include/asm/ipcbuf.h
deleted file mode 100644
index 0021f14..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/ipcbuf.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/ipcbuf.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/mman.h b/ndk/platforms/android-21/arch-p/include/asm/mman.h
deleted file mode 100644
index 6c23fb6..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/mman.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/mman.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/msgbuf.h b/ndk/platforms/android-21/arch-p/include/asm/msgbuf.h
deleted file mode 100644
index 7809e3c..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/msgbuf.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/msgbuf.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/param.h b/ndk/platforms/android-21/arch-p/include/asm/param.h
deleted file mode 100644
index 5ccf935..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/param.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/param.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/poll.h b/ndk/platforms/android-21/arch-p/include/asm/poll.h
deleted file mode 100644
index d7e8adc..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/poll.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/poll.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/posix_types.h b/ndk/platforms/android-21/arch-p/include/asm/posix_types.h
deleted file mode 100644
index b0bebdb..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/posix_types.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ARCH_ARM_POSIX_TYPES_H
-#define __ARCH_ARM_POSIX_TYPES_H
-#include <asm-generic/posix_types.h>
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/resource.h b/ndk/platforms/android-21/arch-p/include/asm/resource.h
deleted file mode 100644
index 371adb5..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/resource.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/resource.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/sembuf.h b/ndk/platforms/android-21/arch-p/include/asm/sembuf.h
deleted file mode 100644
index 6ce6549..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/sembuf.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/sembuf.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/shmbuf.h b/ndk/platforms/android-21/arch-p/include/asm/shmbuf.h
deleted file mode 100644
index fe8b1be..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/shmbuf.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/shmbuf.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/sigcontext.h b/ndk/platforms/android-21/arch-p/include/asm/sigcontext.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/sigcontext.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/siginfo.h b/ndk/platforms/android-21/arch-p/include/asm/siginfo.h
deleted file mode 100644
index eb212a0..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/siginfo.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SIGINFO_H
-#define __ASM_SIGINFO_H
-#include <asm-generic/siginfo.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/signal.h b/ndk/platforms/android-21/arch-p/include/asm/signal.h
deleted file mode 100644
index c436b6f..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/signal.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_SIGNAL_H
-#define __ASM_SIGNAL_H
-
-#ifdef __LP64__
-
-#include <asm-generic/signal.h>
-
-#else // ! __LP64__
-
-#include <linux/types.h>
-#include <linux/time.h>
-#include <linux/compiler.h>
-struct siginfo;
-#define _KERNEL_NSIG 32
-typedef unsigned long sigset_t;
-#define SIGHUP 1
-#define SIGINT 2
-#define SIGQUIT 3
-#define SIGILL 4
-#define SIGTRAP 5
-#define SIGABRT 6
-#define SIGIOT 6
-#define SIGBUS 7
-#define SIGFPE 8
-#define SIGKILL 9
-#define SIGUSR1 10
-#define SIGSEGV 11
-#define SIGUSR2 12
-#define SIGPIPE 13
-#define SIGALRM 14
-#define SIGTERM 15
-#define SIGSTKFLT 16
-#define SIGCHLD 17
-#define SIGCONT 18
-#define SIGSTOP 19
-#define SIGTSTP 20
-#define SIGTTIN 21
-#define SIGTTOU 22
-#define SIGURG 23
-#define SIGXCPU 24
-#define SIGXFSZ 25
-#define SIGVTALRM 26
-#define SIGPROF 27
-#define SIGWINCH 28
-#define SIGIO 29
-#define SIGPOLL SIGIO
-#define SIGPWR 30
-#define SIGSYS 31
-#define SIGUNUSED 31
-#define __SIGRTMIN 32
-#define __SIGRTMAX _KERNEL__NSIG
-#define SA_NOCLDSTOP 0x00000001u
-#define SA_NOCLDWAIT 0x00000002u
-#define SA_SIGINFO 0x00000004u
-#define SA_ONSTACK 0x08000000u
-#define SA_RESTART 0x10000000u
-#define SA_NODEFER 0x40000000u
-#define SA_RESETHAND 0x80000000u
-#define SA_NOMASK SA_NODEFER
-#define SA_ONESHOT SA_RESETHAND
-#define SA_RESTORER 0x04000000
-#define MINSIGSTKSZ 2048
-#define SIGSTKSZ 8192
-#include <asm-generic/signal-defs.h>
-
-struct sigaction {
- union {
- __sighandler_t _sa_handler;
- void (*_sa_sigaction)(int, struct siginfo *, void *);
- } _u;
- sigset_t sa_mask;
- unsigned long sa_flags;
- void (*sa_restorer)(void);
-};
-#define sa_handler _u._sa_handler
-#define sa_sigaction _u._sa_sigaction
-
-typedef struct sigaltstack {
- void __user *ss_sp;
- int ss_flags;
- size_t ss_size;
-} stack_t;
-
-#endif // __LP64__
-
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/socket.h b/ndk/platforms/android-21/arch-p/include/asm/socket.h
deleted file mode 100644
index 50a9874..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/socket.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/socket.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/sockios.h b/ndk/platforms/android-21/arch-p/include/asm/sockios.h
deleted file mode 100644
index 710db92..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/sockios.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/sockios.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/stat.h b/ndk/platforms/android-21/arch-p/include/asm/stat.h
deleted file mode 100644
index af7ebfc..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/stat.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/stat.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/statfs.h b/ndk/platforms/android-21/arch-p/include/asm/statfs.h
deleted file mode 100644
index 18ee8de..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/statfs.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __ASM_STATFS_H
-#define __ASM_STATFS_H
-#include <asm-generic/statfs.h>
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#endif
diff --git a/ndk/platforms/android-21/arch-p/include/asm/termbits.h b/ndk/platforms/android-21/arch-p/include/asm/termbits.h
deleted file mode 100644
index 42af6fe..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/termbits.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/termbits.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/termios.h b/ndk/platforms/android-21/arch-p/include/asm/termios.h
deleted file mode 100644
index feca4c6..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/termios.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/termios.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/types.h b/ndk/platforms/android-21/arch-p/include/asm/types.h
deleted file mode 100644
index 8250f43..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/types.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/types.h>
diff --git a/ndk/platforms/android-21/arch-p/include/asm/unistd.h b/ndk/platforms/android-21/arch-p/include/asm/unistd.h
deleted file mode 100644
index 697186a..0000000
--- a/ndk/platforms/android-21/arch-p/include/asm/unistd.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   structures, and macros generated from the original header, and thus,
- ***   contains no copyrightable information.
- ***
- ***   To edit the content of this header, modify the corresponding
- ***   source file (e.g. under external/kernel-headers/original/) then
- ***   run bionic/libc/kernel/tools/update_all.py
- ***
- ***   Any manual change here will be lost the next time this script will
- ***   be run. You've been warned!
- ***
- ****************************************************************************
- ****************************************************************************/
-#include <asm-generic/unistd.h>
diff --git a/ndk/platforms/android-21/arch-p/include/linux/eventpoll.h b/ndk/platforms/android-21/arch-p/include/linux/eventpoll.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/linux/eventpoll.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/machine/elf_machdep.h b/ndk/platforms/android-21/arch-p/include/machine/elf_machdep.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/machine/elf_machdep.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/machine/fenv.h b/ndk/platforms/android-21/arch-p/include/machine/fenv.h
deleted file mode 100644
index 06fb4a1..0000000
--- a/ndk/platforms/android-21/arch-p/include/machine/fenv.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _MACHINE_FENV_H_
-#define _MACHINE_FENV_H_
-
-#include <sys/types.h>
-
-typedef struct {
-  unsigned char a[128];
-} fenv_t;
-typedef __uint32_t fexcept_t;
-
-/* Exception flags. */
-#define FE_INVALID    0x01
-#define FE_DIVBYZERO  0x02
-#define FE_OVERFLOW   0x04
-#define FE_UNDERFLOW  0x08
-#define FE_INEXACT    0x10
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID |\
-                                FE_OVERFLOW | FE_UNDERFLOW)
-
-/* Rounding modes. */
-#define FE_TONEAREST  0x0
-#define FE_UPWARD     0x1
-#define FE_DOWNWARD   0x2
-#define FE_TOWARDZERO 0x3
-
-#endif /* _MACHINE_FENV_H_ */
diff --git a/ndk/platforms/android-21/arch-p/include/machine/setjmp.h b/ndk/platforms/android-21/arch-p/include/machine/setjmp.h
deleted file mode 100644
index 4e157bd..0000000
--- a/ndk/platforms/android-21/arch-p/include/machine/setjmp.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * machine/setjmp.h: machine dependent setjmp-related information.
- */
-
-/* _JBLEN is the size of a jmp_buf in longs.
- * Do not modify this value or you will break the ABI !
- *
- * This value comes from the original OpenBSD ARM-specific header
- * that was replaced by this one.
- */
-#define _JBLEN  160
diff --git a/ndk/platforms/android-21/arch-p/include/sys/cachectl.h b/ndk/platforms/android-21/arch-p/include/sys/cachectl.h
deleted file mode 100644
index b2b333c..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/cachectl.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_CACHECTL_H
-#define _SYS_CACHECTL_H 1
-
-//#ifdef __mips__
-//#include <asm/cachectl.h>
-//extern int __cachectl (void *addr, __const int nbytes, __const int op);
-//extern int _flush_cache (char *addr, __const int nbytes, __const int op);
-//#endif
-#endif /* sys/cachectl.h */
diff --git a/ndk/platforms/android-21/arch-p/include/sys/epoll.h b/ndk/platforms/android-21/arch-p/include/sys/epoll.h
deleted file mode 100644
index c85440e..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/epoll.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _SYS_EPOLL_H_
-#define _SYS_EPOLL_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <fcntl.h> /* For O_CLOEXEC. */
-#include <signal.h> /* For sigset_t. */
-
-__BEGIN_DECLS
-
-#define EPOLLIN          0x00000001
-#define EPOLLPRI         0x00000002
-#define EPOLLOUT         0x00000004
-#define EPOLLERR         0x00000008
-#define EPOLLHUP         0x00000010
-#define EPOLLRDNORM      0x00000040
-#define EPOLLRDBAND      0x00000080
-#define EPOLLWRNORM      0x00000100
-#define EPOLLWRBAND      0x00000200
-#define EPOLLMSG         0x00000400
-#define EPOLLRDHUP       0x00002000
-#define EPOLLWAKEUP      0x20000000
-#define EPOLLONESHOT     0x40000000
-#define EPOLLET          0x80000000
-
-#define EPOLL_CTL_ADD    1
-#define EPOLL_CTL_DEL    2
-#define EPOLL_CTL_MOD    3
-
-#define EPOLL_CLOEXEC O_CLOEXEC
-
-typedef union epoll_data {
-  void* ptr;
-  int fd;
-  uint32_t u32;
-  uint64_t u64;
-} epoll_data_t;
-
-struct epoll_event {
-  uint32_t events;
-  unsigned char __padding[4];
-  epoll_data_t data;
-};
-
-int epoll_create(int);
-int epoll_create1(int);
-int epoll_ctl(int, int, int, struct epoll_event*);
-int epoll_wait(int, struct epoll_event*, int, int);
-int epoll_pwait(int, struct epoll_event*, int, int, const sigset_t*);
-
-__END_DECLS
-
-#endif  /* _SYS_EPOLL_H_ */
diff --git a/ndk/platforms/android-21/arch-p/include/sys/glibc-syscalls.h b/ndk/platforms/android-21/arch-p/include/sys/glibc-syscalls.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/glibc-syscalls.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/sys/ioctl_compat.h b/ndk/platforms/android-21/arch-p/include/sys/ioctl_compat.h
deleted file mode 100644
index 5c6b3f8..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/ioctl_compat.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*	$NetBSD: ioctl_compat.h,v 1.15 2005/12/03 17:10:46 christos Exp $	*/
-
-/*
- * Copyright (c) 1990, 1993
- *	The Regents of the University of California.  All rights reserved.
- * (c) UNIX System Laboratories, Inc.
- * All or some portions of this file are derived from material licensed
- * to the University of California by American Telephone and Telegraph
- * Co. or Unix System Laboratories, Inc. and are reproduced herein with
- * the permission of UNIX System Laboratories, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)ioctl_compat.h	8.4 (Berkeley) 1/21/94
- */
-
-#ifndef _SYS_IOCTL_COMPAT_H_
-#define	_SYS_IOCTL_COMPAT_H_
-
-/*#include <sys/ttychars.h>*/
-/*#include <sys/ttydev.h>*/
-
-//#if !defined(__mips__)
-struct tchars {
-	char	t_intrc;	/* interrupt */
-	char	t_quitc;	/* quit */
-	char	t_startc;	/* start output */
-	char	t_stopc;	/* stop output */
-	char	t_eofc;		/* end-of-file */
-	char	t_brkc;		/* input delimiter (like nl) */
-};
-
-struct ltchars {
-	char	t_suspc;	/* stop process signal */
-	char	t_dsuspc;	/* delayed stop process signal */
-	char	t_rprntc;	/* reprint line */
-	char	t_flushc;	/* flush output (toggles) */
-	char	t_werasc;	/* word erase */
-	char	t_lnextc;	/* literal next character */
-};
-
-/*
- * Structure for TIOCGETP and TIOCSETP ioctls.
- */
-#ifndef _SGTTYB_
-#define	_SGTTYB_
-struct sgttyb {
-	char	sg_ispeed;		/* input speed */
-	char	sg_ospeed;		/* output speed */
-	char	sg_erase;		/* erase character */
-	char	sg_kill;		/* kill character */
-	short	sg_flags;		/* mode flags */
-};
-#endif
-//#endif
-
-#ifdef USE_OLD_TTY
-# undef  TIOCGETD
-# define TIOCGETD	_IOR('t', 0, int)	/* get line discipline */
-# undef  TIOCSETD
-# define TIOCSETD	_IOW('t', 1, int)	/* set line discipline */
-#else
-# define OTIOCGETD	_IOR('t', 0, int)	/* get line discipline */
-# define OTIOCSETD	_IOW('t', 1, int)	/* set line discipline */
-#endif
-#define	TIOCHPCL	_IO('t', 2)		/* hang up on last close */
-//#if !defined(__mips__)
-#define	TIOCGETP	_IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
-#define	TIOCSETP	_IOW('t', 9,struct sgttyb)/* set parameters -- stty */
-#define	TIOCSETN	_IOW('t',10,struct sgttyb)/* as above, but no flushtty*/
-//#endif
-#define	TIOCSETC	_IOW('t',17,struct tchars)/* set special characters */
-#define	TIOCGETC	_IOR('t',18,struct tchars)/* get special characters */
-#if 0
-/* BUG: a bunch of these conflict with #defines in asm/termbits.h */
-#define		TANDEM		0x00000001	/* send stopc on out q full */
-#define		CBREAK		0x00000002	/* half-cooked mode */
-#define		LCASE		0x00000004	/* simulate lower case */
-#define		ECHO		0x00000008	/* enable echoing */
-#define		CRMOD		0x00000010	/* map \r to \r\n on output */
-#define		RAW		0x00000020	/* no i/o processing */
-#define		ODDP		0x00000040	/* get/send odd parity */
-#define		EVENP		0x00000080	/* get/send even parity */
-#define		ANYP		0x000000c0	/* get any parity/send none */
-#define		NLDELAY		0x00000300	/* \n delay */
-#define			NL0	0x00000000
-#define			NL1	0x00000100	/* tty 37 */
-#define			NL2	0x00000200	/* vt05 */
-#define			NL3	0x00000300
-#define		TBDELAY		0x00000c00	/* horizontal tab delay */
-#define			TAB0	0x00000000
-#define			TAB1	0x00000400	/* tty 37 */
-#define			TAB2	0x00000800
-#define		XTABS		0x00000c00	/* expand tabs on output */
-#define		CRDELAY		0x00003000	/* \r delay */
-#define			CR0	0x00000000
-#define			CR1	0x00001000	/* tn 300 */
-#define			CR2	0x00002000	/* tty 37 */
-#define			CR3	0x00003000	/* concept 100 */
-#define		VTDELAY		0x00004000	/* vertical tab delay */
-#define			FF0	0x00000000
-#define			FF1	0x00004000	/* tty 37 */
-#define		BSDELAY		0x00008000	/* \b delay */
-#define			BS0	0x00000000
-#define			BS1	0x00008000
-#define		ALLDELAY	(NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
-#define		CRTBS		0x00010000	/* do backspacing for crt */
-#define		PRTERA		0x00020000	/* \ ... / erase */
-#define		CRTERA		0x00040000	/* " \b " to wipe out char */
-#define		TILDE		0x00080000	/* hazeltine tilde kludge */
-#define		MDMBUF		0x00100000	/* DTR/DCD hardware flow control */
-#define		LITOUT		0x00200000	/* literal output */
-#define		TOSTOP		0x00400000	/* stop background jobs on output */
-#define		FLUSHO		0x00800000	/* output being flushed (state) */
-#define		NOHANG		0x01000000	/* (no-op) was no SIGHUP on carrier drop */
-#define		L001000		0x02000000
-#define		CRTKIL		0x04000000	/* kill line with " \b " */
-#define		PASS8		0x08000000
-#define		CTLECH		0x10000000	/* echo control chars as ^X */
-#define		PENDIN		0x20000000	/* re-echo input buffer at next read */
-#define		DECCTQ		0x40000000	/* only ^Q starts after ^S */
-#define		NOFLSH		0x80000000	/* don't flush output on signal */
-#endif
-#define	TIOCLBIS	_IOW('t', 127, int)	/* bis local mode bits */
-#define	TIOCLBIC	_IOW('t', 126, int)	/* bic local mode bits */
-#define	TIOCLSET	_IOW('t', 125, int)	/* set entire local mode word */
-#define	TIOCLGET	_IOR('t', 124, int)	/* get local modes */
-#define		LCRTBS		(CRTBS>>16)
-#define		LPRTERA		(PRTERA>>16)
-#define		LCRTERA		(CRTERA>>16)
-#define		LTILDE		(TILDE>>16)
-#define		LMDMBUF		(MDMBUF>>16)
-#define		LLITOUT		(LITOUT>>16)
-#define		LTOSTOP		(TOSTOP>>16)
-#define		LFLUSHO		(FLUSHO>>16)
-#define		LNOHANG		(NOHANG>>16)
-#define		LCRTKIL		(CRTKIL>>16)
-#define		LPASS8		(PASS8>>16)
-#define		LCTLECH		(CTLECH>>16)
-#define		LPENDIN		(PENDIN>>16)
-#define		LDECCTQ		(DECCTQ>>16)
-#define		LNOFLSH		(NOFLSH>>16)
-//#if !defined(__mips__)
-#define	TIOCSLTC	_IOW('t',117,struct ltchars)/* set local special chars*/
-#define	TIOCGLTC	_IOR('t',116,struct ltchars)/* get local special chars*/
-//#endif
-#define OTIOCCONS	_IO('t', 98)	/* for hp300 -- sans int arg */
-#define	OTTYDISC	0
-#define	NETLDISC	1
-#define	NTTYDISC	2
-
-#endif /* !_SYS_IOCTL_COMPAT_H_ */
diff --git a/ndk/platforms/android-21/arch-p/include/sys/reg.h b/ndk/platforms/android-21/arch-p/include/sys/reg.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/reg.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/sys/socket.h b/ndk/platforms/android-21/arch-p/include/sys/socket.h
deleted file mode 100644
index f8f4df3..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/socket.h
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _SYS_SOCKET_H_
-#define _SYS_SOCKET_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <linux/socket.h>
-
-#include <asm/fcntl.h>
-#include <asm/socket.h>
-#include <linux/sockios.h>
-#include <linux/uio.h>
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-__BEGIN_DECLS
-
-#define sockaddr_storage __kernel_sockaddr_storage
-typedef unsigned short sa_family_t;
-
-struct timespec;
-
-#ifdef __mips__
-#define SOCK_DGRAM      1
-#define SOCK_STREAM     2
-#define SOCK_RAW        3
-#define SOCK_RDM        4
-#define SOCK_SEQPACKET  5
-#define SOCK_DCCP       6
-#define SOCK_PACKET     10
-#else
-#define SOCK_STREAM      1
-#define SOCK_DGRAM       2
-#define SOCK_RAW         3
-#define SOCK_RDM         4
-#define SOCK_SEQPACKET   5
-#define SOCK_PACKET      10
-#endif
-
-#define SOCK_CLOEXEC O_CLOEXEC
-#define SOCK_NONBLOCK O_NONBLOCK
-
-enum {
-  SHUT_RD = 0,
-#define SHUT_RD         SHUT_RD
-  SHUT_WR,
-#define SHUT_WR         SHUT_WR
-  SHUT_RDWR
-#define SHUT_RDWR       SHUT_RDWR
-};
-
-struct sockaddr {
-  sa_family_t sa_family;
-  char sa_data[14];
-};
-
-struct linger {
-  int l_onoff;
-  int l_linger;
-};
-
-struct msghdr {
-  void* msg_name;
-  socklen_t msg_namelen;
-  struct iovec* msg_iov;
-  size_t msg_iovlen;
-  void* msg_control;
-  size_t msg_controllen;
-  int msg_flags;
-};
-
-struct mmsghdr {
-  struct msghdr msg_hdr;
-  unsigned int msg_len;
-};
-
-struct cmsghdr {
-  size_t cmsg_len;
-  int cmsg_level;
-  int cmsg_type;
-};
-
-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr((mhdr), (cmsg))
-#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
-#define CMSG_DATA(cmsg) ((void*)((char*)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
-#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
-#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
-#define CMSG_FIRSTHDR(msg) \
-  ((msg)->msg_controllen >= sizeof(struct cmsghdr) \
-   ? (struct cmsghdr*) (msg)->msg_control : (struct cmsghdr*) NULL)
-#define CMSG_OK(mhdr, cmsg) ((cmsg)->cmsg_len >= sizeof(struct cmsghdr) &&   (cmsg)->cmsg_len <= (unsigned long)   ((mhdr)->msg_controllen -   ((char*)(cmsg) - (char*)(mhdr)->msg_control)))
-
-struct cmsghdr* __cmsg_nxthdr(struct msghdr*, struct cmsghdr*);
-
-#define SCM_RIGHTS 0x01
-#define SCM_CREDENTIALS 0x02
-#define SCM_SECURITY 0x03
-
-struct ucred {
-  pid_t pid;
-  uid_t uid;
-  gid_t gid;
-};
-
-#define AF_UNSPEC 0
-#define AF_UNIX 1
-#define AF_LOCAL 1
-#define AF_INET 2
-#define AF_AX25 3
-#define AF_IPX 4
-#define AF_APPLETALK 5
-#define AF_NETROM 6
-#define AF_BRIDGE 7
-#define AF_ATMPVC 8
-#define AF_X25 9
-#define AF_INET6 10
-#define AF_ROSE 11
-#define AF_DECnet 12
-#define AF_NETBEUI 13
-#define AF_SECURITY 14
-#define AF_KEY 15
-#define AF_NETLINK 16
-#define AF_ROUTE AF_NETLINK
-#define AF_PACKET 17
-#define AF_ASH 18
-#define AF_ECONET 19
-#define AF_ATMSVC 20
-#define AF_RDS 21
-#define AF_SNA 22
-#define AF_IRDA 23
-#define AF_PPPOX 24
-#define AF_WANPIPE 25
-#define AF_LLC 26
-#define AF_CAN 29
-#define AF_TIPC 30
-#define AF_BLUETOOTH 31
-#define AF_IUCV 32
-#define AF_RXRPC 33
-#define AF_ISDN 34
-#define AF_PHONET 35
-#define AF_IEEE802154 36
-#define AF_CAIF 37
-#define AF_ALG 38
-#define AF_MAX 39
-
-#define PF_UNSPEC AF_UNSPEC
-#define PF_UNIX AF_UNIX
-#define PF_LOCAL AF_LOCAL
-#define PF_INET AF_INET
-#define PF_AX25 AF_AX25
-#define PF_IPX AF_IPX
-#define PF_APPLETALK AF_APPLETALK
-#define PF_NETROM AF_NETROM
-#define PF_BRIDGE AF_BRIDGE
-#define PF_ATMPVC AF_ATMPVC
-#define PF_X25 AF_X25
-#define PF_INET6 AF_INET6
-#define PF_ROSE AF_ROSE
-#define PF_DECnet AF_DECnet
-#define PF_NETBEUI AF_NETBEUI
-#define PF_SECURITY AF_SECURITY
-#define PF_KEY AF_KEY
-#define PF_NETLINK AF_NETLINK
-#define PF_ROUTE AF_ROUTE
-#define PF_PACKET AF_PACKET
-#define PF_ASH AF_ASH
-#define PF_ECONET AF_ECONET
-#define PF_ATMSVC AF_ATMSVC
-#define PF_RDS AF_RDS
-#define PF_SNA AF_SNA
-#define PF_IRDA AF_IRDA
-#define PF_PPPOX AF_PPPOX
-#define PF_WANPIPE AF_WANPIPE
-#define PF_LLC AF_LLC
-#define PF_CAN AF_CAN
-#define PF_TIPC AF_TIPC
-#define PF_BLUETOOTH AF_BLUETOOTH
-#define PF_IUCV AF_IUCV
-#define PF_RXRPC AF_RXRPC
-#define PF_ISDN AF_ISDN
-#define PF_PHONET AF_PHONET
-#define PF_IEEE802154 AF_IEEE802154
-#define PF_CAIF AF_CAIF
-#define PF_ALG AF_ALG
-#define PF_MAX AF_MAX
-
-#define SOMAXCONN 128
-
-#define MSG_OOB 1
-#define MSG_PEEK 2
-#define MSG_DONTROUTE 4
-#define MSG_TRYHARD 4
-#define MSG_CTRUNC 8
-#define MSG_PROBE 0x10
-#define MSG_TRUNC 0x20
-#define MSG_DONTWAIT 0x40
-#define MSG_EOR 0x80
-#define MSG_WAITALL 0x100
-#define MSG_FIN 0x200
-#define MSG_SYN 0x400
-#define MSG_CONFIRM 0x800
-#define MSG_RST 0x1000
-#define MSG_ERRQUEUE 0x2000
-#define MSG_NOSIGNAL 0x4000
-#define MSG_MORE 0x8000
-#define MSG_WAITFORONE 0x10000
-#define MSG_FASTOPEN 0x20000000
-#define MSG_CMSG_CLOEXEC 0x40000000
-#define MSG_EOF MSG_FIN
-#define MSG_CMSG_COMPAT 0
-
-#define SOL_IP 0
-#define SOL_TCP 6
-#define SOL_UDP 17
-#define SOL_IPV6 41
-#define SOL_ICMPV6 58
-#define SOL_SCTP 132
-#define SOL_RAW 255
-#define SOL_IPX 256
-#define SOL_AX25 257
-#define SOL_ATALK 258
-#define SOL_NETROM 259
-#define SOL_ROSE 260
-#define SOL_DECNET 261
-#define SOL_X25 262
-#define SOL_PACKET 263
-#define SOL_ATM 264
-#define SOL_AAL 265
-#define SOL_IRDA 266
-#define SOL_NETBEUI 267
-#define SOL_LLC 268
-#define SOL_DCCP 269
-#define SOL_NETLINK 270
-#define SOL_TIPC 271
-
-#define IPX_TYPE 1
-
-# define __socketcall extern
-
-__socketcall int accept(int, struct sockaddr*, socklen_t*);
-__socketcall int accept4(int, struct sockaddr*, socklen_t*, int);
-__socketcall int bind(int, const struct sockaddr*, int);
-__socketcall int connect(int, const struct sockaddr*, socklen_t);
-__socketcall int getpeername(int, struct sockaddr*, socklen_t*);
-__socketcall int getsockname(int, struct sockaddr*, socklen_t*);
-__socketcall int getsockopt(int, int, int, void*, socklen_t*);
-__socketcall int listen(int, int);
-__socketcall int recvmmsg(int, struct mmsghdr*, unsigned int, int, const struct timespec*);
-__socketcall int recvmsg(int, struct msghdr*, int);
-__socketcall int sendmmsg(int, const struct mmsghdr*, unsigned int, int);
-__socketcall int sendmsg(int, const struct msghdr*, int);
-__socketcall int setsockopt(int, int, int, const void*, socklen_t);
-__socketcall int shutdown(int, int);
-__socketcall int socket(int, int, int);
-__socketcall int socketpair(int, int, int, int*);
-
-extern ssize_t send(int, const void*, size_t, int);
-extern ssize_t recv(int, void*, size_t, int);
-
-__socketcall ssize_t sendto(int, const void*, size_t, int, const struct sockaddr*, socklen_t);
-__socketcall ssize_t recvfrom(int, void*, size_t, int, const struct sockaddr*, socklen_t*);
-
-#if defined(__BIONIC_FORTIFY)
-__errordecl(__recvfrom_error, "recvfrom called with size bigger than buffer");
-extern ssize_t __recvfrom_chk(int, void*, size_t, size_t, int, const struct sockaddr*, socklen_t*);
-extern ssize_t __recvfrom_real(int, void*, size_t, int, const struct sockaddr*, socklen_t*)
-    __asm__(__USER_LABEL_PREFIX__ "recvfrom");
-
-__BIONIC_FORTIFY_INLINE
-ssize_t recvfrom(int fd, void* buf, size_t len, int flags, const struct sockaddr* src_addr, socklen_t* addr_len) {
-  size_t bos = __bos0(buf);
-
-#if !defined(__clang__)
-  if (bos == __BIONIC_FORTIFY_UNKNOWN_SIZE) {
-    return __recvfrom_real(fd, buf, len, flags, src_addr, addr_len);
-  }
-
-  if (__builtin_constant_p(len) && (len <= bos)) {
-    return __recvfrom_real(fd, buf, len, flags, src_addr, addr_len);
-  }
-
-  if (__builtin_constant_p(len) && (len > bos)) {
-    __recvfrom_error();
-  }
-#endif
-
-  return __recvfrom_chk(fd, buf, len, bos, flags, src_addr, addr_len);
-}
-
-__BIONIC_FORTIFY_INLINE
-ssize_t recv(int socket, void* buf, size_t len, int flags) {
-  return recvfrom(socket, buf, len, flags, NULL, 0);
-}
-
-#endif /* __BIONIC_FORTIFY */
-
-#undef __socketcall
-
-__END_DECLS
-
-#endif /* _SYS_SOCKET_H */
diff --git a/ndk/platforms/android-21/arch-p/include/sys/stat.h b/ndk/platforms/android-21/arch-p/include/sys/stat.h
deleted file mode 100644
index 95ab1de..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/stat.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_STAT_H_
-#define _SYS_STAT_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <linux/stat.h>
-
-#include <endian.h>
-
-__BEGIN_DECLS
-
-#define __STAT64_BODY \
-  unsigned long st_dev; \
-  unsigned long st_ino; \
-  unsigned long st_mode; \
-  unsigned long st_nlink; \
-  uid_t st_uid; /* 32-bit uid_t */ \
-  unsigned char padding[4]; \
-  gid_t st_gid; /* 32-bit gid_t */ \
-  unsigned char padding2[4]; \
-  unsigned long st_rdev; \
-  long st_size; \
-  long st_blksize; \
-  long st_blocks; \
-  long st_atime; \
-  unsigned long st_atime_nsec; \
-  long st_mtime; \
-  unsigned long st_mtime_nsec; \
-  long st_ctime; \
-  unsigned long st_ctime_nsec; \
-  unsigned char padding3[8];
-
-struct stat { __STAT64_BODY };
-struct stat64 { __STAT64_BODY };
-
-#undef __STAT64_BODY
-
-#define st_atimensec st_atime_nsec
-#define st_mtimensec st_mtime_nsec
-#define st_ctimensec st_ctime_nsec
-
-#ifdef __USE_BSD
-/* Permission macros provided by glibc for compatibility with BSDs. */
-#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */
-#define ALLPERMS    (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */
-#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */
-#endif
-
-extern int chmod(const char*, mode_t);
-extern int fchmod(int, mode_t);
-extern int mkdir(const char*, mode_t);
-
-extern int fstat(int, struct stat*);
-extern int fstat64(int, struct stat64*);
-extern int fstatat(int, const char*, struct stat*, int);
-extern int fstatat64(int, const char*, struct stat64*, int);
-extern int lstat(const char*, struct stat*);
-extern int lstat64(const char*, struct stat64*);
-extern int stat(const char*, struct stat*);
-extern int stat64(const char*, struct stat64*);
-
-extern int mknod(const char*, mode_t, dev_t);
-extern mode_t umask(mode_t);
-
-#if defined(__BIONIC_FORTIFY)
-
-extern mode_t __umask_chk(mode_t);
-extern mode_t __umask_real(mode_t) __asm__(__USER_LABEL_PREFIX__ "umask");
-__errordecl(__umask_invalid_mode, "umask called with invalid mode");
-
-__BIONIC_FORTIFY_INLINE
-mode_t umask(mode_t mode) {
-#if !defined(__clang__)
-  if (__builtin_constant_p(mode)) {
-    if ((mode & 0777) != mode) {
-      __umask_invalid_mode();
-    }
-    return __umask_real(mode);
-  }
-#endif
-  return __umask_chk(mode);
-}
-#endif /* defined(__BIONIC_FORTIFY) */
-
-extern int mkfifo(const char*, mode_t);
-
-extern int fchmodat(int, const char*, mode_t, int);
-extern int mkdirat(int, const char*, mode_t);
-extern int mknodat(int, const char*, mode_t, dev_t);
-
-#define UTIME_NOW  ((1L << 30) - 1L)
-#define UTIME_OMIT ((1L << 30) - 2L)
-extern int utimensat(int fd, const char *path, const struct timespec times[2], int flags);
-extern int futimens(int fd, const struct timespec times[2]);
-
-__END_DECLS
-
-#endif /* _SYS_STAT_H_ */
diff --git a/ndk/platforms/android-21/arch-p/include/sys/ucontext.h b/ndk/platforms/android-21/arch-p/include/sys/ucontext.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/ucontext.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/sys/user.h b/ndk/platforms/android-21/arch-p/include/sys/user.h
deleted file mode 100644
index b671110..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/user.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <_FORBIDDEN_HEADER.h>
diff --git a/ndk/platforms/android-21/arch-p/include/sys/vfs.h b/ndk/platforms/android-21/arch-p/include/sys/vfs.h
deleted file mode 100644
index 194c229..0000000
--- a/ndk/platforms/android-21/arch-p/include/sys/vfs.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_VFS_H_
-#define _SYS_VFS_H_
-
-#include <stdint.h>
-#include <sys/cdefs.h>
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-/* The kernel's __kernel_fsid_t has a 'val' member but glibc uses '__val'. */
-typedef struct { int __val[2]; } __fsid_t;
-typedef __fsid_t fsid_t;
-
-#define __STATFS64_BODY \
-  uint64_t f_type; \
-  uint64_t f_bsize; \
-  uint64_t f_blocks; \
-  uint64_t f_bfree; \
-  uint64_t f_bavail; \
-  uint64_t f_files; \
-  uint64_t f_ffree; \
-  fsid_t f_fsid; \
-  uint64_t f_namelen; \
-  uint64_t f_frsize; \
-  uint64_t f_flags; \
-  uint64_t f_spare[5];
-
-
-struct statfs { __STATFS64_BODY };
-struct statfs64 { __STATFS64_BODY };
-
-#undef __STATFS64_BODY
-
-/* Declare that we have the f_namelen, f_frsize, and f_flags fields. */
-#define _STATFS_F_NAMELEN
-#define _STATFS_F_FRSIZE
-#define _STATFS_F_FLAGS
-
-#define  ADFS_SUPER_MAGIC      0xadf5
-#define  AFFS_SUPER_MAGIC      0xADFF
-#define  BEFS_SUPER_MAGIC      0x42465331
-#define  BFS_MAGIC             0x1BADFACE
-#define  CIFS_MAGIC_NUMBER     0xFF534D42
-#define  CODA_SUPER_MAGIC      0x73757245
-#define  COH_SUPER_MAGIC       0x012FF7B7
-#define  CRAMFS_MAGIC          0x28cd3d45
-#define  DEVFS_SUPER_MAGIC     0x1373
-#define  EFS_SUPER_MAGIC       0x00414A53
-#define  EXT_SUPER_MAGIC       0x137D
-#define  EXT2_OLD_SUPER_MAGIC  0xEF51
-#define  EXT2_SUPER_MAGIC      0xEF53
-#define  EXT3_SUPER_MAGIC      0xEF53
-#define  HFS_SUPER_MAGIC       0x4244
-#define  HPFS_SUPER_MAGIC      0xF995E849
-#define  HUGETLBFS_MAGIC       0x958458f6
-#define  ISOFS_SUPER_MAGIC     0x9660
-#define  JFFS2_SUPER_MAGIC     0x72b6
-#define  JFS_SUPER_MAGIC       0x3153464a
-#define  MINIX_SUPER_MAGIC     0x137F /* orig. minix */
-#define  MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */
-#define  MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */
-#define  MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */
-#define  MSDOS_SUPER_MAGIC     0x4d44
-#define  NCP_SUPER_MAGIC       0x564c
-#define  NFS_SUPER_MAGIC       0x6969
-#define  NTFS_SB_MAGIC         0x5346544e
-#define  OPENPROM_SUPER_MAGIC  0x9fa1
-#define  PROC_SUPER_MAGIC      0x9fa0
-#define  QNX4_SUPER_MAGIC      0x002f
-#define  REISERFS_SUPER_MAGIC  0x52654973
-#define  ROMFS_MAGIC           0x7275
-#define  SMB_SUPER_MAGIC       0x517B
-#define  SYSV2_SUPER_MAGIC     0x012FF7B6
-#define  SYSV4_SUPER_MAGIC     0x012FF7B5
-#define  TMPFS_MAGIC           0x01021994
-#define  UDF_SUPER_MAGIC       0x15013346
-#define  UFS_MAGIC             0x00011954
-#define  USBDEVICE_SUPER_MAGIC 0x9fa2
-#define  VXFS_SUPER_MAGIC      0xa501FCF5
-#define  XENIX_SUPER_MAGIC     0x012FF7B4
-#define  XFS_SUPER_MAGIC       0x58465342
-#define  _XIAFS_SUPER_MAGIC    0x012FD16D
-
-extern int statfs(const char*, struct statfs*) __nonnull((1, 2));
-extern int statfs64(const char*, struct statfs64*) __nonnull((1, 2));
-extern int fstatfs(int, struct statfs*) __nonnull((2));
-extern int fstatfs64(int, struct statfs64*) __nonnull((2));
-
-__END_DECLS
-
-#endif /* _SYS_VFS_H_ */
diff --git a/ndk/platforms/android-21/arch-p/symbols/libEGL.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libEGL.so.functions.txt
deleted file mode 100644
index 12d92a3..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libEGL.so.functions.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-eglBindAPI
-eglBindTexImage
-eglChooseConfig
-eglCopyBuffers
-eglCreateContext
-eglCreateImageKHR
-eglCreatePbufferFromClientBuffer
-eglCreatePbufferSurface
-eglCreatePixmapSurface
-eglCreateWindowSurface
-eglDestroyContext
-eglDestroyImageKHR
-eglDestroySurface
-eglGetConfigAttrib
-eglGetConfigs
-eglGetCurrentContext
-eglGetCurrentDisplay
-eglGetCurrentSurface
-eglGetDisplay
-eglGetError
-eglGetProcAddress
-eglInitialize
-eglLockSurfaceKHR
-eglMakeCurrent
-eglQueryAPI
-eglQueryContext
-eglQueryString
-eglQuerySurface
-eglReleaseTexImage
-eglReleaseThread
-eglSetSwapRectangleANDROID
-eglSurfaceAttrib
-eglSwapBuffers
-eglSwapInterval
-eglTerminate
-eglUnlockSurfaceKHR
-eglWaitClient
-eglWaitGL
-eglWaitNative
diff --git a/ndk/platforms/android-21/arch-p/symbols/libGLESv1_CM.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libGLESv1_CM.so.functions.txt
deleted file mode 100644
index af65b58..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libGLESv1_CM.so.functions.txt
+++ /dev/null
@@ -1,239 +0,0 @@
-glActiveTexture
-glAlphaFunc
-glAlphaFuncx
-glAlphaFuncxOES
-glBindBuffer
-glBindFramebufferOES
-glBindRenderbufferOES
-glBindTexture
-glBlendEquationOES
-glBlendEquationSeparateOES
-glBlendFunc
-glBlendFuncSeparateOES
-glBufferData
-glBufferSubData
-glCheckFramebufferStatusOES
-glClear
-glClearColor
-glClearColorx
-glClearColorxOES
-glClearDepthf
-glClearDepthfOES
-glClearDepthx
-glClearDepthxOES
-glClearStencil
-glClientActiveTexture
-glClipPlanef
-glClipPlanefOES
-glClipPlanex
-glClipPlanexOES
-glColor4f
-glColor4ub
-glColor4x
-glColor4xOES
-glColorMask
-glColorPointer
-glColorPointerBounds
-glCompressedTexImage2D
-glCompressedTexSubImage2D
-glCopyTexImage2D
-glCopyTexSubImage2D
-glCullFace
-glCurrentPaletteMatrixOES
-glDeleteBuffers
-glDeleteFramebuffersOES
-glDeleteRenderbuffersOES
-glDeleteTextures
-glDepthFunc
-glDepthMask
-glDepthRangef
-glDepthRangefOES
-glDepthRangex
-glDepthRangexOES
-glDisable
-glDisableClientState
-glDrawArrays
-glDrawElements
-glDrawTexfOES
-glDrawTexfvOES
-glDrawTexiOES
-glDrawTexivOES
-glDrawTexsOES
-glDrawTexsvOES
-glDrawTexxOES
-glDrawTexxvOES
-glEGLImageTargetRenderbufferStorageOES
-glEGLImageTargetTexture2DOES
-glEnable
-glEnableClientState
-glFinish
-glFlush
-glFogf
-glFogfv
-glFogx
-glFogxOES
-glFogxv
-glFogxvOES
-glFramebufferRenderbufferOES
-glFramebufferTexture2DOES
-glFrontFace
-glFrustumf
-glFrustumfOES
-glFrustumx
-glFrustumxOES
-glGenBuffers
-glGenerateMipmapOES
-glGenFramebuffersOES
-glGenRenderbuffersOES
-glGenTextures
-glGetBooleanv
-glGetBufferParameteriv
-glGetBufferPointervOES
-glGetClipPlanef
-glGetClipPlanefOES
-glGetClipPlanex
-glGetClipPlanexOES
-glGetError
-glGetFixedv
-glGetFixedvOES
-glGetFloatv
-glGetFramebufferAttachmentParameterivOES
-glGetIntegerv
-glGetLightfv
-glGetLightxv
-glGetLightxvOES
-glGetMaterialfv
-glGetMaterialxv
-glGetMaterialxvOES
-glGetPointerv
-glGetRenderbufferParameterivOES
-glGetString
-glGetTexEnvfv
-glGetTexEnviv
-glGetTexEnvxv
-glGetTexEnvxvOES
-glGetTexGenfvOES
-glGetTexGenivOES
-glGetTexGenxvOES
-glGetTexParameterfv
-glGetTexParameteriv
-glGetTexParameterxv
-glGetTexParameterxvOES
-glHint
-glIsBuffer
-glIsEnabled
-glIsFramebufferOES
-glIsRenderbufferOES
-glIsTexture
-glLightf
-glLightfv
-glLightModelf
-glLightModelfv
-glLightModelx
-glLightModelxOES
-glLightModelxv
-glLightModelxvOES
-glLightx
-glLightxOES
-glLightxv
-glLightxvOES
-glLineWidth
-glLineWidthx
-glLineWidthxOES
-glLoadIdentity
-glLoadMatrixf
-glLoadMatrixx
-glLoadMatrixxOES
-glLoadPaletteFromModelViewMatrixOES
-glLogicOp
-glMapBufferOES
-glMaterialf
-glMaterialfv
-glMaterialx
-glMaterialxOES
-glMaterialxv
-glMaterialxvOES
-glMatrixIndexPointerOES
-glMatrixMode
-glMultiTexCoord4f
-glMultiTexCoord4x
-glMultiTexCoord4xOES
-glMultMatrixf
-glMultMatrixx
-glMultMatrixxOES
-glNormal3f
-glNormal3x
-glNormal3xOES
-glNormalPointer
-glNormalPointerBounds
-glOrthof
-glOrthofOES
-glOrthox
-glOrthoxOES
-glPixelStorei
-glPointParameterf
-glPointParameterfv
-glPointParameterx
-glPointParameterxOES
-glPointParameterxv
-glPointParameterxvOES
-glPointSize
-glPointSizePointerOES
-glPointSizex
-glPointSizexOES
-glPolygonOffset
-glPolygonOffsetx
-glPolygonOffsetxOES
-glPopMatrix
-glPushMatrix
-glQueryMatrixxOES
-glReadPixels
-glRenderbufferStorageOES
-glRotatef
-glRotatex
-glRotatexOES
-glSampleCoverage
-glSampleCoveragex
-glSampleCoveragexOES
-glScalef
-glScalex
-glScalexOES
-glScissor
-glShadeModel
-glStencilFunc
-glStencilMask
-glStencilOp
-glTexCoordPointer
-glTexCoordPointerBounds
-glTexEnvf
-glTexEnvfv
-glTexEnvi
-glTexEnviv
-glTexEnvx
-glTexEnvxOES
-glTexEnvxv
-glTexEnvxvOES
-glTexGenfOES
-glTexGenfvOES
-glTexGeniOES
-glTexGenivOES
-glTexGenxOES
-glTexGenxvOES
-glTexImage2D
-glTexParameterf
-glTexParameterfv
-glTexParameteri
-glTexParameteriv
-glTexParameterx
-glTexParameterxOES
-glTexParameterxv
-glTexParameterxvOES
-glTexSubImage2D
-glTranslatef
-glTranslatex
-glTranslatexOES
-glUnmapBufferOES
-glVertexPointer
-glVertexPointerBounds
-glViewport
-glWeightPointerOES
diff --git a/ndk/platforms/android-21/arch-p/symbols/libGLESv2.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libGLESv2.so.functions.txt
deleted file mode 100644
index 8739b3d..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libGLESv2.so.functions.txt
+++ /dev/null
@@ -1,177 +0,0 @@
-glActiveTexture
-glAttachShader
-glBeginPerfMonitorAMD
-glBindAttribLocation
-glBindBuffer
-glBindFramebuffer
-glBindRenderbuffer
-glBindTexture
-glBlendColor
-glBlendEquation
-glBlendEquationSeparate
-glBlendFunc
-glBlendFuncSeparate
-glBufferData
-glBufferSubData
-glCheckFramebufferStatus
-glClear
-glClearColor
-glClearDepthf
-glClearStencil
-glColorMask
-glCompileShader
-glCompressedTexImage2D
-glCompressedTexImage3DOES
-glCompressedTexSubImage2D
-glCompressedTexSubImage3DOES
-glCopyTexImage2D
-glCopyTexSubImage2D
-glCopyTexSubImage3DOES
-glCreateProgram
-glCreateShader
-glCullFace
-glDeleteBuffers
-glDeleteFencesNV
-glDeleteFramebuffers
-glDeletePerfMonitorsAMD
-glDeleteProgram
-glDeleteRenderbuffers
-glDeleteShader
-glDeleteTextures
-glDepthFunc
-glDepthMask
-glDepthRangef
-glDetachShader
-glDisable
-glDisableDriverControlQCOM
-glDisableVertexAttribArray
-glDrawArrays
-glDrawElements
-glEGLImageTargetRenderbufferStorageOES
-glEGLImageTargetTexture2DOES
-glEnable
-glEnableDriverControlQCOM
-glEnableVertexAttribArray
-glEndPerfMonitorAMD
-glFinish
-glFinishFenceNV
-glFlush
-glFramebufferRenderbuffer
-glFramebufferTexture2D
-glFramebufferTexture3DOES
-glFrontFace
-glGenBuffers
-glGenerateMipmap
-glGenFencesNV
-glGenFramebuffers
-glGenPerfMonitorsAMD
-glGenRenderbuffers
-glGenTextures
-glGetActiveAttrib
-glGetActiveUniform
-glGetAttachedShaders
-glGetAttribLocation
-glGetBooleanv
-glGetBufferParameteriv
-glGetBufferPointervOES
-glGetDriverControlsQCOM
-glGetDriverControlStringQCOM
-glGetError
-glGetFenceivNV
-glGetFloatv
-glGetFramebufferAttachmentParameteriv
-glGetIntegerv
-glGetPerfMonitorCounterDataAMD
-glGetPerfMonitorCounterInfoAMD
-glGetPerfMonitorCountersAMD
-glGetPerfMonitorCounterStringAMD
-glGetPerfMonitorGroupsAMD
-glGetPerfMonitorGroupStringAMD
-glGetProgramBinaryOES
-glGetProgramInfoLog
-glGetProgramiv
-glGetRenderbufferParameteriv
-glGetShaderInfoLog
-glGetShaderiv
-glGetShaderPrecisionFormat
-glGetShaderSource
-glGetString
-glGetTexParameterfv
-glGetTexParameteriv
-glGetUniformfv
-glGetUniformiv
-glGetUniformLocation
-glGetVertexAttribfv
-glGetVertexAttribiv
-glGetVertexAttribPointerv
-glHint
-glIsBuffer
-glIsEnabled
-glIsFenceNV
-glIsFramebuffer
-glIsProgram
-glIsRenderbuffer
-glIsShader
-glIsTexture
-glLineWidth
-glLinkProgram
-glMapBufferOES
-glPixelStorei
-glPolygonOffset
-glProgramBinaryOES
-glReadPixels
-glReleaseShaderCompiler
-glRenderbufferStorage
-glSampleCoverage
-glScissor
-glSelectPerfMonitorCountersAMD
-glSetFenceNV
-glShaderBinary
-glShaderSource
-glStencilFunc
-glStencilFuncSeparate
-glStencilMask
-glStencilMaskSeparate
-glStencilOp
-glStencilOpSeparate
-glTestFenceNV
-glTexImage2D
-glTexImage3DOES
-glTexParameterf
-glTexParameterfv
-glTexParameteri
-glTexParameteriv
-glTexSubImage2D
-glTexSubImage3DOES
-glUniform1f
-glUniform1fv
-glUniform1i
-glUniform1iv
-glUniform2f
-glUniform2fv
-glUniform2i
-glUniform2iv
-glUniform3f
-glUniform3fv
-glUniform3i
-glUniform3iv
-glUniform4f
-glUniform4fv
-glUniform4i
-glUniform4iv
-glUniformMatrix2fv
-glUniformMatrix3fv
-glUniformMatrix4fv
-glUnmapBufferOES
-glUseProgram
-glValidateProgram
-glVertexAttrib1f
-glVertexAttrib1fv
-glVertexAttrib2f
-glVertexAttrib2fv
-glVertexAttrib3f
-glVertexAttrib3fv
-glVertexAttrib4f
-glVertexAttrib4fv
-glVertexAttribPointer
-glViewport
diff --git a/ndk/platforms/android-21/arch-p/symbols/libGLESv3.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libGLESv3.so.functions.txt
deleted file mode 100644
index b2510e0..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libGLESv3.so.functions.txt
+++ /dev/null
@@ -1,367 +0,0 @@
-glActiveShaderProgram
-glActiveTexture
-glAttachShader
-glBeginQuery
-glBeginTransformFeedback
-glBindAttribLocation
-glBindBuffer
-glBindBufferBase
-glBindBufferRange
-glBindFramebuffer
-glBindImageTexture
-glBindProgramPipeline
-glBindRenderbuffer
-glBindSampler
-glBindTexture
-glBindTransformFeedback
-glBindVertexArray
-glBindVertexArrayOES
-glBindVertexBuffer
-glBlendBarrierKHR
-glBlendColor
-glBlendEquation
-glBlendEquationiEXT
-glBlendEquationSeparate
-glBlendEquationSeparateiEXT
-glBlendFunc
-glBlendFunciEXT
-glBlendFuncSeparate
-glBlendFuncSeparateiEXT
-glBlitFramebuffer
-glBufferData
-glBufferSubData
-glCheckFramebufferStatus
-glClear
-glClearBufferfi
-glClearBufferfv
-glClearBufferiv
-glClearBufferuiv
-glClearColor
-glClearDepthf
-glClearStencil
-glClientWaitSync
-glColorMask
-glColorMaskiEXT
-glCompileShader
-glCompressedTexImage2D
-glCompressedTexImage3D
-glCompressedTexImage3DOES
-glCompressedTexSubImage2D
-glCompressedTexSubImage3D
-glCompressedTexSubImage3DOES
-glCopyBufferSubData
-glCopyImageSubDataEXT
-glCopyTexImage2D
-glCopyTexSubImage2D
-glCopyTexSubImage3D
-glCopyTexSubImage3DOES
-glCreateProgram
-glCreateShader
-glCreateShaderProgramv
-glCullFace
-glDebugMessageCallbackKHR
-glDebugMessageControlKHR
-glDebugMessageInsertKHR
-glDeleteBuffers
-glDeleteFramebuffers
-glDeleteProgram
-glDeleteProgramPipelines
-glDeleteQueries
-glDeleteRenderbuffers
-glDeleteSamplers
-glDeleteShader
-glDeleteSync
-glDeleteTextures
-glDeleteTransformFeedbacks
-glDeleteVertexArrays
-glDeleteVertexArraysOES
-glDepthFunc
-glDepthMask
-glDepthRangef
-glDetachShader
-glDisable
-glDisableiEXT
-glDisableVertexAttribArray
-glDispatchCompute
-glDispatchComputeIndirect
-glDrawArrays
-glDrawArraysIndirect
-glDrawArraysInstanced
-glDrawBuffers
-glDrawElements
-glDrawElementsIndirect
-glDrawElementsInstanced
-glDrawRangeElements
-glEGLImageTargetRenderbufferStorageOES
-glEGLImageTargetTexture2DOES
-glEnable
-glEnableiEXT
-glEnableVertexAttribArray
-glEndQuery
-glEndTransformFeedback
-glFenceSync
-glFinish
-glFlush
-glFlushMappedBufferRange
-glFramebufferParameteri
-glFramebufferRenderbuffer
-glFramebufferTexture2D
-glFramebufferTexture3DOES
-glFramebufferTextureEXT
-glFramebufferTextureLayer
-glFrontFace
-glGenBuffers
-glGenerateMipmap
-glGenFramebuffers
-glGenProgramPipelines
-glGenQueries
-glGenRenderbuffers
-glGenSamplers
-glGenTextures
-glGenTransformFeedbacks
-glGenVertexArrays
-glGenVertexArraysOES
-glGetActiveAttrib
-glGetActiveUniform
-glGetActiveUniformBlockiv
-glGetActiveUniformBlockName
-glGetActiveUniformsiv
-glGetAttachedShaders
-glGetAttribLocation
-glGetBooleani_v
-glGetBooleanv
-glGetBufferParameteri64v
-glGetBufferParameteriv
-glGetBufferPointerv
-glGetBufferPointervOES
-glGetDebugMessageLogKHR
-glGetError
-glGetFloatv
-glGetFragDataLocation
-glGetFramebufferAttachmentParameteriv
-glGetFramebufferParameteriv
-glGetInteger64i_v
-glGetInteger64v
-glGetIntegeri_v
-glGetIntegerv
-glGetInternalformativ
-glGetMultisamplefv
-glGetObjectLabelKHR
-glGetObjectPtrLabelKHR
-glGetPointervKHR
-glGetProgramBinary
-glGetProgramBinaryOES
-glGetProgramInfoLog
-glGetProgramInterfaceiv
-glGetProgramiv
-glGetProgramPipelineInfoLog
-glGetProgramPipelineiv
-glGetProgramResourceIndex
-glGetProgramResourceiv
-glGetProgramResourceLocation
-glGetProgramResourceName
-glGetQueryiv
-glGetQueryObjectuiv
-glGetRenderbufferParameteriv
-glGetSamplerParameterfv
-glGetSamplerParameterIivEXT
-glGetSamplerParameterIuivEXT
-glGetSamplerParameteriv
-glGetShaderInfoLog
-glGetShaderiv
-glGetShaderPrecisionFormat
-glGetShaderSource
-glGetString
-glGetStringi
-glGetSynciv
-glGetTexLevelParameterfv
-glGetTexLevelParameteriv
-glGetTexParameterfv
-glGetTexParameterIivEXT
-glGetTexParameterIuivEXT
-glGetTexParameteriv
-glGetTransformFeedbackVarying
-glGetUniformBlockIndex
-glGetUniformfv
-glGetUniformIndices
-glGetUniformiv
-glGetUniformLocation
-glGetUniformuiv
-glGetVertexAttribfv
-glGetVertexAttribIiv
-glGetVertexAttribIuiv
-glGetVertexAttribiv
-glGetVertexAttribPointerv
-glHint
-glInvalidateFramebuffer
-glInvalidateSubFramebuffer
-glIsBuffer
-glIsEnabled
-glIsEnablediEXT
-glIsFramebuffer
-glIsProgram
-glIsProgramPipeline
-glIsQuery
-glIsRenderbuffer
-glIsSampler
-glIsShader
-glIsSync
-glIsTexture
-glIsTransformFeedback
-glIsVertexArray
-glIsVertexArrayOES
-glLineWidth
-glLinkProgram
-glMapBufferOES
-glMapBufferRange
-glMemoryBarrier
-glMemoryBarrierByRegion
-glMinSampleShadingOES
-glObjectLabelKHR
-glObjectPtrLabelKHR
-glPatchParameteriEXT
-glPauseTransformFeedback
-glPixelStorei
-glPolygonOffset
-glPopDebugGroupKHR
-glPrimitiveBoundingBoxEXT
-glProgramBinary
-glProgramBinaryOES
-glProgramParameteri
-glProgramUniform1f
-glProgramUniform1fv
-glProgramUniform1i
-glProgramUniform1iv
-glProgramUniform1ui
-glProgramUniform1uiv
-glProgramUniform2f
-glProgramUniform2fv
-glProgramUniform2i
-glProgramUniform2iv
-glProgramUniform2ui
-glProgramUniform2uiv
-glProgramUniform3f
-glProgramUniform3fv
-glProgramUniform3i
-glProgramUniform3iv
-glProgramUniform3ui
-glProgramUniform3uiv
-glProgramUniform4f
-glProgramUniform4fv
-glProgramUniform4i
-glProgramUniform4iv
-glProgramUniform4ui
-glProgramUniform4uiv
-glProgramUniformMatrix2fv
-glProgramUniformMatrix2x3fv
-glProgramUniformMatrix2x4fv
-glProgramUniformMatrix3fv
-glProgramUniformMatrix3x2fv
-glProgramUniformMatrix3x4fv
-glProgramUniformMatrix4fv
-glProgramUniformMatrix4x2fv
-glProgramUniformMatrix4x3fv
-glPushDebugGroupKHR
-glReadBuffer
-glReadPixels
-glReleaseShaderCompiler
-glRenderbufferStorage
-glRenderbufferStorageMultisample
-glResumeTransformFeedback
-glSampleCoverage
-glSampleMaski
-glSamplerParameterf
-glSamplerParameterfv
-glSamplerParameteri
-glSamplerParameterIivEXT
-glSamplerParameterIuivEXT
-glSamplerParameteriv
-glScissor
-glShaderBinary
-glShaderSource
-glStencilFunc
-glStencilFuncSeparate
-glStencilMask
-glStencilMaskSeparate
-glStencilOp
-glStencilOpSeparate
-glTexBufferEXT
-glTexBufferRangeEXT
-glTexImage2D
-glTexImage3D
-glTexImage3DOES
-glTexParameterf
-glTexParameterfv
-glTexParameteri
-glTexParameterIivEXT
-glTexParameterIuivEXT
-glTexParameteriv
-glTexStorage2D
-glTexStorage2DMultisample
-glTexStorage3D
-glTexStorage3DMultisampleOES
-glTexSubImage2D
-glTexSubImage3D
-glTexSubImage3DOES
-glTransformFeedbackVaryings
-glUniform1f
-glUniform1fv
-glUniform1i
-glUniform1iv
-glUniform1ui
-glUniform1uiv
-glUniform2f
-glUniform2fv
-glUniform2i
-glUniform2iv
-glUniform2ui
-glUniform2uiv
-glUniform3f
-glUniform3fv
-glUniform3i
-glUniform3iv
-glUniform3ui
-glUniform3uiv
-glUniform4f
-glUniform4fv
-glUniform4i
-glUniform4iv
-glUniform4ui
-glUniform4uiv
-glUniformBlockBinding
-glUniformMatrix2fv
-glUniformMatrix2x3fv
-glUniformMatrix2x4fv
-glUniformMatrix3fv
-glUniformMatrix3x2fv
-glUniformMatrix3x4fv
-glUniformMatrix4fv
-glUniformMatrix4x2fv
-glUniformMatrix4x3fv
-glUnmapBuffer
-glUnmapBufferOES
-glUseProgram
-glUseProgramStages
-glValidateProgram
-glValidateProgramPipeline
-glVertexAttrib1f
-glVertexAttrib1fv
-glVertexAttrib2f
-glVertexAttrib2fv
-glVertexAttrib3f
-glVertexAttrib3fv
-glVertexAttrib4f
-glVertexAttrib4fv
-glVertexAttribBinding
-glVertexAttribDivisor
-glVertexAttribFormat
-glVertexAttribI4i
-glVertexAttribI4iv
-glVertexAttribI4ui
-glVertexAttribI4uiv
-glVertexAttribIFormat
-glVertexAttribIPointer
-glVertexAttribPointer
-glVertexBindingDivisor
-glViewport
-glWaitSync
diff --git a/ndk/platforms/android-21/arch-p/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libOpenMAXAL.so.functions.txt
deleted file mode 100644
index c3a190c..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libOpenMAXAL.so.functions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-xaCreateEngine
-xaQueryNumSupportedEngineInterfaces
-xaQuerySupportedEngineInterfaces
diff --git a/ndk/platforms/android-21/arch-p/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libOpenMAXAL.so.variables.txt
deleted file mode 100644
index 7ceda9c..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libOpenMAXAL.so.variables.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-XA_IID_ANDROIDBUFFERQUEUESOURCE
-XA_IID_AUDIODECODERCAPABILITIES
-XA_IID_AUDIOENCODER
-XA_IID_AUDIOENCODERCAPABILITIES
-XA_IID_AUDIOIODEVICECAPABILITIES
-XA_IID_CAMERA
-XA_IID_CAMERACAPABILITIES
-XA_IID_CONFIGEXTENSION
-XA_IID_DEVICEVOLUME
-XA_IID_DYNAMICINTERFACEMANAGEMENT
-XA_IID_DYNAMICSOURCE
-XA_IID_ENGINE
-XA_IID_EQUALIZER
-XA_IID_IMAGECONTROLS
-XA_IID_IMAGEDECODERCAPABILITIES
-XA_IID_IMAGEEFFECTS
-XA_IID_IMAGEENCODER
-XA_IID_IMAGEENCODERCAPABILITIES
-XA_IID_LED
-XA_IID_METADATAEXTRACTION
-XA_IID_METADATAINSERTION
-XA_IID_METADATATRAVERSAL
-XA_IID_NULL
-XA_IID_OBJECT
-XA_IID_OUTPUTMIX
-XA_IID_PLAY
-XA_IID_PLAYBACKRATE
-XA_IID_PREFETCHSTATUS
-XA_IID_RADIO
-XA_IID_RDS
-XA_IID_RECORD
-XA_IID_SEEK
-XA_IID_SNAPSHOT
-XA_IID_STREAMINFORMATION
-XA_IID_THREADSYNC
-XA_IID_VIBRA
-XA_IID_VIDEODECODERCAPABILITIES
-XA_IID_VIDEOENCODER
-XA_IID_VIDEOENCODERCAPABILITIES
-XA_IID_VIDEOPOSTPROCESSING
-XA_IID_VOLUME
diff --git a/ndk/platforms/android-21/arch-p/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libOpenSLES.so.functions.txt
deleted file mode 100644
index f69a3e5..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libOpenSLES.so.functions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-slCreateEngine
-slQueryNumSupportedEngineInterfaces
-slQuerySupportedEngineInterfaces
diff --git a/ndk/platforms/android-21/arch-p/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libOpenSLES.so.variables.txt
deleted file mode 100644
index c7ee7d1..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libOpenSLES.so.variables.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-SL_IID_3DCOMMIT
-SL_IID_3DDOPPLER
-SL_IID_3DGROUPING
-SL_IID_3DLOCATION
-SL_IID_3DMACROSCOPIC
-SL_IID_3DSOURCE
-SL_IID_ANDROIDBUFFERQUEUESOURCE
-SL_IID_ANDROIDCONFIGURATION
-SL_IID_ANDROIDEFFECT
-SL_IID_ANDROIDEFFECTCAPABILITIES
-SL_IID_ANDROIDEFFECTSEND
-SL_IID_ANDROIDSIMPLEBUFFERQUEUE
-SL_IID_AUDIODECODERCAPABILITIES
-SL_IID_AUDIOENCODER
-SL_IID_AUDIOENCODERCAPABILITIES
-SL_IID_AUDIOIODEVICECAPABILITIES
-SL_IID_BASSBOOST
-SL_IID_BUFFERQUEUE
-SL_IID_DEVICEVOLUME
-SL_IID_DYNAMICINTERFACEMANAGEMENT
-SL_IID_DYNAMICSOURCE
-SL_IID_EFFECTSEND
-SL_IID_ENGINE
-SL_IID_ENGINECAPABILITIES
-SL_IID_ENVIRONMENTALREVERB
-SL_IID_EQUALIZER
-SL_IID_LED
-SL_IID_METADATAEXTRACTION
-SL_IID_METADATATRAVERSAL
-SL_IID_MIDIMESSAGE
-SL_IID_MIDIMUTESOLO
-SL_IID_MIDITEMPO
-SL_IID_MIDITIME
-SL_IID_MUTESOLO
-SL_IID_NULL
-SL_IID_OBJECT
-SL_IID_OUTPUTMIX
-SL_IID_PITCH
-SL_IID_PLAY
-SL_IID_PLAYBACKRATE
-SL_IID_PREFETCHSTATUS
-SL_IID_PRESETREVERB
-SL_IID_RATEPITCH
-SL_IID_RECORD
-SL_IID_SEEK
-SL_IID_THREADSYNC
-SL_IID_VIBRA
-SL_IID_VIRTUALIZER
-SL_IID_VISUALIZATION
-SL_IID_VOLUME
diff --git a/ndk/platforms/android-21/arch-p/symbols/libandroid.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libandroid.so.functions.txt
deleted file mode 100644
index a164f8c..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libandroid.so.functions.txt
+++ /dev/null
@@ -1,179 +0,0 @@
-AAsset_close
-AAssetDir_close
-AAssetDir_getNextFileName
-AAssetDir_rewind
-AAsset_getBuffer
-AAsset_getLength
-AAsset_getLength64
-AAsset_getRemainingLength
-AAsset_getRemainingLength64
-AAsset_isAllocated
-AAssetManager_fromJava
-AAssetManager_open
-AAssetManager_openDir
-AAsset_openFileDescriptor
-AAsset_openFileDescriptor64
-AAsset_read
-AAsset_seek
-AAsset_seek64
-AConfiguration_copy
-AConfiguration_delete
-AConfiguration_diff
-AConfiguration_fromAssetManager
-AConfiguration_getCountry
-AConfiguration_getDensity
-AConfiguration_getKeyboard
-AConfiguration_getKeysHidden
-AConfiguration_getLanguage
-AConfiguration_getLayoutDirection
-AConfiguration_getMcc
-AConfiguration_getMnc
-AConfiguration_getNavHidden
-AConfiguration_getNavigation
-AConfiguration_getOrientation
-AConfiguration_getScreenHeightDp
-AConfiguration_getScreenLong
-AConfiguration_getScreenSize
-AConfiguration_getScreenWidthDp
-AConfiguration_getSdkVersion
-AConfiguration_getSmallestScreenWidthDp
-AConfiguration_getTouchscreen
-AConfiguration_getUiModeNight
-AConfiguration_getUiModeType
-AConfiguration_isBetterThan
-AConfiguration_match
-AConfiguration_new
-AConfiguration_setCountry
-AConfiguration_setDensity
-AConfiguration_setKeyboard
-AConfiguration_setKeysHidden
-AConfiguration_setLanguage
-AConfiguration_setLayoutDirection
-AConfiguration_setMcc
-AConfiguration_setMnc
-AConfiguration_setNavHidden
-AConfiguration_setNavigation
-AConfiguration_setOrientation
-AConfiguration_setScreenHeightDp
-AConfiguration_setScreenLong
-AConfiguration_setScreenSize
-AConfiguration_setScreenWidthDp
-AConfiguration_setSdkVersion
-AConfiguration_setSmallestScreenWidthDp
-AConfiguration_setTouchscreen
-AConfiguration_setUiModeNight
-AConfiguration_setUiModeType
-AInputEvent_getDeviceId
-AInputEvent_getSource
-AInputEvent_getType
-AInputQueue_attachLooper
-AInputQueue_detachLooper
-AInputQueue_finishEvent
-AInputQueue_getEvent
-AInputQueue_hasEvents
-AInputQueue_preDispatchEvent
-AKeyEvent_getAction
-AKeyEvent_getDownTime
-AKeyEvent_getEventTime
-AKeyEvent_getFlags
-AKeyEvent_getKeyCode
-AKeyEvent_getMetaState
-AKeyEvent_getRepeatCount
-AKeyEvent_getScanCode
-ALooper_acquire
-ALooper_addFd
-ALooper_forThread
-ALooper_pollAll
-ALooper_pollOnce
-ALooper_prepare
-ALooper_release
-ALooper_removeFd
-ALooper_wake
-AMotionEvent_getAction
-AMotionEvent_getAxisValue
-AMotionEvent_getButtonState
-AMotionEvent_getDownTime
-AMotionEvent_getEdgeFlags
-AMotionEvent_getEventTime
-AMotionEvent_getFlags
-AMotionEvent_getHistoricalAxisValue
-AMotionEvent_getHistoricalEventTime
-AMotionEvent_getHistoricalOrientation
-AMotionEvent_getHistoricalPressure
-AMotionEvent_getHistoricalRawX
-AMotionEvent_getHistoricalRawY
-AMotionEvent_getHistoricalSize
-AMotionEvent_getHistoricalToolMajor
-AMotionEvent_getHistoricalToolMinor
-AMotionEvent_getHistoricalTouchMajor
-AMotionEvent_getHistoricalTouchMinor
-AMotionEvent_getHistoricalX
-AMotionEvent_getHistoricalY
-AMotionEvent_getHistorySize
-AMotionEvent_getMetaState
-AMotionEvent_getOrientation
-AMotionEvent_getPointerCount
-AMotionEvent_getPointerId
-AMotionEvent_getPressure
-AMotionEvent_getRawX
-AMotionEvent_getRawY
-AMotionEvent_getSize
-AMotionEvent_getToolMajor
-AMotionEvent_getToolMinor
-AMotionEvent_getToolType
-AMotionEvent_getTouchMajor
-AMotionEvent_getTouchMinor
-AMotionEvent_getX
-AMotionEvent_getXOffset
-AMotionEvent_getXPrecision
-AMotionEvent_getY
-AMotionEvent_getYOffset
-AMotionEvent_getYPrecision
-ANativeActivity_finish
-ANativeActivity_hideSoftInput
-ANativeActivity_setWindowFlags
-ANativeActivity_setWindowFormat
-ANativeActivity_showSoftInput
-ANativeWindow_acquire
-ANativeWindow_fromSurface
-ANativeWindow_getFormat
-ANativeWindow_getHeight
-ANativeWindow_getWidth
-ANativeWindow_lock
-ANativeWindow_release
-ANativeWindow_setBuffersGeometry
-ANativeWindow_unlockAndPost
-android_getTtsEngine
-AObbInfo_delete
-AObbInfo_getFlags
-AObbInfo_getPackageName
-AObbInfo_getVersion
-AObbScanner_getObbInfo
-ASensorEventQueue_disableSensor
-ASensorEventQueue_enableSensor
-ASensorEventQueue_getEvents
-ASensorEventQueue_hasEvents
-ASensorEventQueue_setEventRate
-ASensor_getFifoMaxEventCount
-ASensor_getFifoReservedEventCount
-ASensor_getMinDelay
-ASensor_getName
-ASensor_getReportingMode
-ASensor_getResolution
-ASensor_getStringType
-ASensor_getType
-ASensor_getVendor
-ASensor_isWakeUpSensor
-ASensorManager_createEventQueue
-ASensorManager_destroyEventQueue
-ASensorManager_getDefaultSensor
-ASensorManager_getDefaultSensorEx
-ASensorManager_getInstance
-ASensorManager_getSensorList
-AStorageManager_delete
-AStorageManager_getMountedObbPath
-AStorageManager_isObbMounted
-AStorageManager_mountObb
-AStorageManager_new
-AStorageManager_unmountObb
-getTtsEngine
diff --git a/ndk/platforms/android-21/arch-p/symbols/libc.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libc.so.functions.txt
deleted file mode 100644
index 431be50..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libc.so.functions.txt
+++ /dev/null
@@ -1,1287 +0,0 @@
-abort
-abs
-accept
-accept4
-__accept4
-access
-acct
-__adddf3
-__addsf3
-__aeabi_atexit
-__aeabi_cdcmpeq
-__aeabi_cdcmple
-__aeabi_cdrcmple
-__aeabi_d2f
-__aeabi_d2iz
-__aeabi_dadd
-__aeabi_dcmpeq
-__aeabi_dcmpge
-__aeabi_dcmpgt
-__aeabi_dcmple
-__aeabi_dcmplt
-__aeabi_dcmpun
-__aeabi_ddiv
-__aeabi_dmul
-__aeabi_drsub
-__aeabi_dsub
-__aeabi_f2d
-__aeabi_f2iz
-__aeabi_f2uiz
-__aeabi_fadd
-__aeabi_fcmpun
-__aeabi_fdiv
-__aeabi_fmul
-__aeabi_frsub
-__aeabi_fsub
-__aeabi_i2d
-__aeabi_i2f
-__aeabi_idiv
-__aeabi_idiv0
-__aeabi_idivmod
-__aeabi_l2d
-__aeabi_l2f
-__aeabi_lasr
-__aeabi_ldiv0
-__aeabi_ldivmod
-__aeabi_llsl
-__aeabi_llsr
-__aeabi_lmul
-__aeabi_memclr
-__aeabi_memclr4
-__aeabi_memclr8
-__aeabi_memcpy
-__aeabi_memcpy4
-__aeabi_memcpy8
-__aeabi_memmove
-__aeabi_memmove4
-__aeabi_memmove8
-__aeabi_memset
-__aeabi_memset4
-__aeabi_memset8
-__aeabi_ui2d
-__aeabi_ui2f
-__aeabi_uidiv
-__aeabi_uidivmod
-__aeabi_ul2d
-__aeabi_ul2f
-__aeabi_uldivmod
-__aeabi_unwind_cpp_pr0
-__aeabi_unwind_cpp_pr1
-__aeabi_unwind_cpp_pr2
-alarm
-alphasort
-alphasort64
-android_getaddrinfofornet
-android_gethostbyaddrfornet
-android_gethostbynamefornet
-android_set_abort_message
-arc4random
-arc4random_addrandom
-arc4random_buf
-arc4random_stir
-arc4random_uniform
-__arm_fadvise64_64
-asctime
-asctime64
-asctime64_r
-asctime_r
-__ashldi3
-__ashrdi3
-asprintf
-__assert
-__assert2
-atexit
-atof
-atoi
-atol
-atoll
-__atomic_cmpxchg
-__atomic_dec
-__atomic_inc
-__atomic_swap
-at_quick_exit
-__b64_ntop
-__b64_pton
-basename
-basename_r
-bcopy
-bind
-bindresvport
-brk
-__brk
-bsd_signal
-bsearch
-btowc
-bzero
-c16rtomb
-c32rtomb
-cacheflush
-calloc
-capget
-capset
-cfgetispeed
-cfgetospeed
-cfmakeraw
-cfsetispeed
-cfsetospeed
-cfsetspeed
-chdir
-chmod
-chown
-chroot
-clearenv
-clearerr
-clock
-clock_getres
-clock_gettime
-clock_nanosleep
-clock_settime
-clone
-close
-closedir
-closelog
-__cmpdf2
-__cmsg_nxthdr
-connect
-__connect
-creat
-creat64
-ctime
-ctime64
-ctime64_r
-ctime_r
-__ctype_get_mb_cur_max
-__cxa_atexit
-__cxa_finalize
-daemon
-delete_module
-difftime
-dirfd
-dirname
-dirname_r
-div
-__divdf3
-__divdi3
-__divsf3
-__divsi3
-dlmalloc_usable_size
-__dn_comp
-__dn_count_labels
-dn_expand
-__dn_skipname
-dprintf
-drand48
-dup
-dup2
-dup3
-duplocale
-endmntent
-endpwent
-endservent
-endusershell
-endutent
-epoll_create
-epoll_create1
-epoll_ctl
-__epoll_pwait
-epoll_pwait
-epoll_wait
-__eqdf2
-erand48
-err
-__errno
-errx
-ether_aton
-ether_aton_r
-ether_ntoa
-ether_ntoa_r
-eventfd
-eventfd_read
-eventfd_write
-execl
-execle
-execlp
-execv
-execve
-execvp
-execvpe
-exit
-_exit
-__exit
-_Exit
-__extendsfdf2
-faccessat
-__fadvise64
-fallocate
-fallocate64
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fclose
-fcntl
-__fcntl64
-fdatasync
-__FD_CLR_chk
-__FD_ISSET_chk
-fdopen
-fdopendir
-fdprintf
-__FD_SET_chk
-feof
-ferror
-fflush
-ffs
-fgetc
-fgetln
-fgetpos
-fgets
-__fgets_chk
-fgetwc
-fgetws
-fgetxattr
-fileno
-__fixdfsi
-__fixsfsi
-__fixunssfsi
-flistxattr
-__floatdidf
-__floatdisf
-__floatsidf
-__floatsisf
-__floatundidf
-__floatundisf
-__floatunsidf
-__floatunsisf
-flock
-flockfile
-_flush_cache
-fnmatch
-fopen
-fork
-fpathconf
-__fpclassify
-__fpclassifyd
-__fpclassifyf
-__fpclassifyl
-__fp_nquery
-__fp_query
-fprintf
-fpurge
-fputc
-fputs
-fputwc
-fputws
-fread
-free
-freeaddrinfo
-freelocale
-fremovexattr
-freopen
-fscanf
-fseek
-fseeko
-fsetpos
-fsetxattr
-fstat
-fstat64
-fstatat
-fstatat64
-fstatfs
-fstatfs64
-__fstatfs64
-fstatvfs
-fstatvfs64
-fsync
-ftell
-ftello
-ftime
-ftok
-ftruncate
-ftruncate64
-ftrylockfile
-fts_children
-fts_close
-fts_open
-fts_read
-fts_set
-ftw
-ftw64
-funlockfile
-funopen
-__futex_wait
-__futex_wake
-futimens
-fwide
-fwprintf
-fwrite
-fwscanf
-gai_strerror
-__gedf2
-getaddrinfo
-getauxval
-getc
-getchar
-getchar_unlocked
-__getcpu
-getc_unlocked
-getcwd
-__getcwd
-getdelim
-getdents
-__getdents64
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrgid
-getgrnam
-getgrouplist
-getgroups
-__get_h_errno
-gethostbyaddr
-gethostbyname
-gethostbyname2
-gethostbyname_r
-gethostent
-gethostname
-getitimer
-getline
-getlogin
-_getlong
-get_malloc_leak_info
-getmntent
-getmntent_r
-getnameinfo
-getnetbyaddr
-getnetbyname
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpeername
-getpgid
-getpgrp
-getpid
-__getpid
-getppid
-getpriority
-__getpriority
-getprogname
-getprotobyname
-getprotobynumber
-getpt
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresgid
-getresuid
-getrlimit
-getrlimit64
-getrusage
-gets
-getservbyname
-getservbyport
-getservent
-_getshort
-getsid
-getsockname
-getsockopt
-__get_thread
-gettid
-gettimeofday
-__get_tls
-getuid
-getusershell
-getutent
-getwc
-getwchar
-getxattr
-gmtime
-gmtime64
-gmtime64_r
-gmtime_r
-__gnu_ldivmod_helper
-__gnu_uldivmod_helper
-__gnu_Unwind_Backtrace
-__gnu_unwind_execute
-__gnu_Unwind_Find_exidx
-__gnu_Unwind_ForcedUnwind
-__gnu_unwind_frame
-__gnu_Unwind_RaiseException
-__gnu_Unwind_Restore_VFP
-__gnu_Unwind_Restore_VFP_D
-__gnu_Unwind_Restore_VFP_D_16_to_31
-__gnu_Unwind_Restore_WMMXC
-__gnu_Unwind_Restore_WMMXD
-__gnu_Unwind_Resume
-__gnu_Unwind_Resume_or_Rethrow
-__gnu_Unwind_Save_VFP
-__gnu_Unwind_Save_VFP_D
-__gnu_Unwind_Save_VFP_D_16_to_31
-__gnu_Unwind_Save_WMMXC
-__gnu_Unwind_Save_WMMXD
-grantpt
-__gtdf2
-herror
-__hostalias
-hstrerror
-htonl
-htons
-if_indextoname
-if_nametoindex
-imaxabs
-imaxdiv
-index
-inet_addr
-inet_aton
-inet_lnaof
-inet_makeaddr
-inet_netof
-inet_network
-inet_nsap_addr
-inet_nsap_ntoa
-inet_ntoa
-inet_ntop
-inet_pton
-initgroups
-init_module
-initstate
-inotify_add_watch
-inotify_init
-inotify_init1
-inotify_rm_watch
-insque
-ioctl
-__ioctl
-isalnum
-isalnum_l
-isalpha
-isalpha_l
-isascii
-isatty
-isblank
-isblank_l
-iscntrl
-iscntrl_l
-isdigit
-isdigit_l
-isfinite
-__isfinite
-isfinitef
-__isfinitef
-isfinitel
-__isfinitel
-isgraph
-isgraph_l
-isinf
-__isinf
-isinff
-__isinff
-isinfl
-__isinfl
-islower
-islower_l
-isnan
-__isnan
-isnanf
-__isnanf
-isnanl
-__isnanl
-isnormal
-__isnormal
-isnormalf
-__isnormalf
-isnormall
-__isnormall
-isprint
-isprint_l
-ispunct
-ispunct_l
-issetugid
-isspace
-isspace_l
-isupper
-isupper_l
-iswalnum
-iswalnum_l
-iswalpha
-iswalpha_l
-iswblank
-iswblank_l
-iswcntrl
-iswcntrl_l
-iswctype
-iswctype_l
-iswdigit
-iswdigit_l
-iswgraph
-iswgraph_l
-iswlower
-iswlower_l
-iswprint
-iswprint_l
-iswpunct
-iswpunct_l
-iswspace
-iswspace_l
-iswupper
-iswupper_l
-iswxdigit
-iswxdigit_l
-isxdigit
-isxdigit_l
-jrand48
-kill
-killpg
-klogctl
-labs
-lchown
-ldexp
-ldiv
-__ledf2
-lfind
-lgetxattr
-__libc_current_sigrtmax
-__libc_current_sigrtmin
-__libc_init
-link
-linkat
-listen
-listxattr
-llabs
-lldiv
-llistxattr
-__llseek
-localeconv
-localtime
-localtime64
-localtime64_r
-localtime_r
-__loc_aton
-__loc_ntoa
-longjmp
-_longjmp
-lrand48
-lremovexattr
-lsearch
-lseek
-lseek64
-lsetxattr
-__lshrdi3
-lstat
-lstat64
-__ltdf2
-madvise
-mallinfo
-malloc
-malloc_usable_size
-mbrlen
-mbrtoc16
-mbrtoc32
-mbrtowc
-mbsinit
-mbsnrtowcs
-mbsrtowcs
-mbstowcs
-mbtowc
-memalign
-memccpy
-memchr
-memcmp
-memcpy
-__memcpy_chk
-memmem
-memmove
-__memmove_chk
-memrchr
-memset
-_memset16
-_memset32
-__memset_chk
-memswap
-mincore
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mknodat
-mkstemp
-mkstemp64
-mkstemps
-mktemp
-mktime
-mktime64
-mktime_tz
-mlock
-mlockall
-mmap
-__mmap2
-mmap64
-__moddi3
-mount
-mprotect
-mrand48
-mremap
-msync
-__muldf3
-__muldi3
-__mulsf3
-munlock
-munlockall
-munmap
-nanosleep
-__nedf2
-newlocale
-nftw
-nftw64
-nice
-nrand48
-nsdispatch
-ntohl
-ntohs
-open
-__open
-__open_2
-open64
-openat
-__openat
-__openat_2
-openat64
-opendir
-openlog
-pathconf
-pause
-__p_cdname
-__p_cdnname
-__p_class
-pclose
-perror
-personality
-__p_fqname
-__p_fqnname
-pipe
-pipe2
-poll
-__popcountsi2
-popen
-__p_option
-posix_fadvise
-posix_fadvise64
-posix_fallocate
-posix_fallocate64
-posix_memalign
-posix_openpt
-ppoll
-__ppoll
-__p_query
-__p_rcode
-prctl
-pread
-pread64
-printf
-prlimit
-prlimit64
-__p_secstodate
-pselect
-__pselect6
-psiginfo
-psignal
-pthread_atfork
-pthread_attr_destroy
-pthread_attr_getdetachstate
-pthread_attr_getguardsize
-pthread_attr_getschedparam
-pthread_attr_getschedpolicy
-pthread_attr_getscope
-pthread_attr_getstack
-pthread_attr_getstackaddr
-pthread_attr_getstacksize
-pthread_attr_init
-pthread_attr_setdetachstate
-pthread_attr_setguardsize
-pthread_attr_setschedparam
-pthread_attr_setschedpolicy
-pthread_attr_setscope
-pthread_attr_setstack
-pthread_attr_setstackaddr
-pthread_attr_setstacksize
-__pthread_cleanup_pop
-__pthread_cleanup_push
-pthread_condattr_destroy
-pthread_condattr_getclock
-pthread_condattr_getpshared
-pthread_condattr_init
-pthread_condattr_setclock
-pthread_condattr_setpshared
-pthread_cond_broadcast
-pthread_cond_destroy
-pthread_cond_init
-pthread_cond_signal
-pthread_cond_timedwait
-pthread_cond_timedwait_monotonic
-pthread_cond_timedwait_monotonic_np
-pthread_cond_timedwait_relative_np
-pthread_cond_timeout_np
-pthread_cond_wait
-pthread_create
-pthread_detach
-pthread_equal
-pthread_exit
-pthread_getattr_np
-pthread_getcpuclockid
-pthread_getschedparam
-pthread_getspecific
-__pthread_gettid
-pthread_gettid_np
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_mutexattr_destroy
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_mutex_destroy
-pthread_mutex_init
-pthread_mutex_lock
-pthread_mutex_lock_timeout_np
-pthread_mutex_timedlock
-pthread_mutex_trylock
-pthread_mutex_unlock
-pthread_once
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setpshared
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_self
-pthread_setname_np
-pthread_setschedparam
-pthread_setspecific
-pthread_sigmask
-__p_time
-ptrace
-__ptrace
-ptsname
-ptsname_r
-__p_type
-putc
-putchar
-putchar_unlocked
-putc_unlocked
-putenv
-__putlong
-puts
-__putshort
-pututline
-putw
-putwc
-putwchar
-pvalloc
-pwrite
-pwrite64
-qsort
-quick_exit
-raise
-rand
-random
-rand_r
-read
-readahead
-__read_chk
-readdir
-readdir64
-readdir64_r
-readdir_r
-readlink
-readlinkat
-readv
-realloc
-realpath
-reboot
-__reboot
-recv
-recvfrom
-__recvfrom_chk
-recvmmsg
-recvmsg
-regcomp
-regerror
-regexec
-regfree
-remove
-removexattr
-remque
-rename
-renameat
-__res_close
-__res_dnok
-__res_hnok
-__res_hostalias
-res_init
-__res_isourserver
-__res_mailok
-res_mkquery
-__res_nameinquery
-__res_nclose
-__res_ninit
-__res_nmkquery
-__res_nquery
-__res_nquerydomain
-__res_nsearch
-__res_nsend
-_resolv_delete_cache_for_net
-_resolv_flush_cache_for_net
-_resolv_set_nameservers_for_net
-__res_ownok
-__res_queriesmatch
-res_query
-__res_querydomain
-__res_randomid
-res_search
-__res_send
-__res_send_setqhook
-__res_send_setrhook
-__restore_core_regs
-restore_core_regs
-rewind
-rewinddir
-rmdir
-__rt_sigaction
-__rt_sigpending
-__rt_sigprocmask
-__rt_sigsuspend
-__rt_sigtimedwait
-sbrk
-scandir
-scandir64
-scanf
-__sched_cpualloc
-__sched_cpucount
-__sched_cpufree
-__sched_getaffinity
-sched_getaffinity
-sched_getcpu
-sched_getparam
-sched_get_priority_max
-sched_get_priority_min
-sched_getscheduler
-sched_rr_get_interval
-sched_setaffinity
-sched_setparam
-sched_setscheduler
-sched_yield
-seed48
-select
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-send
-sendfile
-sendfile64
-sendmmsg
-sendmsg
-sendto
-setbuf
-setbuffer
-setegid
-setenv
-__set_errno
-seteuid
-setfsgid
-setfsuid
-setgid
-setgroups
-setitimer
-setjmp
-_setjmp
-setlinebuf
-setlocale
-setlogmask
-setmntent
-setns
-setpgid
-setpgrp
-setpriority
-setprogname
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setrlimit64
-setservent
-setsid
-setsockopt
-setstate
-__set_thread_area
-__set_tid_address
-settimeofday
-__set_tls
-setuid
-setusershell
-setutent
-setvbuf
-setxattr
-SHA1Final
-SHA1Init
-SHA1Transform
-SHA1Update
-shutdown
-sigaction
-__sigaction
-sigaddset
-sigaltstack
-sigblock
-sigdelset
-sigemptyset
-sigfillset
-siginterrupt
-sigismember
-siglongjmp
-signal
-signalfd
-sigpending
-sigprocmask
-sigsetjmp
-sigsetmask
-sigsuspend
-sigwait
-sleep
-snprintf
-__snprintf_chk
-socket
-__socket
-socketpair
-splice
-sprintf
-__sprintf_chk
-srand
-srand48
-srandom
-__srefill
-__srget
-sscanf
-__stack_chk_fail
-stat
-stat64
-statfs
-statfs64
-__statfs64
-statvfs
-statvfs64
-stpcpy
-__stpcpy_chk
-stpncpy
-__stpncpy_chk
-__stpncpy_chk2
-strcasecmp
-strcasestr
-strcat
-__strcat_chk
-strchr
-__strchr_chk
-strcmp
-strcoll
-strcoll_l
-strcpy
-__strcpy_chk
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strftime_l
-strlcat
-__strlcat_chk
-strlcpy
-__strlcpy_chk
-strlen
-__strlen_chk
-strncasecmp
-strncat
-__strncat_chk
-strncmp
-strncpy
-__strncpy_chk
-__strncpy_chk2
-strndup
-strnlen
-strntoimax
-strntoumax
-strpbrk
-strptime
-strrchr
-__strrchr_chk
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtof
-strtoimax
-strtok
-strtok_r
-strtol
-strtold
-strtold_l
-strtoll
-strtoll_l
-strtoq
-strtotimeval
-strtoul
-strtoull
-strtoull_l
-strtoumax
-strtouq
-strxfrm
-strxfrm_l
-__subdf3
-__subsf3
-swapoff
-swapon
-__swbuf
-swprintf
-swscanf
-__swsetup
-symlink
-symlinkat
-__sym_ntop
-__sym_ntos
-__sym_ston
-sync
-syscall
-sysconf
-sysinfo
-syslog
-system
-__system_properties_init
-__system_property_add
-__system_property_area_init
-__system_property_find
-__system_property_find_nth
-__system_property_foreach
-__system_property_get
-__system_property_read
-__system_property_serial
-__system_property_set
-__system_property_set_filename
-__system_property_update
-__system_property_wait_any
-sysv_signal
-tcdrain
-tcflow
-tcflush
-tcgetattr
-tcgetpgrp
-tcgetsid
-tcsendbreak
-tcsetattr
-tcsetpgrp
-tdelete
-tdestroy
-tee
-tempnam
-tfind
-tgkill
-time
-timegm
-timegm64
-timelocal
-timelocal64
-__timer_create
-timer_create
-__timer_delete
-timer_delete
-timerfd_create
-timerfd_gettime
-timerfd_settime
-__timer_getoverrun
-timer_getoverrun
-__timer_gettime
-timer_gettime
-__timer_settime
-timer_settime
-times
-tkill
-tmpfile
-tmpnam
-toascii
-tolower
-_tolower
-tolower_l
-toupper
-_toupper
-toupper_l
-towlower
-towlower_l
-towupper
-towupper_l
-truncate
-truncate64
-__truncdfsf2
-tsearch
-ttyname
-ttyname_r
-twalk
-tzset
-__udivdi3
-__udivsi3
-umask
-__umask_chk
-__umoddi3
-umount
-umount2
-uname
-ungetc
-ungetwc
-unlink
-unlinkat
-unlockpt
-__unorddf2
-__unordsf2
-unsetenv
-unshare
-___Unwind_Backtrace
-_Unwind_Backtrace
-_Unwind_Complete
-_Unwind_DeleteException
-___Unwind_ForcedUnwind
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-___Unwind_RaiseException
-_Unwind_RaiseException
-___Unwind_Resume
-_Unwind_Resume
-___Unwind_Resume_or_Rethrow
-_Unwind_Resume_or_Rethrow
-_Unwind_VRS_Get
-_Unwind_VRS_Pop
-_Unwind_VRS_Set
-uselocale
-usleep
-utime
-utimensat
-utimes
-utmpname
-valloc
-vasprintf
-vdprintf
-verr
-verrx
-vfdprintf
-vfork
-vfprintf
-vfscanf
-vfwprintf
-vfwscanf
-vmsplice
-vprintf
-vscanf
-vsnprintf
-__vsnprintf_chk
-vsprintf
-__vsprintf_chk
-vsscanf
-vswprintf
-vswscanf
-vsyslog
-vwarn
-vwarnx
-vwprintf
-vwscanf
-wait
-wait3
-wait4
-__wait4
-waitid
-__waitid
-waitpid
-warn
-warnx
-wcpcpy
-wcpncpy
-wcrtomb
-wcscasecmp
-wcscat
-wcschr
-wcscmp
-wcscoll
-wcscoll_l
-wcscpy
-wcscspn
-wcsdup
-wcsftime
-wcslcat
-wcslcpy
-wcslen
-wcsncasecmp
-wcsncat
-wcsncmp
-wcsncpy
-wcsnlen
-wcsnrtombs
-wcspbrk
-wcsrchr
-wcsrtombs
-wcsspn
-wcsstr
-wcstod
-wcstof
-wcstoimax
-wcstok
-wcstol
-wcstold
-wcstold_l
-wcstoll
-wcstoll_l
-wcstombs
-wcstoul
-wcstoull
-wcstoull_l
-wcstoumax
-wcswcs
-wcswidth
-wcsxfrm
-wcsxfrm_l
-wctob
-wctomb
-wctype
-wctype_l
-wcwidth
-wmemchr
-wmemcmp
-wmemcpy
-wmemmove
-wmemset
-wprintf
-write
-writev
-wscanf
-_Z16__libc_init_vdsov
diff --git a/ndk/platforms/android-21/arch-p/symbols/libc.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libc.so.variables.txt
deleted file mode 100644
index 954448a..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libc.so.variables.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-__bionic_brk
-__bionic_libgcc_compat_symbols
-_ctype_
-daylight
-__dso_handle
-environ
-__isthreaded
-optarg
-opterr
-optind
-optopt
-optreset
-__page_shift
-__page_size
-__p_class_syms
-__popcount_tab
-__progname
-__p_type_syms
-__sF
-__stack_chk_guard
-sys_siglist
-sys_signame
-__system_property_area__
-timezone
-_tolower_tab_
-_toupper_tab_
-tzname
diff --git a/ndk/platforms/android-21/arch-p/symbols/libdl.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libdl.so.functions.txt
deleted file mode 100644
index bc295eb..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libdl.so.functions.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-android_dlopen_ext
-android_get_LD_LIBRARY_PATH
-android_update_LD_LIBRARY_PATH
-dladdr
-dlclose
-dlerror
-dl_iterate_phdr
-dlopen
-dlsym
-dl_unwind_find_exidx
diff --git a/ndk/platforms/android-21/arch-p/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libjnigraphics.so.functions.txt
deleted file mode 100644
index 61612d4..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libjnigraphics.so.functions.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-AndroidBitmap_getInfo
-AndroidBitmap_lockPixels
-AndroidBitmap_unlockPixels
diff --git a/ndk/platforms/android-21/arch-p/symbols/liblog.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/liblog.so.functions.txt
deleted file mode 100644
index d7a4b72..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/liblog.so.functions.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-__android_log_assert
-__android_log_btwrite
-__android_log_buf_print
-__android_log_buf_write
-__android_log_bwrite
-__android_log_dev_available
-__android_log_print
-__android_log_vprint
-__android_log_write
diff --git a/ndk/platforms/android-21/arch-p/symbols/libm.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libm.so.functions.txt
deleted file mode 100644
index 2aa8c6c..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libm.so.functions.txt
+++ /dev/null
@@ -1,245 +0,0 @@
-acos
-acosf
-acosh
-acoshf
-acoshl
-acosl
-__aeabi_cfcmpeq
-__aeabi_cfcmple
-__aeabi_cfrcmple
-__aeabi_d2lz
-__aeabi_d2uiz
-__aeabi_d2ulz
-__aeabi_f2lz
-__aeabi_f2ulz
-__aeabi_fcmpeq
-__aeabi_fcmpge
-__aeabi_fcmpgt
-__aeabi_fcmple
-__aeabi_fcmplt
-asin
-asinf
-asinh
-asinhf
-asinhl
-asinl
-atan
-atan2
-atan2f
-atan2l
-atanf
-atanh
-atanhf
-atanhl
-atanl
-cabsl
-cbrt
-cbrtf
-cbrtl
-ceil
-ceilf
-ceill
-__cmpsf2
-copysign
-copysignf
-copysignl
-cos
-cosf
-cosh
-coshf
-coshl
-cosl
-cprojl
-csqrtl
-drem
-dremf
-__eqsf2
-erf
-erfc
-erfcf
-erfcl
-erff
-erfl
-exp
-exp2
-exp2f
-exp2l
-expf
-expl
-expm1
-expm1f
-expm1l
-fabs
-fabsf
-fabsl
-fdim
-fdimf
-fdiml
-feclearexcept
-fedisableexcept
-feenableexcept
-fegetenv
-fegetexcept
-fegetexceptflag
-fegetround
-feholdexcept
-feraiseexcept
-fesetenv
-fesetexceptflag
-fesetround
-fetestexcept
-feupdateenv
-finite
-finitef
-__fixdfdi
-__fixsfdi
-__fixunsdfdi
-__fixunsdfsi
-__fixunssfdi
-floor
-floorf
-floorl
-fma
-fmaf
-fmal
-fmax
-fmaxf
-fmaxl
-fmin
-fminf
-fminl
-fmod
-fmodf
-fmodl
-frexp
-frexpf
-frexpl
-gamma
-gammaf
-gammaf_r
-gamma_r
-__gesf2
-__gtsf2
-hypot
-hypotf
-hypotl
-ilogb
-ilogbf
-ilogbl
-j0
-j0f
-j1
-j1f
-jn
-jnf
-ldexpf
-ldexpl
-__lesf2
-lgamma
-lgammaf
-lgammaf_r
-lgammal
-lgamma_r
-llrint
-llrintf
-llrintl
-llround
-llroundf
-llroundl
-log
-log10
-log10f
-log10l
-log1p
-log1pf
-log1pl
-log2
-log2f
-log2l
-logb
-logbf
-logbl
-logf
-logl
-lrint
-lrintf
-lrintl
-lround
-lroundf
-lroundl
-__ltsf2
-modf
-modff
-modfl
-nan
-nanf
-nanl
-nearbyint
-nearbyintf
-nearbyintl
-__nesf2
-nextafter
-nextafterf
-nextafterl
-nexttoward
-nexttowardf
-nexttowardl
-pow
-powf
-powl
-remainder
-remainderf
-remainderl
-remquo
-remquof
-remquol
-rint
-rintf
-rintl
-round
-roundf
-roundl
-scalb
-scalbf
-scalbln
-scalblnf
-scalblnl
-scalbn
-scalbnf
-scalbnl
-__signbit
-__signbitf
-__signbitl
-significand
-significandf
-significandl
-sin
-sincos
-sincosf
-sincosl
-sinf
-sinh
-sinhf
-sinhl
-sinl
-sqrt
-sqrtf
-sqrtl
-tan
-tanf
-tanh
-tanhf
-tanhl
-tanl
-tgamma
-tgammaf
-tgammal
-trunc
-truncf
-truncl
-y0
-y0f
-y1
-y1f
-yn
-ynf
diff --git a/ndk/platforms/android-21/arch-p/symbols/libm.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libm.so.variables.txt
deleted file mode 100644
index a1b63fc..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libm.so.variables.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-__fe_dfl_env
-signgam
diff --git a/ndk/platforms/android-21/arch-p/symbols/libmediandk.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libmediandk.so.functions.txt
deleted file mode 100644
index cdf1681..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libmediandk.so.functions.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-AMediaCodec_configure
-AMediaCodec_createCodecByName
-AMediaCodec_createDecoderByType
-AMediaCodec_createEncoderByType
-AMediaCodecCryptoInfo_delete
-AMediaCodecCryptoInfo_getClearBytes
-AMediaCodecCryptoInfo_getEncryptedBytes
-AMediaCodecCryptoInfo_getIV
-AMediaCodecCryptoInfo_getKey
-AMediaCodecCryptoInfo_getMode
-AMediaCodecCryptoInfo_getNumSubSamples
-AMediaCodecCryptoInfo_new
-AMediaCodec_delete
-AMediaCodec_dequeueInputBuffer
-AMediaCodec_dequeueOutputBuffer
-AMediaCodec_flush
-AMediaCodec_getInputBuffer
-AMediaCodec_getOutputBuffer
-AMediaCodec_getOutputFormat
-AMediaCodec_queueInputBuffer
-AMediaCodec_queueSecureInputBuffer
-AMediaCodec_releaseOutputBuffer
-AMediaCodec_releaseOutputBufferAtTime
-AMediaCodec_start
-AMediaCodec_stop
-AMediaCrypto_delete
-AMediaCrypto_isCryptoSchemeSupported
-AMediaCrypto_new
-AMediaCrypto_requiresSecureDecoderComponent
-AMediaDrm_closeSession
-AMediaDrm_createByUUID
-AMediaDrm_decrypt
-AMediaDrm_encrypt
-AMediaDrm_getKeyRequest
-AMediaDrm_getPropertyByteArray
-AMediaDrm_getPropertyString
-AMediaDrm_getProvisionRequest
-AMediaDrm_getSecureStops
-AMediaDrm_isCryptoSchemeSupported
-AMediaDrm_openSession
-AMediaDrm_provideKeyResponse
-AMediaDrm_provideProvisionResponse
-AMediaDrm_queryKeyStatus
-AMediaDrm_release
-AMediaDrm_releaseSecureStops
-AMediaDrm_removeKeys
-AMediaDrm_restoreKeys
-AMediaDrm_setOnEventListener
-AMediaDrm_setPropertyByteArray
-AMediaDrm_setPropertyString
-AMediaDrm_sign
-AMediaDrm_verify
-AMediaExtractor_advance
-AMediaExtractor_delete
-AMediaExtractor_getPsshInfo
-AMediaExtractor_getSampleCryptoInfo
-AMediaExtractor_getSampleFlags
-AMediaExtractor_getSampleTime
-AMediaExtractor_getSampleTrackIndex
-AMediaExtractor_getTrackCount
-AMediaExtractor_getTrackFormat
-AMediaExtractor_new
-AMediaExtractor_readSampleData
-AMediaExtractor_seekTo
-AMediaExtractor_selectTrack
-AMediaExtractor_setDataSource
-AMediaExtractor_setDataSourceFd
-AMediaExtractor_unselectTrack
-AMediaFormat_delete
-AMediaFormat_getBuffer
-AMediaFormat_getFloat
-AMediaFormat_getInt32
-AMediaFormat_getInt64
-AMediaFormat_getSize
-AMediaFormat_getString
-AMediaFormat_new
-AMediaFormat_setBuffer
-AMediaFormat_setFloat
-AMediaFormat_setInt32
-AMediaFormat_setInt64
-AMediaFormat_setString
-AMediaFormat_toString
-AMediaMuxer_addTrack
-AMediaMuxer_delete
-AMediaMuxer_new
-AMediaMuxer_setLocation
-AMediaMuxer_setOrientationHint
-AMediaMuxer_start
-AMediaMuxer_stop
-AMediaMuxer_writeSampleData
-__popcountdi2
diff --git a/ndk/platforms/android-21/arch-p/symbols/libmediandk.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libmediandk.so.variables.txt
deleted file mode 100644
index 6b0fbd5..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libmediandk.so.variables.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-AMEDIAFORMAT_KEY_AAC_PROFILE
-AMEDIAFORMAT_KEY_BIT_RATE
-AMEDIAFORMAT_KEY_CHANNEL_COUNT
-AMEDIAFORMAT_KEY_CHANNEL_MASK
-AMEDIAFORMAT_KEY_COLOR_FORMAT
-AMEDIAFORMAT_KEY_DURATION
-AMEDIAFORMAT_KEY_FLAC_COMPRESSION_LEVEL
-AMEDIAFORMAT_KEY_FRAME_RATE
-AMEDIAFORMAT_KEY_HEIGHT
-AMEDIAFORMAT_KEY_I_FRAME_INTERVAL
-AMEDIAFORMAT_KEY_IS_ADTS
-AMEDIAFORMAT_KEY_IS_AUTOSELECT
-AMEDIAFORMAT_KEY_IS_DEFAULT
-AMEDIAFORMAT_KEY_IS_FORCED_SUBTITLE
-AMEDIAFORMAT_KEY_LANGUAGE
-AMEDIAFORMAT_KEY_MAX_HEIGHT
-AMEDIAFORMAT_KEY_MAX_INPUT_SIZE
-AMEDIAFORMAT_KEY_MAX_WIDTH
-AMEDIAFORMAT_KEY_MIME
-AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP
-AMEDIAFORMAT_KEY_REPEAT_PREVIOUS_FRAME_AFTER
-AMEDIAFORMAT_KEY_SAMPLE_RATE
-AMEDIAFORMAT_KEY_STRIDE
-AMEDIAFORMAT_KEY_WIDTH
diff --git a/ndk/platforms/android-21/arch-p/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libstdc++.so.functions.txt
deleted file mode 100644
index 3924a3b..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libstdc++.so.functions.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-android_set_abort_message
-__cxa_guard_abort
-__cxa_guard_acquire
-__cxa_guard_release
-__cxa_pure_virtual
-_ZdaPv
-_ZdaPvRKSt9nothrow_t
-_ZdlPv
-_ZdlPvRKSt9nothrow_t
-_Znaj
-_ZnajRKSt9nothrow_t
-_Znam
-_ZnamRKSt9nothrow_t
-_Znwj
-_ZnwjRKSt9nothrow_t
-_Znwm
-_ZnwmRKSt9nothrow_t
diff --git a/ndk/platforms/android-21/arch-p/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libstdc++.so.variables.txt
deleted file mode 100644
index 62e9acd..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libstdc++.so.variables.txt
+++ /dev/null
@@ -1 +0,0 @@
-_ZSt7nothrow
diff --git a/ndk/platforms/android-21/arch-p/symbols/libz.so.functions.txt b/ndk/platforms/android-21/arch-p/symbols/libz.so.functions.txt
deleted file mode 100644
index a007fa3..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libz.so.functions.txt
+++ /dev/null
@@ -1,130 +0,0 @@
-adler32
-adler32_combine
-adler32_combine64
-__aeabi_unwind_cpp_pr0
-__aeabi_unwind_cpp_pr1
-__aeabi_unwind_cpp_pr2
-compress
-compress2
-compressBound
-crc32
-crc32_combine
-crc32_combine64
-deflate
-deflateBound
-deflateCopy
-deflateEnd
-deflateInit_
-deflateInit2_
-deflateParams
-deflatePending
-deflatePrime
-deflateReset
-deflateResetKeep
-deflateSetDictionary
-deflateSetHeader
-deflateTune
-get_crc_table
-__gnu_Unwind_Backtrace
-__gnu_unwind_execute
-__gnu_Unwind_ForcedUnwind
-__gnu_unwind_frame
-__gnu_Unwind_RaiseException
-__gnu_Unwind_Restore_VFP
-__gnu_Unwind_Restore_VFP_D
-__gnu_Unwind_Restore_VFP_D_16_to_31
-__gnu_Unwind_Restore_WMMXC
-__gnu_Unwind_Restore_WMMXD
-__gnu_Unwind_Resume
-__gnu_Unwind_Resume_or_Rethrow
-__gnu_Unwind_Save_VFP
-__gnu_Unwind_Save_VFP_D
-__gnu_Unwind_Save_VFP_D_16_to_31
-__gnu_Unwind_Save_WMMXC
-__gnu_Unwind_Save_WMMXD
-gzbuffer
-gzclearerr
-gzclose
-gzclose_r
-gzclose_w
-gzdirect
-gzdopen
-gzeof
-gzerror
-gz_error
-gzflush
-gzgetc
-gzgetc_
-gzgets
-gzoffset
-gzoffset64
-gzopen
-gzopen64
-gzprintf
-gzputc
-gzputs
-gzread
-gzrewind
-gzseek
-gzseek64
-gzsetparams
-gztell
-gztell64
-gzungetc
-gzvprintf
-gzwrite
-inflate
-inflateBack
-inflateBackEnd
-inflateBackInit_
-inflateCopy
-inflateEnd
-inflate_fast
-inflateGetDictionary
-inflateGetHeader
-inflateInit_
-inflateInit2_
-inflateMark
-inflatePrime
-inflateReset
-inflateReset2
-inflateResetKeep
-inflateSetDictionary
-inflateSync
-inflateSyncPoint
-inflate_table
-inflateUndermine
-__restore_core_regs
-restore_core_regs
-_tr_align
-_tr_flush_bits
-_tr_flush_block
-_tr_init
-_tr_stored_block
-_tr_tally
-uncompress
-___Unwind_Backtrace
-_Unwind_Backtrace
-_Unwind_Complete
-_Unwind_DeleteException
-___Unwind_ForcedUnwind
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-___Unwind_RaiseException
-_Unwind_RaiseException
-___Unwind_Resume
-_Unwind_Resume
-___Unwind_Resume_or_Rethrow
-_Unwind_Resume_or_Rethrow
-_Unwind_VRS_Get
-_Unwind_VRS_Pop
-_Unwind_VRS_Set
-zcalloc
-zcfree
-zError
-zlibCompileFlags
-zlibVersion
diff --git a/ndk/platforms/android-21/arch-p/symbols/libz.so.variables.txt b/ndk/platforms/android-21/arch-p/symbols/libz.so.variables.txt
deleted file mode 100644
index b09771a..0000000
--- a/ndk/platforms/android-21/arch-p/symbols/libz.so.variables.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-deflate_copyright
-_dist_code
-inflate_copyright
-_length_code
-z_errmsg
diff --git a/ndk/platforms/android-3/header-patches/include/machine/setjmp.h b/ndk/platforms/android-21/include/sys/procfs.h
similarity index 71%
rename from ndk/platforms/android-3/header-patches/include/machine/setjmp.h
rename to ndk/platforms/android-21/include/sys/procfs.h
index ff58ef1..7ef5023 100644
--- a/ndk/platforms/android-3/header-patches/include/machine/setjmp.h
+++ b/ndk/platforms/android-21/include/sys/procfs.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2014 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,14 +26,29 @@
  * SUCH DAMAGE.
  */
 
-/*
- * machine/setjmp.h: machine dependent setjmp-related information.
- */
+#ifndef _SYS_PROCFS_H_
+#define _SYS_PROCFS_H_
 
-/* _JBLEN is the size of a jmp_buf in longs.
- * Do not modify this value or you will break the ABI !
- *
- * This value comes from the mips machine/setjmp.h header
- * because it has the biggest jump buffer length.
- */
-#define _JBLEN  1024 /* 157 */
+#include <sys/cdefs.h>
+#include <sys/ucontext.h>
+
+__BEGIN_DECLS
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[NGREG];
+
+typedef fpregset_t elf_fpregset_t;
+
+#if defined(__i386__)
+typedef struct user_fpxregs_struct elf_fpxregset_t;
+#endif
+
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+typedef pid_t lwpid_t;
+typedef void* psaddr_t;
+
+__END_DECLS
+
+#endif /* _SYS_PROCFS_H_ */
diff --git a/ndk/platforms/android-21/include/sys/ucontext.h b/ndk/platforms/android-21/include/sys/ucontext.h
index dd2a0bb..9e3c653 100644
--- a/ndk/platforms/android-21/include/sys/ucontext.h
+++ b/ndk/platforms/android-21/include/sys/ucontext.h
@@ -59,6 +59,7 @@
 
 typedef int greg_t;
 typedef greg_t gregset_t[NGREG];
+typedef struct user_fpregs fpregset_t;
 
 #include <asm/sigcontext.h>
 typedef struct sigcontext mcontext_t;
@@ -81,6 +82,7 @@
 #define NGREG 34 /* x0..x30 + sp + pc + pstate */
 typedef unsigned long greg_t;
 typedef greg_t gregset_t[NGREG];
+typedef struct user_fpsimd_struct fpregset_t;
 
 #include <asm/sigcontext.h>
 typedef struct sigcontext mcontext_t;
@@ -180,6 +182,25 @@
   } fp_r;
 } fpregset_t;
 
+#ifdef __LP64__
+typedef struct {
+  gregset_t gregs;
+  fpregset_t fpregs;
+  greg_t mdhi;
+  greg_t hi1;
+  greg_t hi2;
+  greg_t hi3;
+  greg_t mdlo;
+  greg_t lo1;
+  greg_t lo2;
+  greg_t lo3;
+  greg_t pc;
+  uint32_t fpc_csr;
+  uint32_t used_math;
+  uint32_t dsp;
+  uint32_t reserved;
+} mcontext_t;
+#else
 typedef struct {
   unsigned regmask;
   unsigned status;
@@ -200,6 +221,7 @@
   unsigned long hi3;
   unsigned long lo3;
 } mcontext_t;
+#endif
 
 typedef struct ucontext {
   unsigned long uc_flags;
@@ -209,10 +231,6 @@
   sigset_t uc_sigmask;
 } ucontext_t;
 
-#elif defined(__mips64__)
-
-#error TODO
-
 #elif defined(__x86_64__)
 
 enum {
diff --git a/ndk/platforms/android-21/include/sys/user.h b/ndk/platforms/android-21/include/sys/user.h
index c969726..3312981 100644
--- a/ndk/platforms/android-21/include/sys/user.h
+++ b/ndk/platforms/android-21/include/sys/user.h
@@ -30,11 +30,13 @@
 #define _SYS_USER_H_
 
 #include <sys/cdefs.h>
-#include <limits.h> /* For PAGE_SIZE. */
 #include <stddef.h> /* For size_t. */
 
 __BEGIN_DECLS
 
+#define PAGE_SIZE 4096
+#define PAGE_MASK (~(PAGE_SIZE - 1))
+
 #if __i386__
 
 struct user_fpregs_struct {
@@ -47,7 +49,7 @@
   long fos;
   long st_space[20];
 };
-struct user_fxsr_struct {
+struct user_fpxregs_struct {
   unsigned short cwd;
   unsigned short swd;
   unsigned short twd;
@@ -166,10 +168,6 @@
 };
 
 #elif defined(__mips__)
-struct user_regs_struct
-{
-  unsigned long regs[180 / sizeof(unsigned long) + 64];
-};
 
 struct user {
   unsigned long regs[180 / sizeof(unsigned long) + 64];
@@ -234,7 +232,17 @@
 
 #elif defined(__aarch64__)
 
-// There are no user structures for 64 bit arm.
+struct user_regs_struct {
+  uint64_t regs[31];
+  uint64_t sp;
+  uint64_t pc;
+  uint64_t pstate;
+};
+struct user_fpsimd_struct {
+  __uint128_t vregs[32];
+  uint32_t fpsr;
+  uint32_t fpcr;
+};
 
 #else
 
diff --git a/ndk/platforms/android-M/include/android/multinetwork.h b/ndk/platforms/android-23/include/android/multinetwork.h
similarity index 100%
rename from ndk/platforms/android-M/include/android/multinetwork.h
rename to ndk/platforms/android-23/include/android/multinetwork.h
diff --git a/ndk/platforms/android-M/include/android/trace.h b/ndk/platforms/android-23/include/android/trace.h
similarity index 100%
rename from ndk/platforms/android-M/include/android/trace.h
rename to ndk/platforms/android-23/include/android/trace.h
diff --git a/ndk/platforms/android-3/arch-arm/include/fenv.h b/ndk/platforms/android-3/arch-arm/include/fenv.h
index a96f99e..1263960 100644
--- a/ndk/platforms/android-3/arch-arm/include/fenv.h
+++ b/ndk/platforms/android-3/arch-arm/include/fenv.h
@@ -66,14 +66,50 @@
 
 static __inline int fegetenv(fenv_t* __envp) {
   fenv_t _fpscr;
+#if !defined(__SOFTFP__)
+  #if !defined(__thumb__) || defined(__thumb2__)
   __asm__ __volatile__("vmrs %0,fpscr" : "=r" (_fpscr));
+  #else
+   /* Switching from thumb1 to arm, do vmrs, then switch back */
+  __asm__ __volatile__(
+    ".balign 4           \n\t"
+    "mov     ip, pc      \n\t"
+    "bx      ip          \n\t"
+    ".arm                \n\t"
+    "vmrs    %0, fpscr   \n\t"
+    "add     ip, pc, #1  \n\t"
+    "bx      ip          \n\t"
+    ".thumb              \n\t"
+    : "=r" (_fpscr) : : "ip");
+  #endif
+#else
+  _fpscr = 0;
+#endif
   *__envp = _fpscr;
   return 0;
 }
 
 static __inline int fesetenv(const fenv_t* __envp) {
   fenv_t _fpscr = *__envp;
+#if !defined(__SOFTFP__)
+  #if !defined(__thumb__) || defined(__thumb2__)
   __asm__ __volatile__("vmsr fpscr,%0" : :"ri" (_fpscr));
+  #else
+   /* Switching from thumb1 to arm, do vmsr, then switch back */
+  __asm__ __volatile__(
+    ".balign 4           \n\t"
+    "mov     ip, pc      \n\t"
+    "bx      ip          \n\t"
+    ".arm                \n\t"
+    "vmsr    fpscr, %0   \n\t"
+    "add     ip, pc, #1  \n\t"
+    "bx      ip          \n\t"
+    ".thumb              \n\t"
+    : : "ri" (_fpscr) : "ip");
+  #endif
+#else
+  _fpscr = _fpscr;
+#endif
   return 0;
 }
 
diff --git a/ndk/platforms/android-3/arch-arm/symbols/libthread_db.so.functions.txt b/ndk/platforms/android-3/arch-arm/symbols/libthread_db.so.functions.txt
deleted file mode 100644
index 473500d..0000000
--- a/ndk/platforms/android-3/arch-arm/symbols/libthread_db.so.functions.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-_Unwind_Backtrace
-_Unwind_Complete
-_Unwind_DeleteException
-_Unwind_ForcedUnwind
-_Unwind_GetCFA
-_Unwind_GetDataRelBase
-_Unwind_GetLanguageSpecificData
-_Unwind_GetRegionStart
-_Unwind_GetTextRelBase
-_Unwind_RaiseException
-_Unwind_Resume
-_Unwind_Resume_or_Rethrow
-_Unwind_VRS_Get
-_Unwind_VRS_Pop
-_Unwind_VRS_Set
-___Unwind_Backtrace
-___Unwind_ForcedUnwind
-___Unwind_RaiseException
-___Unwind_Resume
-___Unwind_Resume_or_Rethrow
-__aeabi_unwind_cpp_pr0
-__aeabi_unwind_cpp_pr1
-__aeabi_unwind_cpp_pr2
-__gnu_Unwind_Backtrace
-__gnu_Unwind_ForcedUnwind
-__gnu_Unwind_RaiseException
-__gnu_Unwind_Restore_VFP
-__gnu_Unwind_Resume
-__gnu_Unwind_Resume_or_Rethrow
-__gnu_Unwind_Save_VFP
-__gnu_unwind_execute
-__gnu_unwind_frame
-__restore_core_regs
-restore_core_regs
-td_symbol_list
-td_ta_event_addr
-td_ta_event_getmsg
-td_ta_new
-td_ta_set_event
-td_ta_thr_iter
-td_thr_event_enable
-td_thr_get_info
diff --git a/ndk/platforms/android-3/arch-arm/symbols/libthread_db.so.variables.txt b/ndk/platforms/android-3/arch-arm/symbols/libthread_db.so.variables.txt
deleted file mode 100644
index 8b13789..0000000
--- a/ndk/platforms/android-3/arch-arm/symbols/libthread_db.so.variables.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ndk/platforms/android-3/header-patches/headers.patch b/ndk/platforms/android-3/header-patches/headers.patch
deleted file mode 100644
index 56b44a4..0000000
--- a/ndk/platforms/android-3/header-patches/headers.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff -Naur a/include/asm/a.out.h b/include/asm/a.out.h
---- a/include/asm/a.out.h	2013-06-10 08:16:13.496310000 +0800
-+++ b/include/asm/a.out.h	2013-09-06 14:13:28.366275000 +0800
-@@ -33,7 +33,7 @@
- #define N_DRSIZE(a) ((a).a_drsize)
- #define N_SYMSIZE(a) ((a).a_syms)
-
--#define M_MACHINE 103
-+#define M_ARM 103
-
- #ifndef LIBRARY_START_TEXT
- #define LIBRARY_START_TEXT (0x00c00000)
-diff -Naur a/include/asm/byteorder.h b/include/asm/byteorder.h
---- a/include/asm/byteorder.h	2013-09-03 12:33:37.353419000 +0800
-+++ b/include/asm/byteorder.h	2013-08-30 17:41:09.234265000 +0800
-@@ -19,12 +19,6 @@
- {
-  __u32 t;
- 
--#ifndef __thumb__
-- if (!__builtin_constant_p(x)) {
--
-- __asm__ ("eor\t%0, %1, %1, ror #16" : "=r" (t) : "r" (x));
-- } else
--#endif
-  t = x ^ ((x << 16) | (x >> 16));
- 
-  x = (x << 24) | (x >> 8);
-diff -Naur a/include/asm/stat.h b/include/asm/stat.h
---- a/include/asm/stat.h	2013-09-03 12:33:37.367418000 +0800
-+++ b/include/asm/stat.h	2013-08-30 17:41:09.431302000 +0800
-@@ -29,23 +29,13 @@
- #define STAT_HAVE_NSEC 
- 
- struct stat {
--#ifdef __ARMEB__
-- unsigned short st_dev;
-- unsigned short __pad1;
--#else
-  unsigned long st_dev;
--#endif
-  unsigned long st_ino;
-  unsigned short st_mode;
-  unsigned short st_nlink;
-  unsigned short st_uid;
-  unsigned short st_gid;
--#ifdef __ARMEB__
-- unsigned short st_rdev;
-- unsigned short __pad2;
--#else
-  unsigned long st_rdev;
--#endif
-  unsigned long st_size;
-  unsigned long st_blksize;
-  unsigned long st_blocks;
-diff -Naur a/include/asm/types.h b/include/asm/types.h
---- a/include/asm/types.h	2013-09-03 12:33:37.313428000 +0800
-+++ b/include/asm/types.h	2013-08-30 17:41:09.467274000 +0800
-@@ -25,7 +25,7 @@
- typedef __signed__ int __s32;
- typedef unsigned int __u32;
- 
--#ifdef __GNUC__
-+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
- typedef __signed__ long long __s64;
- typedef unsigned long long __u64;
- #endif
-diff -Naur a/include/asm/unaligned.h b/include/asm/unaligned.h
---- a/include/asm/unaligned.h	2013-09-03 12:33:37.376422000 +0800
-+++ b/include/asm/unaligned.h	2013-08-30 17:41:09.500316000 +0800
-@@ -28,11 +28,6 @@
- 
- #define __put_unaligned_le(val,ptr)   ({   switch (sizeof(*(ptr))) {   case 1:   *(ptr) = (val);   break;   case 2: __put_unaligned_2_le((val),(__u8 *)(ptr));   break;   case 4: __put_unaligned_4_le((val),(__u8 *)(ptr));   break;   case 8: __put_unaligned_8_le((val),(__u8 *)(ptr));   break;   default: __bug_unaligned_x(ptr);   break;   }   (void) 0;   })
- #define __put_unaligned_be(val,ptr)   ({   switch (sizeof(*(ptr))) {   case 1:   *(ptr) = (val);   break;   case 2: __put_unaligned_2_be((val),(__u8 *)(ptr));   break;   case 4: __put_unaligned_4_be((val),(__u8 *)(ptr));   break;   case 8: __put_unaligned_8_be((val),(__u8 *)(ptr));   break;   default: __bug_unaligned_x(ptr);   break;   }   (void) 0;   })
--#ifndef __ARMEB__
- #define get_unaligned __get_unaligned_le
- #define put_unaligned __put_unaligned_le
--#else
--#define get_unaligned __get_unaligned_be
--#define put_unaligned __put_unaligned_be
--#endif
- #endif
-diff -Naur a/include/asm/unistd.h b/include/asm/unistd.h
---- a/include/asm/unistd.h	2013-09-03 12:33:37.322427000 +0800
-+++ b/include/asm/unistd.h	2013-08-30 17:41:09.506276000 +0800
-@@ -19,12 +19,7 @@
- #ifndef __ASM_MACHINE_UNISTD_H
- #define __ASM_MACHINE_UNISTD_H
- #define __NR_OABI_SYSCALL_BASE 0x900000
--#if defined(__thumb__) || defined(__ARM_EABI__)
--/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- #define __NR_SYSCALL_BASE 0
--#else
--#define __NR_SYSCALL_BASE __NR_OABI_SYSCALL_BASE
--#endif
- /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
- #define __NR_restart_syscall (__NR_SYSCALL_BASE+ 0)
- #define __NR_exit (__NR_SYSCALL_BASE+ 1)
-diff -Naur a/include/asm/user.h b/include/asm/user.h
---- a/include/asm/user.h	2013-09-03 12:33:37.118421000 +0800
-+++ b/include/asm/user.h	2013-08-30 17:41:09.519301000 +0800
-@@ -58,15 +58,4 @@
- #define HOST_TEXT_START_ADDR (u.start_code)
- #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
- 
--struct user_vfp {
-- unsigned long long fpregs[32];
-- unsigned long fpscr;
--};
--
--struct user_vfp_exc {
-- unsigned long fpexc;
-- unsigned long fpinst;
-- unsigned long fpinst2;
--};
--
- #endif
-diff -Naur a/include/machine/asm.h b/include/machine/asm.h
---- a/include/machine/asm.h	2013-09-03 12:33:37.135419000 +0800
-+++ b/include/machine/asm.h	2013-08-30 17:41:09.533294000 +0800
-@@ -78,17 +78,7 @@
- 	.fnend; \
- 	_ASM_SIZE(x)
- 
--#ifdef GPROF
--# ifdef __ELF__
--#  define _PROF_PROLOGUE	\
--	mov ip, lr; bl __mcount
--# else
--#  define _PROF_PROLOGUE	\
--	mov ip,lr; bl mcount
--# endif
--#else
- # define _PROF_PROLOGUE
--#endif
- 
- #define	ENTRY(y)	_ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
- #define	ENTRY_NP(y)	_ENTRY(_C_LABEL(y))
diff --git a/ndk/platforms/android-3/header-patches/include/asm-generic/fcntl.h b/ndk/platforms/android-3/header-patches/include/asm-generic/fcntl.h
deleted file mode 100644
index 83c58e6..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm-generic/fcntl.h
+++ /dev/null
@@ -1,138 +0,0 @@
-#ifndef _ASM_GENERIC_FCNTL_H
-#define _ASM_GENERIC_FCNTL_H
-
-#include <linux/types.h>
-
-#define O_ACCMODE 00000003
-#define O_RDONLY 00000000
-#define O_WRONLY 00000001
-#define O_RDWR 00000002
-#ifndef O_CREAT
-#define O_CREAT 00000100
-#endif
-#ifndef O_EXCL
-#define O_EXCL 00000200
-#endif
-#ifndef O_NOCTTY
-#define O_NOCTTY 00000400
-#endif
-#ifndef O_TRUNC
-#define O_TRUNC 00001000
-#endif
-#ifndef O_APPEND
-#define O_APPEND 00002000
-#endif
-#ifndef O_NONBLOCK
-#define O_NONBLOCK 00004000
-#endif
-#ifndef O_SYNC
-#define O_SYNC 00010000
-#endif
-#ifndef FASYNC
-#define FASYNC 00020000
-#endif
-#ifndef O_DIRECT
-#define O_DIRECT 00040000
-#endif
-#ifndef O_LARGEFILE
-#define O_LARGEFILE 00100000
-#endif
-#ifndef O_DIRECTORY
-#define O_DIRECTORY 00200000
-#endif
-#ifndef O_NOFOLLOW
-#define O_NOFOLLOW 00400000
-#endif
-#ifndef O_NOATIME
-#define O_NOATIME 01000000
-#endif
-#ifndef O_NDELAY
-#define O_NDELAY O_NONBLOCK
-#endif
-
-#define F_DUPFD 0
-#define F_GETFD 1
-#define F_SETFD 2
-#define F_GETFL 3
-#define F_SETFL 4
-#ifndef F_GETLK
-#define F_GETLK 5
-#define F_SETLK 6
-#define F_SETLKW 7
-#endif
-#ifndef F_SETOWN
-#define F_SETOWN 8
-#define F_GETOWN 9
-#endif
-#ifndef F_SETSIG
-#define F_SETSIG 10
-#define F_GETSIG 11
-#endif
-
-#define FD_CLOEXEC 1
-
-#ifndef F_RDLCK
-#define F_RDLCK 0
-#define F_WRLCK 1
-#define F_UNLCK 2
-#endif
-
-#ifndef F_EXLCK
-#define F_EXLCK 4
-#define F_SHLCK 8
-#endif
-
-#ifndef F_INPROGRESS
-#define F_INPROGRESS 16
-#endif
-
-#define LOCK_SH 1
-#define LOCK_EX 2
-#define LOCK_NB 4
-#define LOCK_UN 8
-
-#define LOCK_MAND 32
-#define LOCK_READ 64
-#define LOCK_WRITE 128
-#define LOCK_RW 192
-
-#define F_LINUX_SPECIFIC_BASE 1024
-
-#ifndef HAVE_ARCH_STRUCT_FLOCK
-#ifndef __ARCH_FLOCK_PAD
-#define __ARCH_FLOCK_PAD
-#endif
-
-struct flock {
- short l_type;
- short l_whence;
- off_t l_start;
- off_t l_len;
- pid_t l_pid;
- __ARCH_FLOCK_PAD
-};
-#endif
-
-#ifndef F_GETLK64
-#define F_GETLK64 12
-#define F_SETLK64 13
-#define F_SETLKW64 14
-#endif
-
-#ifndef HAVE_ARCH_STRUCT_FLOCK64
-#ifndef __ARCH_FLOCK64_PAD
-#define __ARCH_FLOCK64_PAD
-#endif
-
-struct flock64 {
- short l_type;
- short l_whence;
- unsigned char __padding[4];
- loff_t l_start;
- loff_t l_len;
- pid_t l_pid;
- __ARCH_FLOCK64_PAD
-};
-
-#endif
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/asm/div64.h b/ndk/platforms/android-3/header-patches/include/asm/div64.h
deleted file mode 100644
index cde7274..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm/div64.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_DIV64_H
-#define __ASM_DIV64_H
-
-#include <asm/system.h>
-
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/asm/elf.h b/ndk/platforms/android-3/header-patches/include/asm/elf.h
deleted file mode 100644
index cec9338..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm/elf.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef __ASM_ELF_H
-#define __ASM_ELF_H
-
-#include <asm/ptrace.h>
-#include <asm/user.h>
-
-typedef unsigned long elf_greg_t;
-typedef unsigned long elf_freg_t[3];
-
-
-#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef struct user_fp elf_fpregset_t;
-
-#define ELF_CLASS ELFCLASS32
-#define ELF_DATA ELFDATA2LSB
-
-#define USE_ELF_CORE_DUMP
-#define ELF_EXEC_PAGESIZE 4096
-
-#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
-
-
-#define ELF_HWCAP (elf_hwcap)
-
-#define ELF_PLATFORM_SIZE 8
-
-#define ELF_PLATFORM (elf_platform)
-
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/asm/locks.h b/ndk/platforms/android-3/header-patches/include/asm/locks.h
deleted file mode 100644
index 4463603..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm/locks.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef __ASM_PROC_LOCKS_H
-#define __ASM_PROC_LOCKS_H
-
-#define RW_LOCK_BIAS 0x01000000
-#define RW_LOCK_BIAS_STR "0x01000000"
-
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/asm/ptrace.h b/ndk/platforms/android-3/header-patches/include/asm/ptrace.h
deleted file mode 100644
index a0877cf..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm/ptrace.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef __ASM_PTRACE_H
-#define __ASM_PTRACE_H
-
-#define PTRACE_GETREGS 12
-#define PTRACE_SETREGS 13
-#define PTRACE_GETFPREGS 14
-#define PTRACE_SETFPREGS 15
-
-#define PTRACE_GETWMMXREGS 18
-#define PTRACE_SETWMMXREGS 19
-
-#define PTRACE_OLDSETOPTIONS 21
-
-#define PTRACE_GET_THREAD_AREA 22
-
-#define PTRACE_SET_SYSCALL 23
-
-#define PTRACE_GETCRUNCHREGS 25
-#define PTRACE_SETCRUNCHREGS 26
-
-#define USR26_MODE 0x00000000
-#define FIQ26_MODE 0x00000001
-#define IRQ26_MODE 0x00000002
-#define SVC26_MODE 0x00000003
-#define USR_MODE 0x00000010
-#define FIQ_MODE 0x00000011
-#define IRQ_MODE 0x00000012
-#define SVC_MODE 0x00000013
-#define ABT_MODE 0x00000017
-#define UND_MODE 0x0000001b
-#define SYSTEM_MODE 0x0000001f
-#define MODE32_BIT 0x00000010
-#define MODE_MASK 0x0000001f
-#define PSR_T_BIT 0x00000020
-#define PSR_F_BIT 0x00000040
-#define PSR_I_BIT 0x00000080
-#define PSR_J_BIT 0x01000000
-#define PSR_Q_BIT 0x08000000
-#define PSR_V_BIT 0x10000000
-#define PSR_C_BIT 0x20000000
-#define PSR_Z_BIT 0x40000000
-#define PSR_N_BIT 0x80000000
-#define PCMASK 0
-
-#define PSR_f 0xff000000
-#define PSR_s 0x00ff0000
-#define PSR_x 0x0000ff00
-#define PSR_c 0x000000ff
-
-#ifndef __ASSEMBLY__
-
-struct pt_regs {
- long uregs[44];   // Increase array size for ARM/x86/MIPS compatibility
-};
-
-#define ARM_cpsr uregs[16]
-#define ARM_pc uregs[15]
-#define ARM_lr uregs[14]
-#define ARM_sp uregs[13]
-#define ARM_ip uregs[12]
-#define ARM_fp uregs[11]
-#define ARM_r10 uregs[10]
-#define ARM_r9 uregs[9]
-#define ARM_r8 uregs[8]
-#define ARM_r7 uregs[7]
-#define ARM_r6 uregs[6]
-#define ARM_r5 uregs[5]
-#define ARM_r4 uregs[4]
-#define ARM_r3 uregs[3]
-#define ARM_r2 uregs[2]
-#define ARM_r1 uregs[1]
-#define ARM_r0 uregs[0]
-#define ARM_ORIG_r0 uregs[17]
-
-#define x86_r15 uregs[0]
-#define x86_r14 uregs[1]
-#define x86_r13 uregs[2]
-#define x86_r12 uregs[3]
-#define x86_rbp uregs[4]
-#define x86_rbx uregs[5]
-#define x86_r11 uregs[6]
-#define x86_r10 uregs[7]
-#define x86_r9 uregs[8]
-#define x86_r8 uregs[9]
-#define x86_rax uregs[10]
-#define x86_rcx uregs[11]
-#define x86_rdx uregs[12]
-#define x86_rsi uregs[13]
-#define x86_rdi uregs[14]
-#define x86_orig_rax uregs[15]
-#define x86_rip uregs[16]
-#define x86_cs uregs[17]
-#define x86_eflags uregs[18]
-#define x86_rsp uregs[19]
-#define x86_ss uregs[20]
-
-#define pc_pointer(v)   ((v) & ~PCMASK)
-
-#define instruction_pointer(regs)   (pc_pointer((regs)->ARM_pc))
-
-#define profile_pc(regs) instruction_pointer(regs)
-
-#endif
-
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/asm/sigcontext.h b/ndk/platforms/android-3/header-patches/include/asm/sigcontext.h
deleted file mode 100644
index ebbcafa..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm/sigcontext.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _ASM_SIGCONTEXT_H
-#define _ASM_SIGCONTEXT_H
-
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/asm/uaccess.h b/ndk/platforms/android-3/header-patches/include/asm/uaccess.h
deleted file mode 100644
index ace935e..0000000
--- a/ndk/platforms/android-3/header-patches/include/asm/uaccess.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef _ASM_UACCESS_H
-#define _ASM_UACCESS_H
-
-#include <linux/sched.h>
-#include <asm/errno.h>
-#include <asm/memory.h>
-#include <asm/system.h>
-
-#define VERIFY_READ 0
-#define VERIFY_WRITE 1
-
-struct exception_table_entry
-{
- unsigned long insn, fixup;
-};
-
-#define KERNEL_DS 0x00000000
-#define get_ds() (KERNEL_DS)
-
-#define USER_DS KERNEL_DS
-
-#define segment_eq(a,b) (1)
-#define __addr_ok(addr) (1)
-#define __range_ok(addr,size) (0)
-#define get_fs() (KERNEL_DS)
-
-#define get_user(x,p)
-#define put_user(x,p)
-#define access_ok(type,addr,size) (__range_ok(addr,size) == 0)
-#define __copy_from_user(to,from,n) (memcpy(to, (void __force *)from, n), 0)
-#define __copy_to_user(to,from,n) (memcpy((void __force *)to, from, n), 0)
-#define __clear_user(addr,n) (memset((void __force *)addr, 0, n), 0)
-
-#define __copy_to_user_inatomic __copy_to_user
-#define __copy_from_user_inatomic __copy_from_user
-#define strlen_user(s) strnlen_user(s, ~0UL >> 1)
-#endif
diff --git a/ndk/platforms/android-3/header-patches/include/fenv.h b/ndk/platforms/android-3/header-patches/include/fenv.h
deleted file mode 100644
index 2ee530d..0000000
--- a/ndk/platforms/android-3/header-patches/include/fenv.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*-
- * Copyright (c) 2004-2005 David Schultz <das@FreeBSD.ORG>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/lib/msun/arm/fenv.h,v 1.5 2005/03/16 19:03:45 das Exp $
- */
-
-/*
- * Rewritten for Android.
- *
- * The ARM FPSCR is described here:
- * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344b/Chdfafia.html
- */
-
-#ifndef _FENV_H_
-#define _FENV_H_
-
-#include <sys/types.h>
-
-__BEGIN_DECLS
-
-/* 
- * arm/mips definition
- */
-typedef __uint32_t fenv_t;
-typedef __uint32_t fexcept_t;
-
-/*
- * x86 definition
- */
-/*
-typedef struct {
-        __uint16_t      __control;
-        __uint16_t      __mxcsr_hi;
-        __uint16_t      __status;
-        __uint16_t      __mxcsr_lo;
-        __uint32_t      __tag;
-        char            __other[16];
-} fenv_t;
-*/
-
-
-/* Exception flags. */
-#define FE_INVALID    0x01
-#define FE_DIVBYZERO  0x02
-#define FE_OVERFLOW   0x04
-#define FE_UNDERFLOW  0x08
-#define FE_INEXACT    0x10
-#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW)
-
-/* Rounding modes. */
-#define FE_TONEAREST  0x0
-#define FE_UPWARD     0x1
-#define FE_DOWNWARD   0x2
-#define FE_TOWARDZERO 0x3
-
-/* Default floating-point environment. */
-extern const fenv_t __fe_dfl_env;
-#define FE_DFL_ENV (&__fe_dfl_env)
-
-/*
- * Need implementations in libportable to enable following functions
- *
- * int fegetenv(fenv_t* __envp);
- * int fesetenv(const fenv_t* __envp);
- * int feholdexcept(fenv_t* __envp);
- * int feupdateenv(const fenv_t* __envp);
- */
-
-int feclearexcept(int __excepts);
-int fegetexceptflag(fexcept_t* __flagp, int __excepts);
-int fesetexceptflag(const fexcept_t* __flagp, int __excepts);
-int feraiseexcept(int __excepts);
-int fetestexcept(int __excepts);
-int fegetround(void);
-int fesetround(int __round);
-
-__END_DECLS
-
-#endif /* !_FENV_H_ */
diff --git a/ndk/platforms/android-3/header-patches/include/machine/endian.h b/ndk/platforms/android-3/header-patches/include/machine/endian.h
deleted file mode 100644
index 5f69357..0000000
--- a/ndk/platforms/android-3/header-patches/include/machine/endian.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*	$OpenBSD: endian.h,v 1.3 2005/12/13 00:35:23 millert Exp $	*/
-
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _MACHINE_ENDIAN_H_
-#define _MACHINE_ENDIAN_H_
-
-#ifdef __GNUC__
-
-/*
- * Implement below swap{16,32,64}md functions in libportable
- * that are optimized for your architecture.
- *
- * uint16_t __swap16md(uint16_t x);
- * uint32_t __swap32md(uint32_t x);
- * uint64_t __swap64md(uint64_t x);
- */
-
-/* Tell sys/endian.h we have MD variants of the swap macros.
- * #define MD_SWAP
- */
-#endif  /* __GNUC__ */
-
-#define _BYTE_ORDER _LITTLE_ENDIAN
-#define __STRICT_ALIGNMENT
-#include <sys/types.h>
-#include <sys/endian.h>
-
-#endif  /* !_MACHINE_ENDIAN_H_ */
diff --git a/ndk/platforms/android-3/header-patches/include/machine/ieee.h b/ndk/platforms/android-3/header-patches/include/machine/ieee.h
deleted file mode 100644
index 823f5ef..0000000
--- a/ndk/platforms/android-3/header-patches/include/machine/ieee.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*	$OpenBSD: ieee.h,v 1.1 2004/02/01 05:09:49 drahn Exp $	*/
-/*	$NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $	*/
-
-/*
- * Copyright (c) 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This software was developed by the Computer Systems Engineering group
- * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
- * contributed to Berkeley.
- *
- * All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Lawrence Berkeley Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *	This product includes software developed by the University of
- *	California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *	@(#)ieee.h	8.1 (Berkeley) 6/11/93
- */
-
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point.
- */
-
-/*
- * Define the number of bits in each fraction and exponent.
- *
- *		     k	         k+1
- * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
- *
- *					  (-exp_bias+1)
- * as fractions that look like 0.fffff x 2             .  This means that
- *
- *			 -126
- * the number 0.10000 x 2    , for instance, is the same as the normalized
- *
- *		-127			   -128
- * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
- *
- *				  -129
- * in the fraction; to represent 2    , we need two, and so on.  This
- *
- *						     (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- *						-126		-149
- * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
- *
- * -149 == -127 - 23 + 1.
- */
-
-/*
- * The ARM has two sets of FP data formats.  The FPA supports 32-bit, 64-bit
- * and 96-bit IEEE formats, with the words in big-endian order.  VFP supports
- * 32-bin and 64-bit IEEE formats with the words in the CPU's native byte
- * order.
- *
- * The FPA also has two packed decimal formats, but we ignore them here.
- */
-
-#define	SNG_EXPBITS	8
-#define	SNG_FRACBITS	23
-
-#define	DBL_EXPBITS	11
-#define	DBL_FRACBITS	52
-
-#define	EXT_EXPBITS	15
-#define	EXT_FRACBITS	112
-
-struct ieee_single {
-	u_int	sng_frac:23;
-	u_int	sng_exp:8;
-	u_int	sng_sign:1;
-};
-
-struct ieee_double {
-	u_int	dbl_fracl;
-	u_int	dbl_frach:20;
-	u_int	dbl_exp:11;
-	u_int	dbl_sign:1;
-};
-
-union ieee_double_u {
-	double                  dblu_d;
-	struct ieee_double      dblu_dbl;
-};
-
-struct ieee_ext {
-	u_int	ext_frach:16;
-	u_int	ext_exp:15;
-	u_int	ext_sign:1;
-	u_int	ext_frachm;
-	u_int	ext_fraclm;
-	u_int	ext_fracl;
-};
-
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define	SNG_EXP_INFNAN	255
-#define	DBL_EXP_INFNAN	2047
-#define	EXT_EXP_INFNAN	32767
-
-#if 0
-#define	SNG_QUIETNAN	(1 << 22)
-#define	DBL_QUIETNAN	(1 << 19)
-#define	EXT_QUIETNAN	(1 << 15)
-#endif
-
-/*
- * Exponent biases.
- */
-#define	SNG_EXP_BIAS	127
-#define	DBL_EXP_BIAS	1023
-#define	EXT_EXP_BIAS	16383
diff --git a/ndk/platforms/android-3/header-patches/include/sys/epoll.h b/ndk/platforms/android-3/header-patches/include/sys/epoll.h
deleted file mode 100644
index c6b0882..0000000
--- a/ndk/platforms/android-3/header-patches/include/sys/epoll.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_EPOLL_H_
-#define _SYS_EPOLL_H_
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-
-#define EPOLLIN          0x00000001
-#define EPOLLPRI         0x00000002
-#define EPOLLOUT         0x00000004
-#define EPOLLERR         0x00000008
-#define EPOLLHUP         0x00000010
-#define EPOLLRDNORM      0x00000040
-#define EPOLLRDBAND      0x00000080
-#define EPOLLWRNORM      0x00000100
-#define EPOLLWRBAND      0x00000200
-#define EPOLLMSG         0x00000400
-#define EPOLLET          0x80000000
-
-#define EPOLL_CTL_ADD    1
-#define EPOLL_CTL_DEL    2
-#define EPOLL_CTL_MOD    3
-
-typedef union epoll_data 
-{
-    void *ptr;
-    int fd;
-    unsigned int u32;
-    unsigned long long u64;
-} epoll_data_t;
-
-struct epoll_event
-{
-    unsigned int events;
-    unsigned char __padding[4];
-    epoll_data_t data;
-};
-
-int epoll_create(int size);
-int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
-int epoll_wait(int epfd, struct epoll_event *events, int max, int timeout);
-
-__END_DECLS
-
-#endif  /* _SYS_EPOLL_H_ */
diff --git a/ndk/platforms/android-3/header-patches/include/sys/stat.h b/ndk/platforms/android-3/header-patches/include/sys/stat.h
deleted file mode 100644
index 0a9af5b..0000000
--- a/ndk/platforms/android-3/header-patches/include/sys/stat.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_STAT_H_
-#define _SYS_STAT_H_
-
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <linux/stat.h>
-
-#include <endian.h>
-
-__BEGIN_DECLS
-
-/* really matches stat64 in the kernel, hence the padding
- * Note: The kernel zero's the padded region because glibc might read them
- * in the hope that the kernel has stretched to using larger sizes.
- */
-struct stat {
-    unsigned long long  st_dev;
-    unsigned char       __pad0[4];
-
-    unsigned long       __st_ino;
-    unsigned int        st_mode;
-    unsigned int        st_nlink;
-
-    unsigned long       st_uid;
-    unsigned long       st_gid;
-
-    unsigned long long  st_rdev;
-    unsigned char       __pad3[4];
-
-    unsigned char       __pad4[4];
-    long long           st_size;
-    unsigned long       st_blksize;
-    unsigned char       __pad5[4];
-    unsigned long long  st_blocks;
-
-    unsigned long       st_atime;
-    unsigned long       st_atime_nsec;
-
-    unsigned long       st_mtime;
-    unsigned long       st_mtime_nsec;
-
-    unsigned long       st_ctime;
-    unsigned long       st_ctime_nsec;
-
-    unsigned long long  st_ino;
-};
-
-/* For compatibility with GLibc, we provide macro aliases
- * for the non-Posix nano-seconds accessors.
- */
-#define  st_atimensec  st_atime_nsec
-#define  st_mtimensec  st_mtime_nsec
-#define  st_ctimensec  st_ctime_nsec
-
-extern int    chmod(const char *, mode_t);
-extern int    fchmod(int, mode_t);
-extern int    mkdir(const char *, mode_t);
-
-extern int    stat(const char *, struct stat *);
-extern int    fstat(int, struct stat *);
-extern int    lstat(const char *, struct stat *);
-extern int    mknod(const char *, mode_t, dev_t);
-extern mode_t umask(mode_t);
-
-#define  stat64    stat
-#define  fstat64   fstat
-#define  lstat64   lstat
-
-static __inline__ int mkfifo(const char *__p, mode_t __m)
-{
-  return mknod(__p, (__m & ~S_IFMT) | S_IFIFO, (dev_t)0);
-}
-
-extern int  fstatat(int dirfd, const char *path, struct stat *buf, int flags);
-extern int  mkdirat(int dirfd, const char *pathname, mode_t mode);
-extern int fchownat(int dirfd, const char *path, uid_t owner, gid_t group, int flags);
-extern int fchmodat(int dirfd, const char *path, mode_t mode, int flags);
-extern int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath);
-
-__END_DECLS
-
-#endif /* _SYS_STAT_H_ */
diff --git a/ndk/platforms/android-3/include/ctype.h b/ndk/platforms/android-3/include/ctype.h
index 58b76ea..711e646 100644
--- a/ndk/platforms/android-3/include/ctype.h
+++ b/ndk/platforms/android-3/include/ctype.h
@@ -59,7 +59,7 @@
 
 /* extern __inline is a GNU C extension */
 #ifdef __GNUC__
-#  if defined(__GNUC_STDC_INLINE__)
+#  if defined(__GNUC_STDC_INLINE__) || defined(__cplusplus) || defined(__cplusplus)
 #define	__CTYPE_INLINE	extern __inline __attribute__((__gnu_inline__))
 #  else
 #define	__CTYPE_INLINE	extern __inline
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/elf.h b/ndk/platforms/android-9/arch-mips/include/asm/elf.h
index 6f79694..831f54c 100644
--- a/ndk/platforms/android-9/arch-mips/include/asm/elf.h
+++ b/ndk/platforms/android-9/arch-mips/include/asm/elf.h
@@ -70,6 +70,8 @@
 #define DT_MIPS_GOTSYM 0x70000013
 #define DT_MIPS_HIPAGENO 0x70000014
 #define DT_MIPS_RLD_MAP 0x70000016
+#define DT_MIPS_RLD_MAP2 0x70000035
+
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define R_MIPS_NONE 0
 #define R_MIPS_16 1
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/exec.h b/ndk/platforms/android-9/arch-mips/include/machine/exec.h
index 3c63f74..88f82f4 100644
--- a/ndk/platforms/android-9/arch-mips/include/machine/exec.h
+++ b/ndk/platforms/android-9/arch-mips/include/machine/exec.h
@@ -91,6 +91,7 @@
 #define DT_MIPS_GOTSYM       0x70000013 /* First GOT entry in .dynsym */
 #define DT_MIPS_HIPAGENO     0x70000014 /* Number of GOT page table entries */
 #define DT_MIPS_RLD_MAP      0x70000016 /* Address of debug map pointer */
+#define DT_MIPS_RLD_MAP2     0x70000035 /* Address of run time loader map, used for debugging. */
 
 #define DT_PROCNUM (DT_MIPS_RLD_MAP - DT_LOPROC + 1)
 
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.functions.txt
deleted file mode 100644
index e31e447..0000000
--- a/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.functions.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-td_symbol_list
-td_ta_clear_event
-td_ta_delete
-td_ta_event_addr
-td_ta_event_getmsg
-td_ta_map_lwp2thr
-td_ta_new
-td_ta_set_event
-td_ta_thr_iter
-td_thr_event_enable
-td_thr_get_info
-td_thr_tls_get_addr
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.variables.txt
deleted file mode 100644
index 8b13789..0000000
--- a/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.variables.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ndk/platforms/android-21/arch-p/include/machine/endian.h b/ndk/platforms/android-9/arch-x86/src/asm_multiarch.h
similarity index 88%
copy from ndk/platforms/android-21/arch-p/include/machine/endian.h
copy to ndk/platforms/android-9/arch-x86/src/asm_multiarch.h
index d54fc52..91cb8af 100644
--- a/ndk/platforms/android-21/arch-p/include/machine/endian.h
+++ b/ndk/platforms/android-9/arch-x86/src/asm_multiarch.h
@@ -26,12 +26,11 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _MACHINE_ENDIAN_H_
-#define _MACHINE_ENDIAN_H_
+#ifdef __LP64__
+# define ASM_PTR_SIZE(x) .quad x
+# define ASM_ALIGN_TO_PTR_SIZE .balign 8
+#else
+# define ASM_PTR_SIZE(x) .long x
+# define ASM_ALIGN_TO_PTR_SIZE .balign 4
+#endif
 
-#include <sys/types.h>
-#include <sys/endian.h>
-
-#define _BYTE_ORDER _LITTLE_ENDIAN
-
-#endif /* _MACHINE_ENDIAN_H_ */
diff --git a/ndk/platforms/android-9/arch-x86/src/crtend.S b/ndk/platforms/android-9/arch-x86/src/crtend.S
index 68447e7..9796ea0 100644
--- a/ndk/platforms/android-9/arch-x86/src/crtend.S
+++ b/ndk/platforms/android-9/arch-x86/src/crtend.S
@@ -1,11 +1,16 @@
+#include "asm_multiarch.h"
+
 	.section .preinit_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section .init_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section .fini_array, "aw"
-	.long 0
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section	.eh_frame,"a",@progbits
 	.align 4
diff --git a/ndk/platforms/android-9/arch-x86/src/crtend_so.S b/ndk/platforms/android-9/arch-x86/src/crtend_so.S
index 63e58b9..6ef493b 100644
--- a/ndk/platforms/android-9/arch-x86/src/crtend_so.S
+++ b/ndk/platforms/android-9/arch-x86/src/crtend_so.S
@@ -1,8 +1,12 @@
-.section .init_array, "aw"
-    .long 0
+#include "asm_multiarch.h"
 
-.section .fini_array, "aw"
-    .long 0
+	.section .init_array, "aw"
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
+
+	.section .fini_array, "aw"
+	ASM_ALIGN_TO_PTR_SIZE
+	ASM_PTR_SIZE(0)
 
 	.section	.eh_frame,"a",@progbits
 	.align 4
diff --git a/ndk/samples/hello-neon/jni/Android.mk b/ndk/samples/hello-neon/jni/Android.mk
index eeaae96..7bb6976 100644
--- a/ndk/samples/hello-neon/jni/Android.mk
+++ b/ndk/samples/hello-neon/jni/Android.mk
@@ -6,7 +6,7 @@
 
 LOCAL_SRC_FILES := helloneon.c
 
-ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI), armeabi-v7a x86))
+ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI), armeabi-v7a x86 x86_64 arm64-v8a))
     LOCAL_CFLAGS := -DHAVE_NEON=1
 ifeq ($(TARGET_ARCH_ABI),x86)
     LOCAL_CFLAGS += -mssse3
diff --git a/ndk/samples/hello-neon/jni/Application.mk b/ndk/samples/hello-neon/jni/Application.mk
index 7985a68..ceeb0b4 100644
--- a/ndk/samples/hello-neon/jni/Application.mk
+++ b/ndk/samples/hello-neon/jni/Application.mk
@@ -1 +1 @@
-APP_ABI := armeabi armeabi-v7a arm64-v8a x86
+APP_ABI := armeabi armeabi-v7a arm64-v8a x86 x86_64
diff --git a/ndk/sources/android/libportable/Android.mk b/ndk/sources/android/libportable/Android.mk
deleted file mode 100644
index 6c52e89..0000000
--- a/ndk/sources/android/libportable/Android.mk
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Copyright (C) 2012 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(BUILD_LIBPORTABLE_TOO),true)
-
-#=====================================================================
-# Device Shared Library libportable
-#=====================================================================
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libportable
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := SHARED_LIBRARIES
-
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/common/include
-
-# Uncomment the next line to easily enable Lib-Portable logging during development.
-# LOCAL_CFLAGS += -DLOG_NDEBUG=0
-
-libportable_src_files = \
-  $(patsubst $(LOCAL_PATH)/%,%,$(wildcard $(LOCAL_PATH)/arch-$(TARGET_ARCH)/*.c)) \
-  $(patsubst $(LOCAL_PATH)/%,%,$(wildcard $(LOCAL_PATH)/arch-$(TARGET_ARCH)/*.S))
-
-LOCAL_SRC_FILES := \
-  $(libportable_src_files)
-
-LOCAL_WHOLE_STATIC_LIBRARIES += cpufeatures
-LOCAL_SHARED_LIBRARIES += liblog libdl
-
-include $(BUILD_SHARED_LIBRARY)
-
-endif # BUILD_LIBPORTABLE_TOO
diff --git a/ndk/sources/android/libportable/arch-arm/fenv.c b/ndk/sources/android/libportable/arch-arm/fenv.c
deleted file mode 100644
index d3c18af..0000000
--- a/ndk/sources/android/libportable/arch-arm/fenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fenv_portable.h>
diff --git a/ndk/sources/android/libportable/arch-arm/md_swap.c b/ndk/sources/android/libportable/arch-arm/md_swap.c
deleted file mode 100644
index 47652e6..0000000
--- a/ndk/sources/android/libportable/arch-arm/md_swap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <portability.h>
-#include <sys/types.h>
-
-/*
- * REV and REV16 weren't available on ARM5 or ARM4.
- */
-#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ && \
-    !defined __ARM_ARCH_5TE__ && !defined __ARM_ARCH_5TEJ__ && \
-    !defined __ARM_ARCH_4T__ && !defined __ARM_ARCH_4__
-
-uint16_t WRAP(__swap16md)(uint16_t x) {
-    register uint16_t _x = (x);
-    __asm volatile ("rev16 %0, %0" : "+l" (_x));
-    return _x;
-}
-
-uint32_t WRAP(__swap32md)(uint32_t x) {
-    register uint32_t _x = (x);
-    __asm volatile ("rev %0, %0" : "+l" (_x));
-    return _x;
-}
-
-#endif
-
diff --git a/ndk/sources/android/libportable/arch-arm/stat.c b/ndk/sources/android/libportable/arch-arm/stat.c
deleted file mode 100644
index 8a2a477..0000000
--- a/ndk/sources/android/libportable/arch-arm/stat.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stat_portable.h>
diff --git a/ndk/sources/android/libportable/arch-arm/unwind.c b/ndk/sources/android/libportable/arch-arm/unwind.c
deleted file mode 100644
index f7e6326..0000000
--- a/ndk/sources/android/libportable/arch-arm/unwind.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <portability.h>
-#include <stdint.h>
-
-struct _Unwind_Context;
-
-typedef enum {
-  _UVRSC_CORE = 0,  // integer register
-  _UVRSC_VFP = 1, // vfp
-  _UVRSC_WMMXD = 3, // Intel WMMX data register
-  _UVRSC_WMMXC = 4  // Intel WMMX control register
-} _Unwind_VRS_RegClass;
-
-typedef enum {
-  _UVRSD_UINT32 = 0,
-  _UVRSD_VFPX = 1,
-  _UVRSD_UINT64 = 3,
-  _UVRSD_FLOAT = 4,
-  _UVRSD_DOUBLE = 5
-} _Unwind_VRS_DataRepresentation;
-
-typedef enum {
-  _UVRSR_OK = 0,
-  _UVRSR_NOT_IMPLEMENTED = 1,
-  _UVRSR_FAILED = 2
-} _Unwind_VRS_Result;
-
-_Unwind_VRS_Result _Unwind_VRS_Get(struct _Unwind_Context *context,
-                                   _Unwind_VRS_RegClass regclass,
-                                   uint32_t regno,
-                                   _Unwind_VRS_DataRepresentation representation,
-                                   void* valuep);
-
-_Unwind_VRS_Result _Unwind_VRS_Set(struct _Unwind_Context *context,
-                                   _Unwind_VRS_RegClass regclass,
-                                   uint32_t regno,
-                                   _Unwind_VRS_DataRepresentation representation,
-                                   void* valuep);
-
-#define UNWIND_POINTER_REG  12
-#define UNWIND_STACK_REG    13
-#define UNWIND_IP_REG       15
-
-uint64_t WRAP(_Unwind_GetGR)(struct _Unwind_Context* ctx, int index) {
-  uint32_t val;
-  _Unwind_VRS_Get(ctx, _UVRSC_CORE, index, _UVRSD_UINT32, &val);
-  return (uint64_t)val;
-}
-
-void WRAP(_Unwind_SetGR)(struct _Unwind_Context* ctx, int index, uint64_t new_value) {
-  uint32_t val = (uint32_t)new_value;
-  _Unwind_VRS_Set(ctx, _UVRSC_CORE, index, _UVRSD_UINT32, &val);
-}
-
-uint64_t WRAP(_Unwind_GetIP)(struct _Unwind_Context* ctx) {
-  return WRAP(_Unwind_GetGR)(ctx, UNWIND_IP_REG) & ~1; // thumb bit
-}
-
-void WRAP(_Unwind_SetIP)(struct _Unwind_Context* ctx, uintptr_t new_value) {
-  uint32_t val = (uint32_t)new_value;
-  // Propagate thumb bit to instruction pointer
-  uint32_t thumbState = WRAP(_Unwind_GetGR)(ctx, UNWIND_IP_REG) & 1;
-  uint64_t new_val = (uint64_t)(val | thumbState);
-  WRAP(_Unwind_SetGR)(ctx, UNWIND_IP_REG, new_val);
-}
diff --git a/ndk/sources/android/libportable/arch-arm/vfs.c b/ndk/sources/android/libportable/arch-arm/vfs.c
deleted file mode 100644
index fe8becd..0000000
--- a/ndk/sources/android/libportable/arch-arm/vfs.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vfs_portable.h>
diff --git a/ndk/sources/android/libportable/arch-arm64/fenv.c b/ndk/sources/android/libportable/arch-arm64/fenv.c
deleted file mode 100644
index d3c18af..0000000
--- a/ndk/sources/android/libportable/arch-arm64/fenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fenv_portable.h>
diff --git a/ndk/sources/android/libportable/arch-arm64/stat.c b/ndk/sources/android/libportable/arch-arm64/stat.c
deleted file mode 100644
index 8a2a477..0000000
--- a/ndk/sources/android/libportable/arch-arm64/stat.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stat_portable.h>
diff --git a/ndk/sources/android/libportable/arch-arm64/vfs.c b/ndk/sources/android/libportable/arch-arm64/vfs.c
deleted file mode 100644
index fe8becd..0000000
--- a/ndk/sources/android/libportable/arch-arm64/vfs.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vfs_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips/errno.c b/ndk/sources/android/libportable/arch-mips/errno.c
deleted file mode 100644
index b9ed456..0000000
--- a/ndk/sources/android/libportable/arch-mips/errno.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <errno_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips/fcntl.c b/ndk/sources/android/libportable/arch-mips/fcntl.c
deleted file mode 100644
index de620c5..0000000
--- a/ndk/sources/android/libportable/arch-mips/fcntl.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fcntl_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips/fenv.c b/ndk/sources/android/libportable/arch-mips/fenv.c
deleted file mode 100644
index d3c18af..0000000
--- a/ndk/sources/android/libportable/arch-mips/fenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fenv_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips/signal.c b/ndk/sources/android/libportable/arch-mips/signal.c
deleted file mode 100644
index 7da2801..0000000
--- a/ndk/sources/android/libportable/arch-mips/signal.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <signal_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips/stat.c b/ndk/sources/android/libportable/arch-mips/stat.c
deleted file mode 100644
index 8a2a477..0000000
--- a/ndk/sources/android/libportable/arch-mips/stat.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stat_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips/vfs.c b/ndk/sources/android/libportable/arch-mips/vfs.c
deleted file mode 100644
index fe8becd..0000000
--- a/ndk/sources/android/libportable/arch-mips/vfs.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vfs_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips64/errno.c b/ndk/sources/android/libportable/arch-mips64/errno.c
deleted file mode 100644
index b9ed456..0000000
--- a/ndk/sources/android/libportable/arch-mips64/errno.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <errno_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips64/fcntl.c b/ndk/sources/android/libportable/arch-mips64/fcntl.c
deleted file mode 100644
index de620c5..0000000
--- a/ndk/sources/android/libportable/arch-mips64/fcntl.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fcntl_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips64/fenv.c b/ndk/sources/android/libportable/arch-mips64/fenv.c
deleted file mode 100644
index d3c18af..0000000
--- a/ndk/sources/android/libportable/arch-mips64/fenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fenv_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips64/stat.c b/ndk/sources/android/libportable/arch-mips64/stat.c
deleted file mode 100644
index 8a2a477..0000000
--- a/ndk/sources/android/libportable/arch-mips64/stat.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stat_portable.h>
diff --git a/ndk/sources/android/libportable/arch-mips64/vfs.c b/ndk/sources/android/libportable/arch-mips64/vfs.c
deleted file mode 100644
index fe8becd..0000000
--- a/ndk/sources/android/libportable/arch-mips64/vfs.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vfs_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86/epoll.c b/ndk/sources/android/libportable/arch-x86/epoll.c
deleted file mode 100644
index ef929af..0000000
--- a/ndk/sources/android/libportable/arch-x86/epoll.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <epoll_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86/fcntl.c b/ndk/sources/android/libportable/arch-x86/fcntl.c
deleted file mode 100644
index de620c5..0000000
--- a/ndk/sources/android/libportable/arch-x86/fcntl.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fcntl_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86/fenv.c b/ndk/sources/android/libportable/arch-x86/fenv.c
deleted file mode 100644
index d3c18af..0000000
--- a/ndk/sources/android/libportable/arch-x86/fenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fenv_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86/md_swap.c b/ndk/sources/android/libportable/arch-x86/md_swap.c
deleted file mode 100644
index da3c290..0000000
--- a/ndk/sources/android/libportable/arch-x86/md_swap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <portability.h>
-#include <sys/types.h>
-
-uint16_t WRAP(__swap16md)(uint16_t x) {
-    register uint16_t _x = (x);
-    __asm volatile ("rorw $8, %w0" : "+r" (_x));
-    return _x;
-}
-
-uint32_t WRAP(__swap32md)(uint32_t x) {
-    register uint32_t _x = (x);
-    __asm volatile ("bswap %0" : "+r" (_x));
-    return _x;
-}
-
diff --git a/ndk/sources/android/libportable/arch-x86/stat.c b/ndk/sources/android/libportable/arch-x86/stat.c
deleted file mode 100644
index 8a2a477..0000000
--- a/ndk/sources/android/libportable/arch-x86/stat.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stat_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86/vfs.c b/ndk/sources/android/libportable/arch-x86/vfs.c
deleted file mode 100644
index fe8becd..0000000
--- a/ndk/sources/android/libportable/arch-x86/vfs.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vfs_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86_64/epoll.c b/ndk/sources/android/libportable/arch-x86_64/epoll.c
deleted file mode 100644
index ef929af..0000000
--- a/ndk/sources/android/libportable/arch-x86_64/epoll.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <epoll_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86_64/fcntl.c b/ndk/sources/android/libportable/arch-x86_64/fcntl.c
deleted file mode 100644
index de620c5..0000000
--- a/ndk/sources/android/libportable/arch-x86_64/fcntl.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fcntl_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86_64/fenv.c b/ndk/sources/android/libportable/arch-x86_64/fenv.c
deleted file mode 100644
index d3c18af..0000000
--- a/ndk/sources/android/libportable/arch-x86_64/fenv.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <fenv_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86_64/stat.c b/ndk/sources/android/libportable/arch-x86_64/stat.c
deleted file mode 100644
index 8a2a477..0000000
--- a/ndk/sources/android/libportable/arch-x86_64/stat.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stat_portable.h>
diff --git a/ndk/sources/android/libportable/arch-x86_64/vfs.c b/ndk/sources/android/libportable/arch-x86_64/vfs.c
deleted file mode 100644
index fe8becd..0000000
--- a/ndk/sources/android/libportable/arch-x86_64/vfs.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <vfs_portable.h>
diff --git a/ndk/sources/android/libportable/common/include/epoll_portable.h b/ndk/sources/android/libportable/common/include/epoll_portable.h
deleted file mode 100644
index ebf4389..0000000
--- a/ndk/sources/android/libportable/common/include/epoll_portable.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _EPOLL_PORTABLE_H_
-#define _EPOLL_PORTABLE_H_
-
-#include <portability.h>
-#include <signal.h>
-#include <stdint.h>
-#include <sys/epoll.h>
-
-struct epoll_event_portable
-{
-  uint32_t events;
-  uint8_t __padding[4];
-  epoll_data_t data;
-};
-
-
-int WRAP(epoll_ctl)(int epfd, int op, int fd, struct epoll_event_portable *event)
-{
-    struct epoll_event machine_epoll_event;
-
-    machine_epoll_event.events = event->events;
-    machine_epoll_event.data = event->data;
-
-    return REAL(epoll_ctl)(epfd, op, fd, &machine_epoll_event);
-}
-
-int WRAP(epoll_wait)(int epfd, struct epoll_event_portable *events, int max, int timeout)
-{
-    struct epoll_event machine_epoll_event;
-    int ret = REAL(epoll_wait)(epfd, &machine_epoll_event, max, timeout);
-
-    events->events = machine_epoll_event.events;
-    events->data = machine_epoll_event.data;
-
-    return ret;
-}
-
-int WRAP(epoll_pwait)(int fd, struct epoll_event_portable* events, int max_events, int timeout, const sigset_t* ss)
-{
-    struct epoll_event machine_epoll_event;
-    int ret = REAL(epoll_pwait)(fd, &machine_epoll_event, max_events, timeout, ss);
-
-    events->events = machine_epoll_event.events;
-    events->data = machine_epoll_event.data;
-
-    return ret;
-}
-
-#endif /* _EPOLL_PORTABLE_H */
diff --git a/ndk/sources/android/libportable/common/include/errno_portable.h b/ndk/sources/android/libportable/common/include/errno_portable.h
deleted file mode 100644
index 8966c77..0000000
--- a/ndk/sources/android/libportable/common/include/errno_portable.h
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
-*/
-
-#ifndef _ERRNO_PORTABLE_H_
-#define _ERRNO_PORTABLE_H_
-
-#include <portability.h>
-#include <errno.h>
-#include <pthread.h>
-#include <string.h>
-
-#define ALOGV(...)
-
-#define EDEADLK_PORTABLE 35
-#define ENAMETOOLONG_PORTABLE 36
-#define ENOLCK_PORTABLE 37
-#define ENOSYS_PORTABLE 38
-#define ENOTEMPTY_PORTABLE 39
-#define ELOOP_PORTABLE 40
-#define EWOULDBLOCK_PORTABLE 11 /* EAGAIN */
-#define ENOMSG_PORTABLE 42
-#define EIDRM_PORTABLE 43
-#define ECHRNG_PORTABLE 44
-#define EL2NSYNC_PORTABLE 45
-#define EL3HLT_PORTABLE 46
-#define EL3RST_PORTABLE 47
-#define ELNRNG_PORTABLE 48
-#define EUNATCH_PORTABLE 49
-#define ENOCSI_PORTABLE 50
-#define EL2HLT_PORTABLE 51
-#define EBADE_PORTABLE 52
-#define EBADR_PORTABLE 53
-#define EXFULL_PORTABLE 54
-#define ENOANO_PORTABLE 55
-#define EBADRQC_PORTABLE 56
-#define EBADSLT_PORTABLE 57
-
-#define EDEADLOCK_PORTABLE EDEADLK_PORTABLE
-
-#define EBFONT_PORTABLE 59
-#define ENOSTR_PORTABLE 60
-#define ENODATA_PORTABLE 61
-#define ETIME_PORTABLE 62
-#define ENOSR_PORTABLE 63
-#define ENONET_PORTABLE 64
-#define ENOPKG_PORTABLE 65
-#define EREMOTE_PORTABLE 66
-#define ENOLINK_PORTABLE 67
-#define EADV_PORTABLE 68
-#define ESRMNT_PORTABLE 69
-#define ECOMM_PORTABLE 70
-#define EPROTO_PORTABLE 71
-#define EMULTIHOP_PORTABLE 72
-#define EDOTDOT_PORTABLE 73
-#define EBADMSG_PORTABLE 74
-#define EOVERFLOW_PORTABLE 75
-#define ENOTUNIQ_PORTABLE 76
-#define EBADFD_PORTABLE 77
-#define EREMCHG_PORTABLE 78
-#define ELIBACC_PORTABLE 79
-#define ELIBBAD_PORTABLE 80
-#define ELIBSCN_PORTABLE 81
-#define ELIBMAX_PORTABLE 82
-#define ELIBEXEC_PORTABLE 83
-#define EILSEQ_PORTABLE 84
-#define ERESTART_PORTABLE 85
-#define ESTRPIPE_PORTABLE 86
-#define EUSERS_PORTABLE 87
-#define ENOTSOCK_PORTABLE 88
-#define EDESTADDRREQ_PORTABLE 89
-#define EMSGSIZE_PORTABLE 90
-#define EPROTOTYPE_PORTABLE 91
-#define ENOPROTOOPT_PORTABLE 92
-#define EPROTONOSUPPORT_PORTABLE 93
-#define ESOCKTNOSUPPORT_PORTABLE 94
-#define EOPNOTSUPP_PORTABLE 95
-#define EPFNOSUPPORT_PORTABLE 96
-#define EAFNOSUPPORT_PORTABLE 97
-#define EADDRINUSE_PORTABLE 98
-#define EADDRNOTAVAIL_PORTABLE 99
-#define ENETDOWN_PORTABLE 100
-#define ENETUNREACH_PORTABLE 101
-#define ENETRESET_PORTABLE 102
-#define ECONNABORTED_PORTABLE 103
-#define ECONNRESET_PORTABLE 104
-#define ENOBUFS_PORTABLE 105
-#define EISCONN_PORTABLE 106
-#define ENOTCONN_PORTABLE 107
-#define ESHUTDOWN_PORTABLE 108
-#define ETOOMANYREFS_PORTABLE 109
-#define ETIMEDOUT_PORTABLE 110
-#define ECONNREFUSED_PORTABLE 111
-#define EHOSTDOWN_PORTABLE 112
-#define EHOSTUNREACH_PORTABLE 113
-#define EALREADY_PORTABLE 114
-#define EINPROGRESS_PORTABLE 115
-#define ESTALE_PORTABLE 116
-#define EUCLEAN_PORTABLE 117
-#define ENOTNAM_PORTABLE 118
-#define ENAVAIL_PORTABLE 119
-#define EISNAM_PORTABLE 120
-#define EREMOTEIO_PORTABLE 121
-#define EDQUOT_PORTABLE 122
-
-#define ENOMEDIUM_PORTABLE 123
-#define EMEDIUMTYPE_PORTABLE 124
-#define ECANCELED_PORTABLE 125
-#define ENOKEY_PORTABLE 126
-#define EKEYEXPIRED_PORTABLE 127
-#define EKEYREVOKED_PORTABLE 128
-#define EKEYREJECTED_PORTABLE 129
-
-#define EOWNERDEAD_PORTABLE 130
-#define ENOTRECOVERABLE_PORTABLE 131
-#define ERFKILL_PORTABLE 132
-#define EHWPOISON_PORTABLE 133
-
-extern volatile int* REAL(__errno)();
-
-static int errno_ntop(int native_errno)
-{
-    switch (native_errno) {
-      case ENAMETOOLONG: return ENAMETOOLONG_PORTABLE;
-      case ENOLCK: return ENOLCK_PORTABLE;
-      case ENOSYS: return ENOSYS_PORTABLE;
-      case ENOTEMPTY: return ENOTEMPTY_PORTABLE;
-      case ELOOP: return ELOOP_PORTABLE;
-      case EWOULDBLOCK: return EWOULDBLOCK_PORTABLE;
-      case ENOMSG: return ENOMSG_PORTABLE;
-      case EIDRM: return EIDRM_PORTABLE;
-      case ECHRNG: return ECHRNG_PORTABLE;
-      case EL2NSYNC: return EL2NSYNC_PORTABLE;
-      case EL3HLT: return EL3HLT_PORTABLE;
-      case EL3RST: return EL3RST_PORTABLE;
-      case ELNRNG: return ELNRNG_PORTABLE;
-      case EUNATCH: return EUNATCH_PORTABLE;
-      case ENOCSI: return ENOCSI_PORTABLE;
-      case EL2HLT: return EL2HLT_PORTABLE;
-      case EBADE: return EBADE_PORTABLE;
-      case EBADR: return EBADR_PORTABLE;
-      case EXFULL: return EXFULL_PORTABLE;
-      case ENOANO: return ENOANO_PORTABLE;
-      case EBADRQC: return EBADRQC_PORTABLE;
-      case EBADSLT: return EBADSLT_PORTABLE;
-      case EDEADLOCK: return EDEADLOCK_PORTABLE;
-      case EBFONT: return EBFONT_PORTABLE;
-      case ENOSTR: return ENOSTR_PORTABLE;
-      case ENODATA: return ENODATA_PORTABLE;
-      case ETIME: return ETIME_PORTABLE;
-      case ENOSR: return ENOSR_PORTABLE;
-      case ENONET: return ENONET_PORTABLE;
-      case ENOPKG: return ENOPKG_PORTABLE;
-      case EREMOTE: return EREMOTE_PORTABLE;
-      case ENOLINK: return ENOLINK_PORTABLE;
-      case EADV: return EADV_PORTABLE;
-      case ESRMNT: return ESRMNT_PORTABLE;
-      case ECOMM: return ECOMM_PORTABLE;
-      case EPROTO: return EPROTO_PORTABLE;
-      case EMULTIHOP: return EMULTIHOP_PORTABLE;
-      case EDOTDOT: return EDOTDOT_PORTABLE;
-      case EBADMSG: return EBADMSG_PORTABLE;
-      case EOVERFLOW: return EOVERFLOW_PORTABLE;
-      case ENOTUNIQ: return ENOTUNIQ_PORTABLE;
-      case EBADFD: return EBADFD_PORTABLE;
-      case EREMCHG: return EREMCHG_PORTABLE;
-      case ELIBACC: return ELIBACC_PORTABLE;
-      case ELIBBAD: return ELIBBAD_PORTABLE;
-      case ELIBSCN: return ELIBSCN_PORTABLE;
-      case ELIBMAX: return ELIBMAX_PORTABLE;
-      case ELIBEXEC: return ELIBEXEC_PORTABLE;
-      case EILSEQ: return EILSEQ_PORTABLE;
-      case ERESTART: return ERESTART_PORTABLE;
-      case ESTRPIPE: return ESTRPIPE_PORTABLE;
-      case EUSERS: return EUSERS_PORTABLE;
-      case ENOTSOCK: return ENOTSOCK_PORTABLE;
-      case EDESTADDRREQ: return EDESTADDRREQ_PORTABLE;
-      case EMSGSIZE: return EMSGSIZE_PORTABLE;
-      case EPROTOTYPE: return EPROTOTYPE_PORTABLE;
-      case ENOPROTOOPT: return ENOPROTOOPT_PORTABLE;
-      case EPROTONOSUPPORT: return EPROTONOSUPPORT_PORTABLE;
-      case ESOCKTNOSUPPORT: return ESOCKTNOSUPPORT_PORTABLE;
-      case EOPNOTSUPP: return EOPNOTSUPP_PORTABLE;
-      case EPFNOSUPPORT: return EPFNOSUPPORT_PORTABLE;
-      case EAFNOSUPPORT: return EAFNOSUPPORT_PORTABLE;
-      case EADDRINUSE: return EADDRINUSE_PORTABLE;
-      case EADDRNOTAVAIL: return EADDRNOTAVAIL_PORTABLE;
-      case ENETDOWN: return ENETDOWN_PORTABLE;
-      case ENETUNREACH: return ENETUNREACH_PORTABLE;
-      case ENETRESET: return ENETRESET_PORTABLE;
-      case ECONNABORTED: return ECONNABORTED_PORTABLE;
-      case ECONNRESET: return ECONNRESET_PORTABLE;
-      case ENOBUFS: return ENOBUFS_PORTABLE;
-      case EISCONN: return EISCONN_PORTABLE;
-      case ENOTCONN: return ENOTCONN_PORTABLE;
-      case ESHUTDOWN: return ESHUTDOWN_PORTABLE;
-      case ETOOMANYREFS: return ETOOMANYREFS_PORTABLE;
-      case ETIMEDOUT: return ETIMEDOUT_PORTABLE;
-      case ECONNREFUSED: return ECONNREFUSED_PORTABLE;
-      case EHOSTDOWN: return EHOSTDOWN_PORTABLE;
-      case EHOSTUNREACH: return EHOSTUNREACH_PORTABLE;
-      case EALREADY: return EALREADY_PORTABLE;
-      case EINPROGRESS: return EINPROGRESS_PORTABLE;
-      case ESTALE: return ESTALE_PORTABLE;
-      case EUCLEAN: return EUCLEAN_PORTABLE;
-      case ENOTNAM: return ENOTNAM_PORTABLE;
-      case ENAVAIL: return ENAVAIL_PORTABLE;
-      case EISNAM: return EISNAM_PORTABLE;
-      case EREMOTEIO: return EREMOTEIO_PORTABLE;
-      case EDQUOT: return EDQUOT_PORTABLE;
-      case ENOMEDIUM: return ENOMEDIUM_PORTABLE;
-      case EMEDIUMTYPE: return EMEDIUMTYPE_PORTABLE;
-      case ECANCELED: return ECANCELED_PORTABLE;
-      case ENOKEY: return ENOKEY_PORTABLE;
-      case EKEYEXPIRED: return EKEYEXPIRED_PORTABLE;
-      case EKEYREVOKED: return EKEYREVOKED_PORTABLE;
-      case EKEYREJECTED: return EKEYREJECTED_PORTABLE;
-      case EOWNERDEAD: return EOWNERDEAD_PORTABLE;
-      case ENOTRECOVERABLE: return ENOTRECOVERABLE_PORTABLE;
-    }
-    return native_errno;
-}
-
-static int errno_pton(int portable_errno)
-{
-    switch (portable_errno) {
-      case ENAMETOOLONG_PORTABLE: return ENAMETOOLONG;
-      case ENOLCK_PORTABLE: return ENOLCK;
-      case ENOSYS_PORTABLE: return ENOSYS;
-      case ENOTEMPTY_PORTABLE: return ENOTEMPTY;
-      case ELOOP_PORTABLE: return ELOOP;
-      case EWOULDBLOCK_PORTABLE: return EWOULDBLOCK;
-      case ENOMSG_PORTABLE: return ENOMSG;
-      case EIDRM_PORTABLE: return EIDRM;
-      case ECHRNG_PORTABLE: return ECHRNG;
-      case EL2NSYNC_PORTABLE: return EL2NSYNC;
-      case EL3HLT_PORTABLE: return EL3HLT;
-      case EL3RST_PORTABLE: return EL3RST;
-      case ELNRNG_PORTABLE: return ELNRNG;
-      case EUNATCH_PORTABLE: return EUNATCH;
-      case ENOCSI_PORTABLE: return ENOCSI;
-      case EL2HLT_PORTABLE: return EL2HLT;
-      case EBADE_PORTABLE: return EBADE;
-      case EBADR_PORTABLE: return EBADR;
-      case EXFULL_PORTABLE: return EXFULL;
-      case ENOANO_PORTABLE: return ENOANO;
-      case EBADRQC_PORTABLE: return EBADRQC;
-      case EBADSLT_PORTABLE: return EBADSLT;
-      case EDEADLOCK_PORTABLE: return EDEADLOCK;
-      case EBFONT_PORTABLE: return EBFONT;
-      case ENOSTR_PORTABLE: return ENOSTR;
-      case ENODATA_PORTABLE: return ENODATA;
-      case ETIME_PORTABLE: return ETIME;
-      case ENOSR_PORTABLE: return ENOSR;
-      case ENONET_PORTABLE: return ENONET;
-      case ENOPKG_PORTABLE: return ENOPKG;
-      case EREMOTE_PORTABLE: return EREMOTE;
-      case ENOLINK_PORTABLE: return ENOLINK;
-      case EADV_PORTABLE: return EADV;
-      case ESRMNT_PORTABLE: return ESRMNT;
-      case ECOMM_PORTABLE: return ECOMM;
-      case EPROTO_PORTABLE: return EPROTO;
-      case EMULTIHOP_PORTABLE: return EMULTIHOP;
-      case EDOTDOT_PORTABLE: return EDOTDOT;
-      case EBADMSG_PORTABLE: return EBADMSG;
-      case EOVERFLOW_PORTABLE: return EOVERFLOW;
-      case ENOTUNIQ_PORTABLE: return ENOTUNIQ;
-      case EBADFD_PORTABLE: return EBADFD;
-      case EREMCHG_PORTABLE: return EREMCHG;
-      case ELIBACC_PORTABLE: return ELIBACC;
-      case ELIBBAD_PORTABLE: return ELIBBAD;
-      case ELIBSCN_PORTABLE: return ELIBSCN;
-      case ELIBMAX_PORTABLE: return ELIBMAX;
-      case ELIBEXEC_PORTABLE: return ELIBEXEC;
-      case EILSEQ_PORTABLE: return EILSEQ;
-      case ERESTART_PORTABLE: return ERESTART;
-      case ESTRPIPE_PORTABLE: return ESTRPIPE;
-      case EUSERS_PORTABLE: return EUSERS;
-      case ENOTSOCK_PORTABLE: return ENOTSOCK;
-      case EDESTADDRREQ_PORTABLE: return EDESTADDRREQ;
-      case EMSGSIZE_PORTABLE: return EMSGSIZE;
-      case EPROTOTYPE_PORTABLE: return EPROTOTYPE;
-      case ENOPROTOOPT_PORTABLE: return ENOPROTOOPT;
-      case EPROTONOSUPPORT_PORTABLE: return EPROTONOSUPPORT;
-      case ESOCKTNOSUPPORT_PORTABLE: return ESOCKTNOSUPPORT;
-      case EOPNOTSUPP_PORTABLE: return EOPNOTSUPP;
-      case EPFNOSUPPORT_PORTABLE: return EPFNOSUPPORT;
-      case EAFNOSUPPORT_PORTABLE: return EAFNOSUPPORT;
-      case EADDRINUSE_PORTABLE: return EADDRINUSE;
-      case EADDRNOTAVAIL_PORTABLE: return EADDRNOTAVAIL;
-      case ENETDOWN_PORTABLE: return ENETDOWN;
-      case ENETUNREACH_PORTABLE: return ENETUNREACH;
-      case ENETRESET_PORTABLE: return ENETRESET;
-      case ECONNABORTED_PORTABLE: return ECONNABORTED;
-      case ECONNRESET_PORTABLE: return ECONNRESET;
-      case ENOBUFS_PORTABLE: return ENOBUFS;
-      case EISCONN_PORTABLE: return EISCONN;
-      case ENOTCONN_PORTABLE: return ENOTCONN;
-      case ESHUTDOWN_PORTABLE: return ESHUTDOWN;
-      case ETOOMANYREFS_PORTABLE: return ETOOMANYREFS;
-      case ETIMEDOUT_PORTABLE: return ETIMEDOUT;
-      case ECONNREFUSED_PORTABLE: return ECONNREFUSED;
-      case EHOSTDOWN_PORTABLE: return EHOSTDOWN;
-      case EHOSTUNREACH_PORTABLE: return EHOSTUNREACH;
-      case EALREADY_PORTABLE: return EALREADY;
-      case EINPROGRESS_PORTABLE: return EINPROGRESS;
-      case ESTALE_PORTABLE: return ESTALE;
-      case EUCLEAN_PORTABLE: return EUCLEAN;
-      case ENOTNAM_PORTABLE: return ENOTNAM;
-      case ENAVAIL_PORTABLE: return ENAVAIL;
-      case EISNAM_PORTABLE: return EISNAM;
-      case EREMOTEIO_PORTABLE: return EREMOTEIO;
-      case EDQUOT_PORTABLE: return EDQUOT;
-      case ENOMEDIUM_PORTABLE: return ENOMEDIUM;
-      case EMEDIUMTYPE_PORTABLE: return EMEDIUMTYPE;
-      case ECANCELED_PORTABLE: return ECANCELED;
-      case ENOKEY_PORTABLE: return ENOKEY;
-      case EKEYEXPIRED_PORTABLE: return EKEYEXPIRED;
-      case EKEYREVOKED_PORTABLE: return EKEYREVOKED;
-      case EKEYREJECTED_PORTABLE: return EKEYREJECTED;
-      case EOWNERDEAD_PORTABLE: return EOWNERDEAD;
-      case ENOTRECOVERABLE_PORTABLE: return ENOTRECOVERABLE;
-    }
-    return portable_errno;
-}
-
-/* Key for the thread-specific portable errno */
-static pthread_key_t errno_key;
-
-/* Once-only initialisation of the key */
-static pthread_once_t errno_key_once = PTHREAD_ONCE_INIT;
-
-/* Free the thread-specific portable errno */
-static void errno_key_destroy(void *buf)
-{
-    if (buf)
-        free(buf);
-}
-
-/* Allocate the key */
-static void errno_key_create(void)
-{
-    pthread_key_create(&errno_key, errno_key_destroy);
-}
-
-struct errno_state {
-    int pshadow;                /* copy of last portable errno */
-    int perrno;                 /* portable errno that may be modified by app */
-};
-
-/* Return the thread-specific portable errno */
-static struct errno_state *errno_key_data(void)
-{
-    struct errno_state *data;
-    static struct errno_state errno_state;
-
-    pthread_once(&errno_key_once, errno_key_create);
-    data = (struct errno_state *)pthread_getspecific(errno_key);
-    if (data == NULL) {
-        data = malloc(sizeof(struct errno_state));
-        pthread_setspecific(errno_key, data);
-    }
-    if (data == NULL)
-        data = &errno_state;
-    return data;
-}
-
-/*
- * Attempt to return a thread specific location containnig the portable errno.
- * This can be assigned to without affecting the native errno. If the key
- * allocation fails fall back to using the native errno location.
- */
-volatile int* WRAP(__errno)()
-{
-    struct errno_state *p;
-    int save_errno;
-
-    /* pthread_* calls may modify errno so use a copy */
-    save_errno = *REAL(__errno)();
-
-    p = errno_key_data();
-
-    ALOGV(" ");
-    ALOGV("%s(): { save_errno = errno:%d, (p:%p)->{pshadow:%d, perrno:%d}", __func__,
-                   save_errno,             p,   p->pshadow, p->perrno);
-
-    if (save_errno == 0 && p->pshadow != p->perrno) {
-        /*
-         * portable errno has changed but native hasn't
-         * - copy portable error back to native
-         */
-        p->pshadow = p->perrno;
-        save_errno = errno_pton(p->perrno);
-    }
-    else if (save_errno != 0 && p->pshadow == p->perrno) {
-        /*
-         * Native errno has changed but portable hasn't
-         * - copy native error to portable.
-         */
-        p->pshadow = p->perrno = errno_ntop(save_errno);
-        save_errno = 0;
-    }
-    else if (save_errno != 0 && p->pshadow != p->perrno) {
-        /*
-         * Both native and portable errno values have changed
-         * so give priority to native errno
-         * - copy native error to portable
-         */
-        p->pshadow = p->perrno = errno_ntop(save_errno);
-        save_errno = 0;
-    }
-
-    ALOGV("%s: new save_errno:%d p:%p->{pshadow:%d, perrno:%d}", __func__,
-                   save_errno,   p,  p->pshadow, p->perrno);
-
-    *REAL(__errno)() = save_errno;
-
-    ALOGV("%s: return (&p->perrno):%p; }", __func__, &p->perrno);
-
-    /* return pointer to the modifiable portable errno value */
-    return &p->perrno;
-}
-
-
-/* set portable errno */
-void WRAP(__set_errno)(int portable_errno)
-{
-    struct errno_state *p;
-    int save_errno;
-
-    /* pthread_* calls may modify errno so use a copy */
-    save_errno = *REAL(__errno)();
-
-    p = errno_key_data();
-
-    ALOGV("%s(): { save_errno = errno:%d, p:%p->{pshadow:%d, perrno:%d}", __func__,
-                   save_errno,            p,  p->pshadow, p->perrno);
-
-    p->pshadow = p->perrno = portable_errno;
-
-    save_errno = errno_pton(portable_errno);
-
-    ALOGV("%s: new save_errno:%d, p:%p->{pshadow:%d, perrno:%d}", __func__,
-                   save_errno,    p,  p->pshadow, p->perrno);
-
-    *REAL(__errno)() = save_errno;
-
-    ALOGV("%s: return; }", __func__);
-}
-
-extern char* REAL(strerror)(int);
-char *WRAP(strerror)(int errnum)
-{
-    return REAL(strerror)(errno_pton(errnum));
-}
-
-/* BSD style strerror_r */
-int WRAP(strerror_r)(int errnum, char *buf, size_t buflen)
-{
-    return REAL(strerror_r)(errno_pton(errnum), buf, buflen);
-}
-#endif /* _ERRNO_PORTABLE_H */
diff --git a/ndk/sources/android/libportable/common/include/fcntl_portable.h b/ndk/sources/android/libportable/common/include/fcntl_portable.h
deleted file mode 100644
index 08b3b2b..0000000
--- a/ndk/sources/android/libportable/common/include/fcntl_portable.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _FCNTL_PORTABLE_H_
-#define _FCNTL_PORTABLE_H_
-#endif
-
-#include <portability.h>
-#include <fcntl.h>
-#include <stdarg.h>
-
-#define O_DIRECTORY_PORTABLE  040000
-#define O_NOFOLLOW_PORTABLE   0100000
-#define O_DIRECT_PORTABLE     0200000
-#define O_LARGEFILE_PORTABLE  0400000
-
-static int flags_p2n(int p_flags)
-{
-  int machine_flags = p_flags;
-  if (p_flags & O_DIRECTORY_PORTABLE) {
-    machine_flags ^= O_DIRECTORY_PORTABLE;
-    machine_flags |= O_DIRECTORY;
-  }
-  if (p_flags & O_NOFOLLOW_PORTABLE) {
-    machine_flags ^= O_NOFOLLOW_PORTABLE;
-    machine_flags |= O_NOFOLLOW;
-  }
-  if (p_flags & O_DIRECT_PORTABLE) {
-    machine_flags ^= O_DIRECT_PORTABLE;
-    machine_flags |= O_DIRECT;
-  }
-  if (p_flags & O_LARGEFILE_PORTABLE) {
-    machine_flags ^= O_LARGEFILE_PORTABLE;
-    machine_flags |= O_LARGEFILE;
-  }
-
-  return machine_flags;
-}
-
-#define FLAGS_VAARGS_TRANSLATE \
-  flags = flags_p2n(flags); \
-  mode_t mode = 0; \
-  if ((flags & O_CREAT) != 0) { \
-    va_list args; \
-    va_start(args, flags); \
-    mode = (mode_t) va_arg(args, int); \
-    va_end(args);\
-  }
-
-
-int WRAP(openat)(int fd, const char* path, int flags, ...)
-{
-  FLAGS_VAARGS_TRANSLATE
-  return REAL(openat)(fd, path, flags, mode);
-}
-
-int WRAP(openat64)(int fd, const char* path, int flags, ...)
-{
-  FLAGS_VAARGS_TRANSLATE
-  return REAL(openat64)(fd, path, flags, mode);
-}
-
-int WRAP(open)(const char* path, int flags, ...)
-{
-  FLAGS_VAARGS_TRANSLATE
-  return REAL(open)(path, flags, mode);
-}
-
-int WRAP(open64)(const char* path, int flags, ...)
-{
-  FLAGS_VAARGS_TRANSLATE
-  return REAL(open64)(path, flags, mode);
-}
diff --git a/ndk/sources/android/libportable/common/include/fenv_portable.h b/ndk/sources/android/libportable/common/include/fenv_portable.h
deleted file mode 100644
index 97a2876..0000000
--- a/ndk/sources/android/libportable/common/include/fenv_portable.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _FENV_PORTABLE_H_
-#define _FENV_PORTABLE_H_
-
-#include <fenv.h>
-#include <portability.h>
-#include <stdint.h>
-#include <stdlib.h>
-
-typedef struct {
-  unsigned char a[128];
-} fenv_t_portable;
-typedef uint32_t fexcept_t_portable;
-
-/* Exception flags. */
-#define FE_INVALID_PORTABLE    0x01
-#define FE_DIVBYZERO_PORTABLE  0x02
-#define FE_OVERFLOW_PORTABLE   0x04
-#define FE_UNDERFLOW_PORTABLE  0x08
-#define FE_INEXACT_PORTABLE    0x10
-#define FE_ALL_EXCEPT_PORTABLE (FE_DIVBYZERO_PORTABLE | FE_INEXACT_PORTABLE | FE_INVALID_PORTABLE |\
-                                FE_OVERFLOW_PORTABLE | FE_UNDERFLOW_PORTABLE)
-
-/* Rounding modes. */
-#define FE_TONEAREST_PORTABLE  0x0
-#define FE_UPWARD_PORTABLE     0x1
-#define FE_DOWNWARD_PORTABLE   0x2
-#define FE_TOWARDZERO_PORTABLE 0x3
-
-
-static inline int target_change_except(int flags)
-{
-    int targetflags = 0;
-
-    if (flags & FE_INVALID_PORTABLE)
-        targetflags |= FE_INVALID;
-    if (flags & FE_DIVBYZERO_PORTABLE)
-        targetflags |= FE_DIVBYZERO;
-    if (flags & FE_OVERFLOW_PORTABLE)
-        targetflags |= FE_OVERFLOW;
-    if (flags & FE_UNDERFLOW_PORTABLE)
-        targetflags |= FE_UNDERFLOW;
-    if (flags & FE_INEXACT_PORTABLE)
-        targetflags |= FE_INEXACT;
-
-    return targetflags;
-}
-
-static inline int target_change_rounding(int flags)
-{
-    int targetflags = 0;
-
-    switch(flags)
-    {
-      case FE_TONEAREST_PORTABLE:
-        targetflags = FE_TONEAREST;
-        break;
-      case FE_DOWNWARD_PORTABLE:
-        targetflags = FE_DOWNWARD;
-        break;
-      case FE_UPWARD_PORTABLE:
-        targetflags = FE_UPWARD;
-        break;
-      case FE_TOWARDZERO_PORTABLE:
-        targetflags = FE_TOWARDZERO;
-        break;
-    }
-    return targetflags;
-}
-
-static inline int target_get_except(int targetflags)
-{
-    int flags = 0;
-
-    if (targetflags & FE_INVALID)
-        flags |= FE_INVALID_PORTABLE;
-    if (targetflags & FE_DIVBYZERO)
-        flags |= FE_DIVBYZERO_PORTABLE;
-    if (targetflags & FE_OVERFLOW)
-        flags |= FE_OVERFLOW_PORTABLE;
-    if (targetflags & FE_UNDERFLOW)
-        flags |= FE_UNDERFLOW_PORTABLE;
-    if (targetflags & FE_INEXACT)
-        flags |= FE_INEXACT_PORTABLE;
-    return flags;
-}
-
-static inline int target_get_rounding(int targetflags)
-{
-    int flags = 0;
-
-    switch(targetflags)
-    {
-      case FE_TONEAREST:
-        flags = FE_TONEAREST_PORTABLE;
-        break;
-      case FE_DOWNWARD:
-        flags = FE_DOWNWARD_PORTABLE;
-        break;
-      case FE_UPWARD:
-        flags = FE_UPWARD_PORTABLE;
-        break;
-      case FE_TOWARDZERO:
-        flags = FE_TOWARDZERO_PORTABLE;
-        break;
-    }
-    return flags;
-}
-
-
-int WRAP(fegetenv)(fenv_t_portable* __envp) {
-  return REAL(fegetenv)((fenv_t*) __envp);
-}
-
-int WRAP(fesetenv)(const fenv_t_portable* __envp) {
-  return REAL(fesetenv)((fenv_t*) __envp);
-}
-
-int WRAP(feclearexcept)(int __excepts) {
-  __excepts = target_change_except(__excepts);
-  return REAL(feclearexcept)(__excepts);
-}
-
-int WRAP(fegetexceptflag)(fexcept_t_portable* __flagp, int __excepts) {
-  __excepts = target_change_except(__excepts);
-  int ret = REAL(fegetexceptflag)((fexcept_t*) __flagp, __excepts);
-  *__flagp = target_get_except(*__flagp);
-  return ret;
-}
-
-int WRAP(fesetexceptflag)(const fexcept_t_portable* __flagp, int __excepts) {
-  __excepts = target_change_except(__excepts);
-  return REAL(fesetexceptflag)((const fexcept_t*) __flagp, __excepts);
-}
-
-int WRAP(feraiseexcept)(int __excepts) {
-  __excepts = target_change_except(__excepts);
-  return REAL(feraiseexcept)(__excepts);
-}
-
-int WRAP(fetestexcept)(int __excepts) {
-  __excepts = target_change_except(__excepts);
-  return target_get_except(REAL(fetestexcept)(__excepts));
-}
-
-int WRAP(fegetround)(void) {
-  int rounding = REAL(fegetround)();
-  return target_get_rounding(rounding);
-}
-
-int WRAP(fesetround)(int __round) {
-  __round = target_change_rounding(__round);
-  return REAL(fesetround)(__round);
-}
-
-int WRAP(feholdexcept)(fenv_t_portable* __envp) {
-  memset(__envp, '\0', sizeof(fenv_t_portable));
-  fenv_t env;
-  int ret = REAL(feholdexcept)(&env);
-  memcpy(__envp, &env, sizeof(env));
-  return ret;
-}
-
-int WRAP(feupdateenv)(const fenv_t_portable* __envp) {
-  fenv_t env;
-  memcpy(&env, __envp, sizeof(env));
-  return REAL(feupdateenv)(&env);
-}
-
-int WRAP(feenableexcept)(int __excepts) {
-  __excepts = target_change_except(__excepts);
-  return REAL(feenableexcept)(__excepts);
-}
-
-int WRAP(fedisableexcept)(int __excepts) {
-  __excepts = target_change_except(__excepts);
-  return REAL(fedisableexcept)(__excepts);
-}
-
-#endif /* _FENV_PORTABLE_H_ */
diff --git a/ndk/sources/android/libportable/common/include/portability.h b/ndk/sources/android/libportable/common/include/portability.h
deleted file mode 100644
index 21bcb50..0000000
--- a/ndk/sources/android/libportable/common/include/portability.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _PORTABILITY_H_
-#define _PORTABILITY_H_
-
-/*
- * Hidden functions are exposed while linking the libportable shared object
- * but are not exposed thereafter.
- */
-#define __hidden __attribute__((visibility("hidden")))
-
-#if !defined(__HOST__)
-#define WRAP(f)     f ## _portable
-#define REAL(f)     f
-#else
-/* On host app link with libpportable.a with -Wl,--wrap=symbol, which resolves undefined symbol to __wrap_symbol,
- * and undefined __real_symbol to the original symbol
- */
-#define WRAP(f)     __wrap_ ## f
-#define REAL(f)     __real_ ## f
-#endif
-
-
-#endif /* _PORTABILITY_H_ */
diff --git a/ndk/sources/android/libportable/common/include/signal_portable.h b/ndk/sources/android/libportable/common/include/signal_portable.h
deleted file mode 100644
index e80db4b..0000000
--- a/ndk/sources/android/libportable/common/include/signal_portable.h
+++ /dev/null
@@ -1,442 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _SIGNAL_PORTABLE_H_
-#define _SIGNAL_PORTABLE_H_
-
-#if (__mips__)
-
-#include <portability.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-struct stack_t_portable {
-  void *ss_sp;
-  int ss_flags;
-  size_t ss_size;
-};
-
-static inline void stack_t_pton(const struct stack_t_portable *ptr_p, stack_t *ptr_n) {
-  memset(ptr_n, '\0', sizeof(stack_t));
-  ptr_n->ss_sp    = ptr_p->ss_sp;
-  ptr_n->ss_flags = ptr_p->ss_flags;
-  ptr_n->ss_size  = ptr_p->ss_size;
-}
-
-static inline void stack_t_ntop(const stack_t *ptr_n, struct stack_t_portable *ptr_p) {
-  memset(ptr_p, '\0', sizeof(struct stack_t_portable));
-  ptr_p->ss_sp    = ptr_n->ss_sp;
-  ptr_p->ss_flags = ptr_n->ss_flags;
-  ptr_p->ss_size  = ptr_n->ss_size;
-}
-
-int WRAP(sigaltstack)(const struct stack_t_portable *ss, struct stack_t_portable *oss) {
-  stack_t ss_n, oss_n;
-  if (ss != NULL) {
-    stack_t_pton(ss, &ss_n);
-    if (oss != NULL){
-      int ret = REAL(sigaltstack)(&ss_n, &oss_n);
-      stack_t_ntop(&oss_n, oss);
-      return ret;
-    }
-    else
-      return REAL(sigaltstack)(&ss_n, NULL);
-  }
-  else if (oss != NULL) {
-    int ret = REAL(sigaltstack)(NULL, &oss_n);
-    stack_t_ntop(&oss_n, oss);
-    return ret;
-  }
-  else
-    return REAL(sigaltstack)(NULL, NULL);
-}
-
-#define SIGHUP_PORTABLE 1
-#define SIGINT_PORTABLE 2
-#define SIGQUIT_PORTABLE 3
-#define SIGILL_PORTABLE 4
-#define SIGTRAP_PORTABLE 5
-#define SIGABRT_PORTABLE 6
-#define SIGIOT_PORTABLE 6
-#define SIGBUS_PORTABLE 7
-#define SIGFPE_PORTABLE 8
-#define SIGKILL_PORTABLE 9
-#define SIGUSR1_PORTABLE 10
-#define SIGSEGV_PORTABLE 11
-#define SIGUSR2_PORTABLE 12
-#define SIGPIPE_PORTABLE 13
-#define SIGALRM_PORTABLE 14
-#define SIGTERM_PORTABLE 15
-// unsupported in MIPS
-#define SIGSTKFLT_PORTABLE 16
-//
-#define SIGCHLD_PORTABLE 17
-#define SIGCONT_PORTABLE 18
-#define SIGSTOP_PORTABLE 19
-#define SIGTSTP_PORTABLE 20
-#define SIGTTIN_PORTABLE 21
-#define SIGTTOU_PORTABLE 22
-#define SIGURG_PORTABLE 23
-#define SIGXCPU_PORTABLE 24
-#define SIGXFSZ_PORTABLE 25
-#define SIGVTALRM_PORTABLE 26
-#define SIGPROF_PORTABLE 27
-#define SIGWINCH_PORTABLE 28
-#define SIGIO_PORTABLE 29
-#define SIGPOLL_PORTABLE SIGIO_PORTABLE
-#define SIGPWR_PORTABLE 30
-#define SIGSYS_PORTABLE 31
-#define SIGUNUSED_PORTABLE 31
-// unsupported in MIPS
-#define SIGSWI_PORTABLE 32
-//
-
-static inline int signo_pton(int signum_p) {
-  switch(signum_p) {
-    case SIGHUP_PORTABLE: return SIGHUP;
-    case SIGINT_PORTABLE: return SIGINT;
-    case SIGQUIT_PORTABLE: return SIGQUIT;
-    case SIGILL_PORTABLE: return SIGILL;
-    case SIGTRAP_PORTABLE: return SIGTRAP;
-    case SIGABRT_PORTABLE: return SIGABRT;
-    case SIGBUS_PORTABLE: return SIGBUS;
-    case SIGFPE_PORTABLE: return SIGFPE;
-    case SIGKILL_PORTABLE: return SIGKILL;
-    case SIGUSR1_PORTABLE: return SIGUSR1;
-    case SIGSEGV_PORTABLE: return SIGSEGV;
-    case SIGUSR2_PORTABLE: return SIGUSR2;
-    case SIGPIPE_PORTABLE: return SIGPIPE;
-    case SIGALRM_PORTABLE: return SIGALRM;
-    case SIGTERM_PORTABLE: return SIGTERM;
-    case SIGCHLD_PORTABLE: return SIGCHLD;
-    case SIGCONT_PORTABLE: return SIGCONT;
-    case SIGSTOP_PORTABLE: return SIGSTOP;
-    case SIGTSTP_PORTABLE: return SIGTSTP;
-    case SIGTTIN_PORTABLE: return SIGTTIN;
-    case SIGTTOU_PORTABLE: return SIGTTOU;
-    case SIGURG_PORTABLE: return SIGURG;
-    case SIGXCPU_PORTABLE: return SIGXCPU;
-    case SIGXFSZ_PORTABLE: return SIGXFSZ;
-    case SIGVTALRM_PORTABLE: return SIGVTALRM;
-    case SIGPROF_PORTABLE: return SIGPROF;
-    case SIGWINCH_PORTABLE: return SIGWINCH;
-    case SIGIO_PORTABLE: return SIGIO;
-    case SIGPWR_PORTABLE: return SIGPWR;
-    case SIGSYS_PORTABLE: return SIGSYS;
-    default:
-      fprintf(stderr, "Unknown SIGNAL:%d\n", signum_p);
-      abort();
-  }
-}
-
-static inline int signo_ntop(int signum_n) {
-  switch(signum_n) {
-    case SIGHUP: return SIGHUP_PORTABLE;
-    case SIGINT: return SIGINT_PORTABLE;
-    case SIGQUIT: return SIGQUIT_PORTABLE;
-    case SIGILL: return SIGILL_PORTABLE;
-    case SIGTRAP: return SIGTRAP_PORTABLE;
-    case SIGABRT: return SIGABRT_PORTABLE;
-    case SIGBUS: return SIGBUS_PORTABLE;
-    case SIGFPE: return SIGFPE_PORTABLE;
-    case SIGKILL: return SIGKILL_PORTABLE;
-    case SIGUSR1: return SIGUSR1_PORTABLE;
-    case SIGSEGV: return SIGSEGV_PORTABLE;
-    case SIGUSR2: return SIGUSR2_PORTABLE;
-    case SIGPIPE: return SIGPIPE_PORTABLE;
-    case SIGALRM: return SIGALRM_PORTABLE;
-    case SIGTERM: return SIGTERM_PORTABLE;
-    case SIGCHLD: return SIGCHLD_PORTABLE;
-    case SIGCONT: return SIGCONT_PORTABLE;
-    case SIGSTOP: return SIGSTOP_PORTABLE;
-    case SIGTSTP: return SIGTSTP_PORTABLE;
-    case SIGTTIN: return SIGTTIN_PORTABLE;
-    case SIGTTOU: return SIGTTOU_PORTABLE;
-    case SIGURG: return SIGURG_PORTABLE;
-    case SIGXCPU: return SIGXCPU_PORTABLE;
-    case SIGXFSZ: return SIGXFSZ_PORTABLE;
-    case SIGVTALRM: return SIGVTALRM_PORTABLE;
-    case SIGPROF: return SIGPROF_PORTABLE;
-    case SIGWINCH: return SIGWINCH_PORTABLE;
-    case SIGIO: return SIGIO_PORTABLE;
-    case SIGPWR: return SIGPWR_PORTABLE;
-    case SIGSYS: return SIGSYS_PORTABLE;
-    default:
-      fprintf(stderr, "Unknown SIGNAL:%d\n", signum_n);
-      abort();
-  }
-}
-
-#define SA_NOCLDSTOP_PORTABLE 0x00000001
-#define SA_NOCLDWAIT_PORTABLE 0x00000002
-#define SA_SIGINFO_PORTABLE 0x00000004
-// unsupported in MIPS
-#define SA_THIRTYTWO_PORTABLE 0x02000000
-#define SA_RESTORER_PORTABLE 0x04000000
-//
-#define SA_ONSTACK_PORTABLE 0x08000000
-#define SA_RESTART_PORTABLE 0x10000000
-#define SA_NODEFER_PORTABLE 0x40000000
-#define SA_RESETHAND_PORTABLE 0x80000000
-#define SA_NOMASK_PORTABLE SA_NODEFER_PORTABLE
-#define SA_ONESHOT_PORTABLE SA_RESETHAND_PORTABLE
-
-static inline int sa_flags_pton(int sa_flags_p) {
-  int sa_flags_n = 0;
-  sa_flags_n |= (sa_flags_p & SA_NOCLDSTOP_PORTABLE) ? SA_NOCLDSTOP : 0;
-  sa_flags_n |= (sa_flags_p & SA_NOCLDWAIT_PORTABLE) ? SA_NOCLDWAIT : 0;
-  sa_flags_n |= (sa_flags_p & SA_SIGINFO_PORTABLE) ? SA_SIGINFO : 0;
-  sa_flags_n |= (sa_flags_p & SA_ONSTACK_PORTABLE) ? SA_ONSTACK : 0;
-  sa_flags_n |= (sa_flags_p & SA_RESTART_PORTABLE) ? SA_RESTART : 0;
-  sa_flags_n |= (sa_flags_p & SA_NODEFER_PORTABLE) ? SA_NODEFER : 0;
-  sa_flags_n |= (sa_flags_p & SA_RESETHAND_PORTABLE) ? SA_RESETHAND : 0;
-  return sa_flags_n;
-}
-
-static inline int sa_flags_ntop(int sa_flags_n) {
-  int sa_flags_p = 0;
-  sa_flags_p |= (sa_flags_n & SA_NOCLDSTOP) ? SA_NOCLDSTOP_PORTABLE : 0;
-  sa_flags_p |= (sa_flags_n & SA_NOCLDWAIT) ? SA_NOCLDWAIT_PORTABLE : 0;
-  sa_flags_p |= (sa_flags_n & SA_SIGINFO) ? SA_SIGINFO_PORTABLE : 0;
-  sa_flags_p |= (sa_flags_n & SA_ONSTACK) ? SA_ONSTACK_PORTABLE : 0;
-  sa_flags_p |= (sa_flags_n & SA_RESTART) ? SA_RESTART_PORTABLE : 0;
-  sa_flags_p |= (sa_flags_n & SA_NODEFER) ? SA_NODEFER_PORTABLE : 0;
-  sa_flags_p |= (sa_flags_n & SA_RESETHAND) ? SA_RESETHAND_PORTABLE : 0;
-  return sa_flags_p;
-}
-
-typedef unsigned long  sigset_t_portable;
-struct sigaction_portable {
-  union {
-    __sighandler_t _sa_handler;
-    void (*_sa_sigaction)(int, struct siginfo *, void *);
-  } _u;
-  sigset_t_portable sa_mask;
-  unsigned long sa_flags;
-  void (*sa_restorer)(void); // obsolete
-};
-
-static inline void sigset_t_pton(const sigset_t_portable *ptr_p, sigset_t *ptr_n) {
-  memset(ptr_n, '\0', sizeof(sigset_t));
-  ptr_n->sig[0] = *ptr_p;
-}
-
-static inline void sigset_t_ntop(const sigset_t *ptr_n, sigset_t_portable *ptr_p) {
-  memset(ptr_p, '\0', sizeof(sigset_t_portable));
-  *ptr_p = ptr_n->sig[0];
-}
-
-static inline void sigaction_pton(const struct sigaction_portable *ptr_p, struct sigaction *ptr_n) {
-  memset(ptr_n, '\0', sizeof(struct sigaction));
-  ptr_n->sa_sigaction = ptr_p->_u._sa_sigaction;
-  sigset_t_pton(&ptr_p->sa_mask, &ptr_n->sa_mask);
-  ptr_n->sa_flags       = sa_flags_pton(ptr_p->sa_flags);
-}
-
-static inline void sigaction_ntop(const struct sigaction *ptr_n, struct sigaction_portable *ptr_p) {
-  memset(ptr_p, '\0', sizeof(struct sigaction_portable));
-  ptr_p->_u._sa_sigaction = ptr_n->sa_sigaction;
-  sigset_t_ntop(&ptr_n->sa_mask, &ptr_p->sa_mask);
-  ptr_p->sa_flags      = sa_flags_ntop(ptr_n->sa_flags);
-}
-
-int WRAP(sigaction)(int signum, const struct sigaction_portable *act, struct sigaction_portable *oldact) {
-  struct sigaction act_n, oldact_n;
-  int signum_n = signo_pton(signum);
-
-  if (act != NULL) {
-    sigaction_pton(act, &act_n);
-    if (oldact != NULL) {
-      int ret = REAL(sigaction)(signum_n, &act_n, &oldact_n);
-      sigaction_ntop(&oldact_n, oldact);
-      return ret;
-    }
-    else
-      return REAL(sigaction)(signum_n, &act_n, NULL);
-  }
-  else if (oldact != NULL) {
-    int ret = REAL(sigaction)(signum_n, NULL, &oldact_n);
-    sigaction_ntop(&oldact_n, oldact);
-    return ret;
-  }
-  else
-    return REAL(sigaction)(signum_n, NULL, NULL);
-}
-
-int WRAP(sigaddset)(sigset_t_portable *set, int signum) {
-  int signum_n = signo_pton(signum);
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  int ret = REAL(sigaddset)(&set_n, signum_n);
-  sigset_t_ntop(&set_n, set);
-  return ret;
-}
-
-int WRAP(sigdelset)(sigset_t_portable *set, int signum) {
-  int signum_n = signo_pton(signum);
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  int ret = REAL(sigdelset)(&set_n, signum_n);
-  sigset_t_ntop(&set_n, set);
-  return ret;
-}
-
-int WRAP(sigemptyset)(sigset_t_portable *set){
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  int ret = REAL(sigemptyset)(&set_n);
-  sigset_t_ntop(&set_n, set);
-  return ret;
-}
-
-int WRAP(sigfillset)(sigset_t_portable *set){
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  int ret = REAL(sigfillset)(&set_n);
-  sigset_t_ntop(&set_n, set);
-  return ret;
-}
-
-int WRAP(sigismember)(const sigset_t_portable *set, int signum) {
-  int signum_n = signo_pton(signum);
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  return REAL(sigismember)(&set_n, signum_n);
-}
-
-int WRAP(sigpending)(sigset_t_portable *set) {
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  int ret = REAL(sigpending)(&set_n);
-  sigset_t_ntop(&set_n, set);
-  return ret;
-}
-
-#define SIG_BLOCK_PORTABLE 0
-#define SIG_UNBLOCK_PORTABLE 1
-#define SIG_SETMASK_PORTABLE 2
-
-int WRAP(sigprocmask)(int how, const sigset_t_portable *set, sigset_t_portable *oldset) {
-  int how_n;
-  switch(how) {
-    case SIG_BLOCK_PORTABLE: how_n =  SIG_BLOCK; break;
-    case SIG_UNBLOCK_PORTABLE: how_n = SIG_UNBLOCK; break;
-    case SIG_SETMASK_PORTABLE: how_n = SIG_SETMASK; break;
-    default:
-      fprintf(stderr, "Unknown sigprocmask action:%d\n", how);
-      abort();
-  }
-  sigset_t set_n, oldset_n;
-  if (set != NULL) {
-    sigset_t_pton(set, &set_n);
-    if (oldset != NULL) {
-      int ret = REAL(sigprocmask)(how_n, &set_n, &oldset_n);
-      sigset_t_ntop(&oldset_n, oldset);
-      return ret;
-    }
-    else
-      return REAL(sigprocmask)(how_n, &set_n, NULL);
-  }
-  else if (oldset != NULL) {
-    int ret = REAL(sigprocmask)(how_n, NULL, &oldset_n);
-    sigset_t_ntop(&oldset_n, oldset);
-    return ret;
-  }
-  else
-    return REAL(sigprocmask)(how_n, NULL, NULL);
-}
-
-int WRAP(sigsuspend)(const sigset_t_portable *mask) {
-  sigset_t mask_n;
-  sigset_t_pton(mask, &mask_n);
-  return REAL(sigsuspend)(&mask_n);
-}
-
-int WRAP(sigwait)(const sigset_t_portable *set, int *sig) {
-  sigset_t set_n;
-  sigset_t_pton(set, &set_n);
-  int ret = REAL(sigwait)(&set_n, sig);
-  *sig = signo_ntop(*sig);
-  return ret;
-}
-
-int WRAP(kill)(pid_t pid, int sig) {
-  int sig_n = signo_pton(sig);
-  return REAL(kill)(pid, sig_n);
-}
-
-// sigset_t related function
-#include <sys/select.h>
-int WRAP(pselect)(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timespec *timeout, const sigset_t_portable *sigmask) {
-  sigset_t sigmask_n;
-  sigset_t_pton(sigmask, &sigmask_n);
-  return  REAL(pselect)(nfds, readfds, writefds, exceptfds, timeout, sigmask_n);
-}
-
-#include <sys/signalfd.h>
-int WRAP(signalfd)(int fd, const sigset_t_portable* mask, int flags) {
-  sigset_t mask_n;
-  sigset_t_pton(mask, &mask_n);
-  return REAL(signalfd)(fd, mask_n, flags);
-}
-
-#include <poll.h>
-int WRAP(ppoll)(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts, const sigset_t_portable *sigmask) {
-  sigset_t sigmask_n;
-  sigset_t_pton(sigmask, &sigmask_n);
-  return REAL(ppoll)(fds, nfds, timeout_ts, sigmask_n);
-}
-
-#include <pthread.h>
-int WRAP(pthread_sigmask)(int how, const sigset_t_portable *set, sigset_t_portable *oldset) {
-  int how_n;
-  switch(how) {
-    case SIG_BLOCK_PORTABLE: how_n =  SIG_BLOCK; break;
-    case SIG_UNBLOCK_PORTABLE: how_n = SIG_UNBLOCK; break;
-    case SIG_SETMASK_PORTABLE: how_n = SIG_SETMASK; break;
-    default:
-      fprintf(stderr, "Unknown pthread_sigmask action:%d\n", how);
-      abort();
-  }
-  sigset_t set_n, oldset_n;
-  if (set != NULL) {
-    sigset_t_pton(set, &set_n);
-    if (oldset != NULL) {
-      int ret = REAL(pthread_sigmask)(how_n, &set_n, &oldset_n);
-      sigset_t_ntop(&oldset_n, oldset);
-      return ret;
-    }
-    else
-      return REAL(pthread_sigmask)(how_n, &set_n, NULL);
-  }
-  else if (oldset != NULL) {
-    int ret = REAL(pthread_sigmask)(how_n, NULL, &oldset_n);
-    sigset_t_ntop(&oldset_n, oldset);
-    return ret;
-  }
-  else
-    return REAL(pthread_sigmask)(how_n, NULL, NULL);
-}
-
-#include <sys/epoll.h>
-int WRAP(epoll_pwait)(int fd, struct epoll_event* events, int max_events, int timeout, const sigset_t_portable* ss) {
-  sigset_t ss_n;
-  sigset_t_pton(ss, &ss_n);
-  return REAL(epoll_pwait)(fd, events, max_events, timeout, ss_n);
-}
-#endif /* __mips__ */
-#endif /* _SIGNAL_PORTABLE_H */
diff --git a/ndk/sources/android/libportable/common/include/stat_portable.h b/ndk/sources/android/libportable/common/include/stat_portable.h
deleted file mode 100644
index a2f3be7..0000000
--- a/ndk/sources/android/libportable/common/include/stat_portable.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _StatPortable_H_
-#define _StatPortable_H_
-
-#include <portability.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#define __STAT64_BODY_PORTABLE \
-  unsigned long st_dev; \
-  unsigned long st_ino; \
-  unsigned long st_mode; \
-  unsigned long st_nlink; \
-  uid_t st_uid; /* 32-bit uid_t */ \
-  unsigned char padding[4]; \
-  gid_t st_gid; /* 32-bit gid_t */ \
-  unsigned char padding2[4]; \
-  unsigned long st_rdev; \
-  long st_size; \
-  long st_blksize; \
-  long st_blocks; \
-  long st_atime; \
-  unsigned long st_atime_nsec; \
-  long st_mtime; \
-  unsigned long st_mtime_nsec; \
-  long st_ctime; \
-  unsigned long st_ctime_nsec; \
-  unsigned char padding3[8];
-
-struct StatPortable { __STAT64_BODY_PORTABLE };
-typedef struct StatPortable Stat64Portable;
-
-static inline void stat_n2p(struct stat* pn, struct StatPortable* pp)
-{
-  memset(pp, '\0', sizeof(struct StatPortable));
-  pp->st_dev        = pn->st_dev;
-  pp->st_ino        = pn->st_ino;
-  pp->st_mode       = pn->st_mode;
-  pp->st_nlink      = pn->st_nlink;
-  pp->st_uid        = pn->st_uid;
-  pp->st_gid        = pn->st_gid;
-  pp->st_rdev       = pn->st_rdev;
-  pp->st_size       = pn->st_size;
-  pp->st_blksize    = pn->st_blksize;
-  pp->st_blocks     = pn->st_blocks;
-  pp->st_atime      = pn->st_atime;
-  pp->st_atime_nsec = pn->st_atime_nsec;
-  pp->st_mtime      = pn->st_mtime;
-  pp->st_mtime_nsec = pn->st_mtime_nsec;
-  pp->st_ctime      = pn->st_ctime;
-  pp->st_ctime_nsec = pn->st_ctime_nsec;
-}
-
-int WRAP(fstat)(int a, struct StatPortable* p)
-{
-  struct stat target_stat_obj;
-  int ret = REAL(fstat)(a, &target_stat_obj);
-  stat_n2p(&target_stat_obj, p);
-  return ret;
-}
-
-int WRAP(fstat64)(int a, Stat64Portable* p)
-{
-  return WRAP(fstat)(a, p);
-}
-
-int WRAP(fstatat)(int a, const char* p1, struct StatPortable* p2, int b)
-{
-  struct stat target_stat_obj;
-  int ret = REAL(fstatat)(a, p1, &target_stat_obj, b);
-  stat_n2p(&target_stat_obj, p2);
-  return ret;
-}
-
-int WRAP(fstatat64)(int a, const char* b, Stat64Portable* c, int d)
-{
-  return WRAP(fstatat)(a, b, c, d);
-}
-
-int WRAP(lstat)(const char* a, struct StatPortable* p)
-{
-  struct stat target_stat_obj;
-  int ret = REAL(lstat)(a, &target_stat_obj);
-  stat_n2p(&target_stat_obj, p);
-  return ret;
-}
-
-int WRAP(lstat64)(const char* a, Stat64Portable* p)
-{
-  return WRAP(lstat)(a, p);
-}
-
-int WRAP(stat)(const char* a, struct StatPortable* p)
-{
-  struct stat target_stat_obj;
-  int ret = REAL(stat)(a, &target_stat_obj);
-  stat_n2p(&target_stat_obj, p);
-  return ret;
-}
-
-int WRAP(stat64)(const char* a, Stat64Portable* p)
-{
-  return WRAP(stat)(a, p);
-}
-
-#endif /* _StatPortable_H */
diff --git a/ndk/sources/android/libportable/common/include/vfs_portable.h b/ndk/sources/android/libportable/common/include/vfs_portable.h
deleted file mode 100644
index ac57ded..0000000
--- a/ndk/sources/android/libportable/common/include/vfs_portable.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _VFS_PORTABLE_H_
-#define _VFS_PORTABLE_H_
-
-#include <portability.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <sys/vfs.h>
-
-typedef __fsid_t fsid_t;
-
-#define __STATFS64_BODY_PORTABLE \
-  uint64_t f_type; \
-  uint64_t f_bsize; \
-  uint64_t f_blocks; \
-  uint64_t f_bfree; \
-  uint64_t f_bavail; \
-  uint64_t f_files; \
-  uint64_t f_ffree; \
-  fsid_t f_fsid; \
-  uint64_t f_namelen; \
-  uint64_t f_frsize; \
-  uint64_t f_flags; \
-  uint64_t f_spare[5];
-
-
-struct StatfsPortable { __STATFS64_BODY_PORTABLE };
-typedef struct StatfsPortable Statfs64Portable;
-
-#undef __STATFS64_BODY_PORTABLE
-
-static void statfs_n2p(const struct statfs* pn, struct StatfsPortable* pp)
-{
-  memset(pp, '\0', sizeof(struct StatfsPortable));
-  pp->f_type    = pn->f_type;
-  pp->f_bsize   = pn->f_bsize;
-  pp->f_blocks  = pn->f_blocks;
-  pp->f_bfree   = pn->f_bfree;
-  pp->f_bavail  = pn->f_bavail;
-  pp->f_files   = pn->f_files;
-  pp->f_ffree   = pn->f_ffree;
-  memcpy(&pp->f_fsid, &pn->f_fsid, sizeof(int)*2);
-  pp->f_namelen = pn->f_namelen;
-  pp->f_frsize  = pn->f_frsize;
-  pp->f_flags   = pn->f_flags;
-#ifdef __mips__
-  memcpy(&pp->f_spare, &pn->f_spare, 4);
-#else
-  memcpy(&pp->f_spare, &pn->f_spare, 5);
-#endif
-}
-
-int WRAP(statfs)(const char* path, struct StatfsPortable* stat)
-{
-  struct statfs target_stat;
-  int ret = REAL(statfs)(path, &target_stat);
-  statfs_n2p(&target_stat, stat);
-  return ret;
-}
-
-int WRAP(statfs64)(const char* path, Statfs64Portable* stat)
-{
-  return WRAP(statfs)(path, stat);
-}
-
-int WRAP(fstatfs)(int fd, struct StatfsPortable* stat)
-{
-  struct statfs target_stat;
-  int ret = REAL(fstatfs)(fd, &target_stat);
-  statfs_n2p(&target_stat, stat);
-  return ret;
-}
-
-int WRAP(fstatfs64)(int fd, Statfs64Portable* stat)
-{
-  return WRAP(fstatfs)(fd, stat);
-}
-
-#endif /* _VFS_PORTABLE_H */
diff --git a/python-packages/.gitignore b/python-packages/.gitignore
new file mode 100644
index 0000000..a65d046
--- /dev/null
+++ b/python-packages/.gitignore
@@ -0,0 +1,58 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
diff --git a/host/Android.mk b/python-packages/adb/__init__.py
similarity index 73%
rename from host/Android.mk
rename to python-packages/adb/__init__.py
index 5e318e1..6b509c6 100644
--- a/host/Android.mk
+++ b/python-packages/adb/__init__.py
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008 The Android Open Source Project
+# Copyright (C) 2015 The Android Open Source Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,9 +13,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-LOCAL_PATH := $(my-dir)
-
-dir := $(wildcard $(LOCAL_PATH)/$(HOST_PREBUILT_TAG))
-ifdef dir
-  include $(call first-makefiles-under,$(dir))
-endif
+from __future__ import absolute_import
+from .device import *  # pylint: disable=wildcard-import
diff --git a/python-packages/adb/device.py b/python-packages/adb/device.py
new file mode 100644
index 0000000..436593b
--- /dev/null
+++ b/python-packages/adb/device.py
@@ -0,0 +1,502 @@
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+import atexit
+import contextlib
+import logging
+import os
+import re
+import subprocess
+import tempfile
+
+
+class FindDeviceError(RuntimeError):
+    pass
+
+
+class DeviceNotFoundError(FindDeviceError):
+    def __init__(self, serial):
+        self.serial = serial
+        super(DeviceNotFoundError, self).__init__(
+            'No device with serial {}'.format(serial))
+
+
+class NoUniqueDeviceError(FindDeviceError):
+    def __init__(self):
+        super(NoUniqueDeviceError, self).__init__('No unique device')
+
+
+class ShellError(RuntimeError):
+    def __init__(self, cmd, stdout, stderr, exit_code):
+        super(ShellError, self).__init__(
+                '`{0}` exited with code {1}'.format(cmd, exit_code))
+        self.cmd = cmd
+        self.stdout = stdout
+        self.stderr = stderr
+        self.exit_code = exit_code
+
+
+def get_devices(adb_path='adb'):
+    with open(os.devnull, 'wb') as devnull:
+        subprocess.check_call([adb_path, 'start-server'], stdout=devnull,
+                              stderr=devnull)
+    out = subprocess.check_output([adb_path, 'devices']).splitlines()
+
+    # The first line of `adb devices` just says "List of attached devices", so
+    # skip that.
+    devices = []
+    for line in out[1:]:
+        if not line.strip():
+            continue
+        if 'offline' in line:
+            continue
+
+        serial, _ = re.split(r'\s+', line, maxsplit=1)
+        devices.append(serial)
+    return devices
+
+
+def _get_unique_device(product=None, adb_path='adb'):
+    devices = get_devices(adb_path=adb_path)
+    if len(devices) != 1:
+        raise NoUniqueDeviceError()
+    return AndroidDevice(devices[0], product, adb_path)
+
+
+def _get_device_by_serial(serial, product=None, adb_path='adb'):
+    for device in get_devices(adb_path=adb_path):
+        if device == serial:
+            return AndroidDevice(serial, product, adb_path)
+    raise DeviceNotFoundError(serial)
+
+
+def get_device(serial=None, product=None, adb_path='adb'):
+    """Get a uniquely identified AndroidDevice if one is available.
+
+    Raises:
+        DeviceNotFoundError:
+            The serial specified by `serial` or $ANDROID_SERIAL is not
+            connected.
+
+        NoUniqueDeviceError:
+            Neither `serial` nor $ANDROID_SERIAL was set, and the number of
+            devices connected to the system is not 1. Having 0 connected
+            devices will also result in this error.
+
+    Returns:
+        An AndroidDevice associated with the first non-None identifier in the
+        following order of preference:
+
+        1) The `serial` argument.
+        2) The environment variable $ANDROID_SERIAL.
+        3) The single device connnected to the system.
+    """
+    if serial is not None:
+        return _get_device_by_serial(serial, product, adb_path)
+
+    android_serial = os.getenv('ANDROID_SERIAL')
+    if android_serial is not None:
+        return _get_device_by_serial(android_serial, product, adb_path)
+
+    return _get_unique_device(product, adb_path=adb_path)
+
+
+def _get_device_by_type(flag, adb_path):
+    with open(os.devnull, 'wb') as devnull:
+        subprocess.check_call([adb_path, 'start-server'], stdout=devnull,
+                              stderr=devnull)
+    try:
+        serial = subprocess.check_output([adb_path, flag, 'get-serialno']).strip()
+    except subprocess.CalledProcessError:
+        raise RuntimeError('adb unexpectedly returned nonzero')
+    if serial == 'unknown':
+        raise NoUniqueDeviceError()
+    return _get_device_by_serial(serial, adb_path=adb_path)
+
+
+def get_usb_device(adb_path='adb'):
+    """Get the unique USB-connected AndroidDevice if it is available.
+
+    Raises:
+        NoUniqueDeviceError:
+            0 or multiple devices are connected via USB.
+
+    Returns:
+        An AndroidDevice associated with the unique USB-connected device.
+    """
+    return _get_device_by_type('-d', adb_path=adb_path)
+
+
+def get_emulator_device(adb_path='adb'):
+    """Get the unique emulator AndroidDevice if it is available.
+
+    Raises:
+        NoUniqueDeviceError:
+            0 or multiple emulators are running.
+
+    Returns:
+        An AndroidDevice associated with the unique running emulator.
+    """
+    return _get_device_by_type('-e', adb_path=adb_path)
+
+
+@contextlib.contextmanager
+def _file_deleter(f):
+    yield
+    if f:
+        f.close()
+        os.remove(f.name)
+
+
+# Internal helper that may return a temporary file (containing a command line
+# in UTF-8) that should be executed with the help of _get_subprocess_args().
+def _get_windows_unicode_helper(args):
+    # Only do this slow work-around if Unicode is in the cmd line on Windows.
+    if (os.name != 'nt' or all(not isinstance(arg, unicode) for arg in args)):
+        return None
+
+    # cmd.exe requires a suffix to know that it is running a batch file.
+    # We can't use delete=True because that causes File Share Mode Delete to be
+    # used which prevents the file from being opened by other processes that
+    # don't use that File Share Mode. The caller must manually delete the file.
+    tf = tempfile.NamedTemporaryFile('wb', suffix='.cmd', delete=False)
+    # @ in batch suppresses echo of the current line.
+    # Change the codepage to 65001, the UTF-8 codepage.
+    tf.write('@chcp 65001 > nul\r\n')
+    tf.write('@')
+    # Properly quote all the arguments and encode in UTF-8.
+    tf.write(subprocess.list2cmdline(args).encode('utf-8'))
+    tf.close()
+    return tf
+
+
+# Let the caller know how to run the batch file. Takes subprocess.check_output()
+# or subprocess.Popen() args and returns a new tuple that should be passed
+# instead, or the original args if there is no file
+def _get_subprocess_args(args, helper_file):
+    if helper_file:
+        # Concatenate our new command line args with any other function args.
+        return (['cmd.exe', '/c', helper_file.name],) + args[1:]
+    else:
+        return args
+
+
+# Call this instead of subprocess.check_output() to work-around issue in Python
+# 2's subprocess class on Windows where it doesn't support Unicode. This
+# writes the command line to a UTF-8 batch file that is properly interpreted
+# by cmd.exe.
+def _subprocess_check_output(*args, **kwargs):
+    helper = _get_windows_unicode_helper(args[0])
+    with _file_deleter(helper):
+        try:
+            return subprocess.check_output(
+                    *_get_subprocess_args(args, helper), **kwargs)
+        except subprocess.CalledProcessError as e:
+            # Show real command line instead of the cmd.exe command line.
+            raise subprocess.CalledProcessError(e.returncode, args[0],
+                                                output=e.output)
+
+
+# Call this instead of subprocess.Popen(). Like _subprocess_check_output().
+class _subprocess_Popen(subprocess.Popen):
+    def __init__(self, *args, **kwargs):
+        # __del__() can be called after global teardown has started, meaning
+        # the global references to _subprocess_Popen and the os module may
+        # no longer exist. We need to save local references to all global names
+        # used in __del__() to avoid this.
+        self.saved_class = _subprocess_Popen
+        self.saved_os = os
+        # Save reference to helper so that it can be deleted once it is no
+        # longer used.
+        self.helper = _get_windows_unicode_helper(args[0])
+        super(_subprocess_Popen, self).__init__(
+                *_get_subprocess_args(args, self.helper), **kwargs)
+
+    def __del__(self, *args, **kwargs):
+        super(self.saved_class, self).__del__(*args, **kwargs)
+        if self.helper:
+            self.saved_os.remove(self.helper.name)
+
+
+class AndroidDevice(object):
+    # Delimiter string to indicate the start of the exit code.
+    _RETURN_CODE_DELIMITER = 'x'
+
+    # Follow any shell command with this string to get the exit
+    # status of a program since this isn't propagated by adb.
+    #
+    # The delimiter is needed because `printf 1; echo $?` would print
+    # "10", and we wouldn't be able to distinguish the exit code.
+    _RETURN_CODE_PROBE = [';', 'echo', '{0}$?'.format(_RETURN_CODE_DELIMITER)]
+
+    # Maximum search distance from the output end to find the delimiter.
+    # adb on Windows returns \r\n even if adbd returns \n.
+    _RETURN_CODE_SEARCH_LENGTH = len('{0}255\r\n'.format(_RETURN_CODE_DELIMITER))
+
+    # Feature name strings.
+    SHELL_PROTOCOL_FEATURE = 'shell_v2'
+
+    def __init__(self, serial, product=None, adb_path='adb'):
+        self.serial = serial
+        self.product = product
+        self.adb_cmd = [adb_path]
+
+        if self.serial is not None:
+            self.adb_cmd.extend(['-s', serial])
+        if self.product is not None:
+            self.adb_cmd.extend(['-p', product])
+        self._linesep = None
+        self._features = None
+
+    @property
+    def linesep(self):
+        if self._linesep is None:
+            self._linesep = subprocess.check_output(self.adb_cmd +
+                                                    ['shell', 'echo'])
+        return self._linesep
+
+    @property
+    def features(self):
+        if self._features is None:
+            try:
+                self._features = self._simple_call(['features']).splitlines()
+            except subprocess.CalledProcessError:
+                self._features = []
+        return self._features
+
+    def _make_shell_cmd(self, user_cmd):
+        command = self.adb_cmd + ['shell'] + user_cmd
+        if self.SHELL_PROTOCOL_FEATURE not in self.features:
+            command += self._RETURN_CODE_PROBE
+        return command
+
+    def _parse_shell_output(self, out):
+        """Finds the exit code string from shell output.
+
+        Args:
+            out: Shell output string.
+
+        Returns:
+            An (exit_code, output_string) tuple. The output string is
+            cleaned of any additional stuff we appended to find the
+            exit code.
+
+        Raises:
+            RuntimeError: Could not find the exit code in |out|.
+        """
+        search_text = out
+        if len(search_text) > self._RETURN_CODE_SEARCH_LENGTH:
+            # We don't want to search over massive amounts of data when we know
+            # the part we want is right at the end.
+            search_text = search_text[-self._RETURN_CODE_SEARCH_LENGTH:]
+        partition = search_text.rpartition(self._RETURN_CODE_DELIMITER)
+        if partition[1] == '':
+            raise RuntimeError('Could not find exit status in shell output.')
+        result = int(partition[2])
+        # partition[0] won't contain the full text if search_text was truncated,
+        # pull from the original string instead.
+        out = out[:-len(partition[1]) - len(partition[2])]
+        return result, out
+
+    def _simple_call(self, cmd):
+        logging.info(' '.join(self.adb_cmd + cmd))
+        return _subprocess_check_output(
+            self.adb_cmd + cmd, stderr=subprocess.STDOUT)
+
+    def shell(self, cmd):
+        """Calls `adb shell`
+
+        Args:
+            cmd: command to execute as a list of strings.
+
+        Returns:
+            A (stdout, stderr) tuple. Stderr may be combined into stdout
+            if the device doesn't support separate streams.
+
+        Raises:
+            ShellError: the exit code was non-zero.
+        """
+        exit_code, stdout, stderr = self.shell_nocheck(cmd)
+        if exit_code != 0:
+            raise ShellError(cmd, stdout, stderr, exit_code)
+        return stdout, stderr
+
+    def shell_nocheck(self, cmd):
+        """Calls `adb shell`
+
+        Args:
+            cmd: command to execute as a list of strings.
+
+        Returns:
+            An (exit_code, stdout, stderr) tuple. Stderr may be combined
+            into stdout if the device doesn't support separate streams.
+        """
+        cmd = self._make_shell_cmd(cmd)
+        logging.info(' '.join(cmd))
+        p = _subprocess_Popen(
+            cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        stdout, stderr = p.communicate()
+        if self.SHELL_PROTOCOL_FEATURE in self.features:
+            exit_code = p.returncode
+        else:
+            exit_code, stdout = self._parse_shell_output(stdout)
+        return exit_code, stdout, stderr
+
+    def shell_popen(self, cmd, kill_atexit=True, preexec_fn=None,
+                    creationflags=0, **kwargs):
+        """Calls `adb shell` and returns a handle to the adb process.
+
+        This function provides direct access to the subprocess used to run the
+        command, without special return code handling. Users that need the
+        return value must retrieve it themselves.
+
+        Args:
+            cmd: Array of command arguments to execute.
+            kill_atexit: Whether to kill the process upon exiting.
+            preexec_fn: Argument forwarded to subprocess.Popen.
+            creationflags: Argument forwarded to subprocess.Popen.
+            **kwargs: Arguments forwarded to subprocess.Popen.
+
+        Returns:
+            subprocess.Popen handle to the adb shell instance
+        """
+
+        command = self.adb_cmd + ['shell'] + cmd
+
+        # Make sure a ctrl-c in the parent script doesn't kill gdbserver.
+        if os.name == 'nt':
+            creationflags |= subprocess.CREATE_NEW_PROCESS_GROUP
+        else:
+            if preexec_fn is None:
+                preexec_fn = os.setpgrp
+            elif preexec_fn is not os.setpgrp:
+                fn = preexec_fn
+                def _wrapper():
+                    fn()
+                    os.setpgrp()
+                preexec_fn = _wrapper
+
+        p = _subprocess_Popen(command, creationflags=creationflags,
+                              preexec_fn=preexec_fn, **kwargs)
+
+        if kill_atexit:
+            atexit.register(p.kill)
+
+        return p
+
+    def install(self, filename, replace=False):
+        cmd = ['install']
+        if replace:
+            cmd.append('-r')
+        cmd.append(filename)
+        return self._simple_call(cmd)
+
+    def push(self, local, remote):
+        return self._simple_call(['push', local, remote])
+
+    def pull(self, remote, local):
+        return self._simple_call(['pull', remote, local])
+
+    def sync(self, directory=None):
+        cmd = ['sync']
+        if directory is not None:
+            cmd.append(directory)
+        return self._simple_call(cmd)
+
+    def tcpip(self, port):
+        return self._simple_call(['tcpip', port])
+
+    def usb(self):
+        return self._simple_call(['usb'])
+
+    def reboot(self):
+        return self._simple_call(['reboot'])
+
+    def remount(self):
+        return self._simple_call(['remount'])
+
+    def root(self):
+        return self._simple_call(['root'])
+
+    def unroot(self):
+        return self._simple_call(['unroot'])
+
+    def connect(self, host):
+        return self._simple_call(['connect', host])
+
+    def disconnect(self, host):
+        return self._simple_call(['disconnect', host])
+
+    def forward(self, local, remote):
+        return self._simple_call(['forward', local, remote])
+
+    def forward_list(self):
+        return self._simple_call(['forward', '--list'])
+
+    def forward_no_rebind(self, local, remote):
+        return self._simple_call(['forward', '--no-rebind', local, remote])
+
+    def forward_remove(self, local):
+        return self._simple_call(['forward', '--remove', local])
+
+    def forward_remove_all(self):
+        return self._simple_call(['forward', '--remove-all'])
+
+    def reverse(self, remote, local):
+        return self._simple_call(['reverse', remote, local])
+
+    def reverse_list(self):
+        return self._simple_call(['reverse', '--list'])
+
+    def reverse_no_rebind(self, local, remote):
+        return self._simple_call(['reverse', '--no-rebind', local, remote])
+
+    def reverse_remove_all(self):
+        return self._simple_call(['reverse', '--remove-all'])
+
+    def reverse_remove(self, remote):
+        return self._simple_call(['reverse', '--remove', remote])
+
+    def wait(self):
+        return self._simple_call(['wait-for-device'])
+
+    def get_props(self):
+        result = {}
+        output, _ = self.shell(['getprop'])
+        output = output.splitlines()
+        pattern = re.compile(r'^\[([^]]+)\]: \[(.*)\]')
+        for line in output:
+            match = pattern.match(line)
+            if match is None:
+                raise RuntimeError('invalid getprop line: "{}"'.format(line))
+            key = match.group(1)
+            value = match.group(2)
+            if key in result:
+                raise RuntimeError('duplicate getprop key: "{}"'.format(key))
+            result[key] = value
+        return result
+
+    def get_prop(self, prop_name):
+        output = self.shell(['getprop', prop_name])[0].splitlines()
+        if len(output) != 1:
+            raise RuntimeError('Too many lines in getprop output:\n' +
+                               '\n'.join(output))
+        value = output[0]
+        if not value.strip():
+            return None
+        return value
+
+    def set_prop(self, prop_name, value):
+        self.shell(['setprop', prop_name, value])
diff --git a/python-packages/adb/setup.py b/python-packages/adb/setup.py
new file mode 100644
index 0000000..5595cdd
--- /dev/null
+++ b/python-packages/adb/setup.py
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+from distutils.core import setup
+
+
+setup(
+    name='adb',
+    version='0.0.1',
+    description='A Python interface to the Android Debug Bridge.',
+    license='Apache 2.0',
+    keywords='adb android',
+    package_dir={'adb': ''},
+    packages=['adb'],
+    classifiers=[
+        'Development Status :: 2 - Pre-Alpha',
+        'Intended Audience :: Developers',
+        'License :: OSI Approved :: Apache Software License',
+    ]
+)
diff --git a/python-packages/adb/test_device.py b/python-packages/adb/test_device.py
new file mode 100644
index 0000000..8d75468
--- /dev/null
+++ b/python-packages/adb/test_device.py
@@ -0,0 +1,948 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+from __future__ import print_function
+
+import contextlib
+import hashlib
+import os
+import posixpath
+import random
+import re
+import shlex
+import shutil
+import signal
+import socket
+import string
+import subprocess
+import sys
+import tempfile
+import unittest
+
+import mock
+
+import adb
+
+
+def requires_root(func):
+    def wrapper(self, *args):
+        if self.device.get_prop('ro.debuggable') != '1':
+            raise unittest.SkipTest('requires rootable build')
+
+        was_root = self.device.shell(['id', '-un'])[0].strip() == 'root'
+        if not was_root:
+            self.device.root()
+            self.device.wait()
+
+        try:
+            func(self, *args)
+        finally:
+            if not was_root:
+                self.device.unroot()
+                self.device.wait()
+
+    return wrapper
+
+
+def requires_non_root(func):
+    def wrapper(self, *args):
+        was_root = self.device.shell(['id', '-un'])[0].strip() == 'root'
+        if was_root:
+            self.device.unroot()
+            self.device.wait()
+
+        try:
+            func(self, *args)
+        finally:
+            if was_root:
+                self.device.root()
+                self.device.wait()
+
+    return wrapper
+
+
+class GetDeviceTest(unittest.TestCase):
+    def setUp(self):
+        self.android_serial = os.getenv('ANDROID_SERIAL')
+        if 'ANDROID_SERIAL' in os.environ:
+            del os.environ['ANDROID_SERIAL']
+
+    def tearDown(self):
+        if self.android_serial is not None:
+            os.environ['ANDROID_SERIAL'] = self.android_serial
+        else:
+            if 'ANDROID_SERIAL' in os.environ:
+                del os.environ['ANDROID_SERIAL']
+
+    @mock.patch('adb.device.get_devices')
+    def test_explicit(self, mock_get_devices):
+        mock_get_devices.return_value = ['foo', 'bar']
+        device = adb.get_device('foo')
+        self.assertEqual(device.serial, 'foo')
+
+    @mock.patch('adb.device.get_devices')
+    def test_from_env(self, mock_get_devices):
+        mock_get_devices.return_value = ['foo', 'bar']
+        os.environ['ANDROID_SERIAL'] = 'foo'
+        device = adb.get_device()
+        self.assertEqual(device.serial, 'foo')
+
+    @mock.patch('adb.device.get_devices')
+    def test_arg_beats_env(self, mock_get_devices):
+        mock_get_devices.return_value = ['foo', 'bar']
+        os.environ['ANDROID_SERIAL'] = 'bar'
+        device = adb.get_device('foo')
+        self.assertEqual(device.serial, 'foo')
+
+    @mock.patch('adb.device.get_devices')
+    def test_no_such_device(self, mock_get_devices):
+        mock_get_devices.return_value = ['foo', 'bar']
+        self.assertRaises(adb.DeviceNotFoundError, adb.get_device, ['baz'])
+
+        os.environ['ANDROID_SERIAL'] = 'baz'
+        self.assertRaises(adb.DeviceNotFoundError, adb.get_device)
+
+    @mock.patch('adb.device.get_devices')
+    def test_unique_device(self, mock_get_devices):
+        mock_get_devices.return_value = ['foo']
+        device = adb.get_device()
+        self.assertEqual(device.serial, 'foo')
+
+    @mock.patch('adb.device.get_devices')
+    def test_no_unique_device(self, mock_get_devices):
+        mock_get_devices.return_value = ['foo', 'bar']
+        self.assertRaises(adb.NoUniqueDeviceError, adb.get_device)
+
+
+class DeviceTest(unittest.TestCase):
+    def setUp(self):
+        self.device = adb.get_device()
+
+
+class ForwardReverseTest(DeviceTest):
+    def _test_no_rebind(self, description, direction_list, direction,
+                       direction_no_rebind, direction_remove_all):
+        msg = direction_list()
+        self.assertEqual('', msg.strip(),
+                         description + ' list must be empty to run this test.')
+
+        # Use --no-rebind with no existing binding
+        direction_no_rebind('tcp:5566', 'tcp:6655')
+        msg = direction_list()
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6655', msg))
+
+        # Use --no-rebind with existing binding
+        with self.assertRaises(subprocess.CalledProcessError):
+            direction_no_rebind('tcp:5566', 'tcp:6677')
+        msg = direction_list()
+        self.assertFalse(re.search(r'tcp:5566.+tcp:6677', msg))
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6655', msg))
+
+        # Use the absence of --no-rebind with existing binding
+        direction('tcp:5566', 'tcp:6677')
+        msg = direction_list()
+        self.assertFalse(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6677', msg))
+
+        direction_remove_all()
+        msg = direction_list()
+        self.assertEqual('', msg.strip())
+
+    def test_forward_no_rebind(self):
+        self._test_no_rebind('forward', self.device.forward_list,
+                            self.device.forward, self.device.forward_no_rebind,
+                            self.device.forward_remove_all)
+
+    def test_reverse_no_rebind(self):
+        self._test_no_rebind('reverse', self.device.reverse_list,
+                            self.device.reverse, self.device.reverse_no_rebind,
+                            self.device.reverse_remove_all)
+
+    def test_forward(self):
+        msg = self.device.forward_list()
+        self.assertEqual('', msg.strip(),
+                         'Forwarding list must be empty to run this test.')
+        self.device.forward('tcp:5566', 'tcp:6655')
+        msg = self.device.forward_list()
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.device.forward('tcp:7788', 'tcp:8877')
+        msg = self.device.forward_list()
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.assertTrue(re.search(r'tcp:7788.+tcp:8877', msg))
+        self.device.forward_remove('tcp:5566')
+        msg = self.device.forward_list()
+        self.assertFalse(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.assertTrue(re.search(r'tcp:7788.+tcp:8877', msg))
+        self.device.forward_remove_all()
+        msg = self.device.forward_list()
+        self.assertEqual('', msg.strip())
+
+    def test_reverse(self):
+        msg = self.device.reverse_list()
+        self.assertEqual('', msg.strip(),
+                         'Reverse forwarding list must be empty to run this test.')
+        self.device.reverse('tcp:5566', 'tcp:6655')
+        msg = self.device.reverse_list()
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.device.reverse('tcp:7788', 'tcp:8877')
+        msg = self.device.reverse_list()
+        self.assertTrue(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.assertTrue(re.search(r'tcp:7788.+tcp:8877', msg))
+        self.device.reverse_remove('tcp:5566')
+        msg = self.device.reverse_list()
+        self.assertFalse(re.search(r'tcp:5566.+tcp:6655', msg))
+        self.assertTrue(re.search(r'tcp:7788.+tcp:8877', msg))
+        self.device.reverse_remove_all()
+        msg = self.device.reverse_list()
+        self.assertEqual('', msg.strip())
+
+    # Note: If you run this test when adb connect'd to a physical device over
+    # TCP, it will fail in adb reverse due to https://code.google.com/p/android/issues/detail?id=189821
+    def test_forward_reverse_echo(self):
+        """Send data through adb forward and read it back via adb reverse"""
+        forward_port = 12345
+        reverse_port = forward_port + 1
+        forward_spec = "tcp:" + str(forward_port)
+        reverse_spec = "tcp:" + str(reverse_port)
+        forward_setup = False
+        reverse_setup = False
+
+        try:
+            # listen on localhost:forward_port, connect to remote:forward_port
+            self.device.forward(forward_spec, forward_spec)
+            forward_setup = True
+            # listen on remote:forward_port, connect to localhost:reverse_port
+            self.device.reverse(forward_spec, reverse_spec)
+            reverse_setup = True
+
+            listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+            with contextlib.closing(listener):
+                # Use SO_REUSEADDR so that subsequent runs of the test can grab
+                # the port even if it is in TIME_WAIT.
+                listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+
+                # Listen on localhost:reverse_port before connecting to
+                # localhost:forward_port because that will cause adb to connect
+                # back to localhost:reverse_port.
+                listener.bind(('127.0.0.1', reverse_port))
+                listener.listen(4)
+
+                client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+                with contextlib.closing(client):
+                    # Connect to the listener.
+                    client.connect(('127.0.0.1', forward_port))
+
+                    # Accept the client connection.
+                    accepted_connection, addr = listener.accept()
+                    with contextlib.closing(accepted_connection) as server:
+                        data = 'hello'
+
+                        # Send data into the port setup by adb forward.
+                        client.sendall(data)
+                        # Explicitly close() so that server gets EOF.
+                        client.close()
+
+                        # Verify that the data came back via adb reverse.
+                        self.assertEqual(data, server.makefile().read())
+        finally:
+            if reverse_setup:
+                self.device.reverse_remove(forward_spec)
+            if forward_setup:
+                self.device.forward_remove(forward_spec)
+
+
+class ShellTest(DeviceTest):
+    def _interactive_shell(self, shell_args, input):
+        """Runs an interactive adb shell.
+
+        Args:
+          shell_args: List of string arguments to `adb shell`.
+          input: String input to send to the interactive shell.
+
+        Returns:
+          The remote exit code.
+
+        Raises:
+          unittest.SkipTest: The device doesn't support exit codes.
+        """
+        if self.device.SHELL_PROTOCOL_FEATURE not in self.device.features:
+            raise unittest.SkipTest('exit codes are unavailable on this device')
+
+        proc = subprocess.Popen(
+                self.device.adb_cmd + ['shell'] + shell_args,
+                stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+                stderr=subprocess.PIPE)
+        # Closing host-side stdin doesn't trigger a PTY shell to exit so we need
+        # to explicitly add an exit command to close the session from the device
+        # side, plus the necessary newline to complete the interactive command.
+        proc.communicate(input + '; exit\n')
+        return proc.returncode
+
+    def test_cat(self):
+        """Check that we can at least cat a file."""
+        out = self.device.shell(['cat', '/proc/uptime'])[0].strip()
+        elements = out.split()
+        self.assertEqual(len(elements), 2)
+
+        uptime, idle = elements
+        self.assertGreater(float(uptime), 0.0)
+        self.assertGreater(float(idle), 0.0)
+
+    def test_throws_on_failure(self):
+        self.assertRaises(adb.ShellError, self.device.shell, ['false'])
+
+    def test_output_not_stripped(self):
+        out = self.device.shell(['echo', 'foo'])[0]
+        self.assertEqual(out, 'foo' + self.device.linesep)
+
+    def test_shell_nocheck_failure(self):
+        rc, out, _ = self.device.shell_nocheck(['false'])
+        self.assertNotEqual(rc, 0)
+        self.assertEqual(out, '')
+
+    def test_shell_nocheck_output_not_stripped(self):
+        rc, out, _ = self.device.shell_nocheck(['echo', 'foo'])
+        self.assertEqual(rc, 0)
+        self.assertEqual(out, 'foo' + self.device.linesep)
+
+    def test_can_distinguish_tricky_results(self):
+        # If result checking on ADB shell is naively implemented as
+        # `adb shell <cmd>; echo $?`, we would be unable to distinguish the
+        # output from the result for a cmd of `echo -n 1`.
+        rc, out, _ = self.device.shell_nocheck(['echo', '-n', '1'])
+        self.assertEqual(rc, 0)
+        self.assertEqual(out, '1')
+
+    def test_line_endings(self):
+        """Ensure that line ending translation is not happening in the pty.
+
+        Bug: http://b/19735063
+        """
+        output = self.device.shell(['uname'])[0]
+        self.assertEqual(output, 'Linux' + self.device.linesep)
+
+    def test_pty_logic(self):
+        """Tests that a PTY is allocated when it should be.
+
+        PTY allocation behavior should match ssh; some behavior requires
+        a terminal stdin to test so this test will be skipped if stdin
+        is not a terminal.
+        """
+        if self.device.SHELL_PROTOCOL_FEATURE not in self.device.features:
+            raise unittest.SkipTest('PTY arguments unsupported on this device')
+        if not os.isatty(sys.stdin.fileno()):
+            raise unittest.SkipTest('PTY tests require stdin terminal')
+
+        def check_pty(args):
+            """Checks adb shell PTY allocation.
+
+            Tests |args| for terminal and non-terminal stdin.
+
+            Args:
+                args: -Tt args in a list (e.g. ['-t', '-t']).
+
+            Returns:
+                A tuple (<terminal>, <non-terminal>). True indicates
+                the corresponding shell allocated a remote PTY.
+            """
+            test_cmd = self.device.adb_cmd + ['shell'] + args + ['[ -t 0 ]']
+
+            terminal = subprocess.Popen(
+                    test_cmd, stdin=None,
+                    stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+            terminal.communicate()
+
+            non_terminal = subprocess.Popen(
+                    test_cmd, stdin=subprocess.PIPE,
+                    stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+            non_terminal.communicate()
+
+            return (terminal.returncode == 0, non_terminal.returncode == 0)
+
+        # -T: never allocate PTY.
+        self.assertEqual((False, False), check_pty(['-T']))
+
+        # No args: PTY only if stdin is a terminal and shell is interactive,
+        # which is difficult to reliably test from a script.
+        self.assertEqual((False, False), check_pty([]))
+
+        # -t: PTY if stdin is a terminal.
+        self.assertEqual((True, False), check_pty(['-t']))
+
+        # -t -t: always allocate PTY.
+        self.assertEqual((True, True), check_pty(['-t', '-t']))
+
+    def test_shell_protocol(self):
+        """Tests the shell protocol on the device.
+
+        If the device supports shell protocol, this gives us the ability
+        to separate stdout/stderr and return the exit code directly.
+
+        Bug: http://b/19734861
+        """
+        if self.device.SHELL_PROTOCOL_FEATURE not in self.device.features:
+            raise unittest.SkipTest('shell protocol unsupported on this device')
+
+        # Shell protocol should be used by default.
+        result = self.device.shell_nocheck(
+                shlex.split('echo foo; echo bar >&2; exit 17'))
+        self.assertEqual(17, result[0])
+        self.assertEqual('foo' + self.device.linesep, result[1])
+        self.assertEqual('bar' + self.device.linesep, result[2])
+
+        self.assertEqual(17, self._interactive_shell([], 'exit 17'))
+
+        # -x flag should disable shell protocol.
+        result = self.device.shell_nocheck(
+                shlex.split('-x echo foo; echo bar >&2; exit 17'))
+        self.assertEqual(0, result[0])
+        self.assertEqual('foo{0}bar{0}'.format(self.device.linesep), result[1])
+        self.assertEqual('', result[2])
+
+        self.assertEqual(0, self._interactive_shell(['-x'], 'exit 17'))
+
+    def test_non_interactive_sigint(self):
+        """Tests that SIGINT in a non-interactive shell kills the process.
+
+        This requires the shell protocol in order to detect the broken
+        pipe; raw data transfer mode will only see the break once the
+        subprocess tries to read or write.
+
+        Bug: http://b/23825725
+        """
+        if self.device.SHELL_PROTOCOL_FEATURE not in self.device.features:
+            raise unittest.SkipTest('shell protocol unsupported on this device')
+
+        # Start a long-running process.
+        sleep_proc = subprocess.Popen(
+                self.device.adb_cmd + shlex.split('shell echo $$; sleep 60'),
+                stdin=subprocess.PIPE, stdout=subprocess.PIPE,
+                stderr=subprocess.STDOUT)
+        remote_pid = sleep_proc.stdout.readline().strip()
+        self.assertIsNone(sleep_proc.returncode, 'subprocess terminated early')
+        proc_query = shlex.split('ps {0} | grep {0}'.format(remote_pid))
+
+        # Verify that the process is running, send signal, verify it stopped.
+        self.device.shell(proc_query)
+        os.kill(sleep_proc.pid, signal.SIGINT)
+        sleep_proc.communicate()
+        self.assertEqual(1, self.device.shell_nocheck(proc_query)[0],
+                         'subprocess failed to terminate')
+
+    def test_non_interactive_stdin(self):
+        """Tests that non-interactive shells send stdin."""
+        if self.device.SHELL_PROTOCOL_FEATURE not in self.device.features:
+            raise unittest.SkipTest('non-interactive stdin unsupported '
+                                    'on this device')
+
+        # Test both small and large inputs.
+        small_input = 'foo'
+        large_input = '\n'.join(c * 100 for c in (string.ascii_letters +
+                                                  string.digits))
+
+        for input in (small_input, large_input):
+            proc = subprocess.Popen(self.device.adb_cmd + ['shell', 'cat'],
+                                    stdin=subprocess.PIPE,
+                                    stdout=subprocess.PIPE,
+                                    stderr=subprocess.PIPE)
+            stdout, stderr = proc.communicate(input)
+            self.assertEqual(input.splitlines(), stdout.splitlines())
+            self.assertEqual('', stderr)
+
+
+class ArgumentEscapingTest(DeviceTest):
+    def test_shell_escaping(self):
+        """Make sure that argument escaping is somewhat sane."""
+
+        # http://b/19734868
+        # Note that this actually matches ssh(1)'s behavior --- it's
+        # converted to `sh -c echo hello; echo world` which sh interprets
+        # as `sh -c echo` (with an argument to that shell of "hello"),
+        # and then `echo world` back in the first shell.
+        result = self.device.shell(
+            shlex.split("sh -c 'echo hello; echo world'"))[0]
+        result = result.splitlines()
+        self.assertEqual(['', 'world'], result)
+        # If you really wanted "hello" and "world", here's what you'd do:
+        result = self.device.shell(
+            shlex.split(r'echo hello\;echo world'))[0].splitlines()
+        self.assertEqual(['hello', 'world'], result)
+
+        # http://b/15479704
+        result = self.device.shell(shlex.split("'true && echo t'"))[0].strip()
+        self.assertEqual('t', result)
+        result = self.device.shell(
+            shlex.split("sh -c 'true && echo t'"))[0].strip()
+        self.assertEqual('t', result)
+
+        # http://b/20564385
+        result = self.device.shell(shlex.split('FOO=a BAR=b echo t'))[0].strip()
+        self.assertEqual('t', result)
+        result = self.device.shell(
+            shlex.split(r'echo -n 123\;uname'))[0].strip()
+        self.assertEqual('123Linux', result)
+
+    def test_install_argument_escaping(self):
+        """Make sure that install argument escaping works."""
+        # http://b/20323053, http://b/3090932.
+        for file_suffix in ('-text;ls;1.apk', "-Live Hold'em.apk"):
+            tf = tempfile.NamedTemporaryFile('wb', suffix=file_suffix,
+                                             delete=False)
+            tf.close()
+
+            # Installing bogus .apks fails if the device supports exit codes.
+            try:
+                output = self.device.install(tf.name)
+            except subprocess.CalledProcessError as e:
+                output = e.output
+
+            self.assertIn(file_suffix, output)
+            os.remove(tf.name)
+
+
+class RootUnrootTest(DeviceTest):
+    def _test_root(self):
+        message = self.device.root()
+        if 'adbd cannot run as root in production builds' in message:
+            return
+        self.device.wait()
+        self.assertEqual('root', self.device.shell(['id', '-un'])[0].strip())
+
+    def _test_unroot(self):
+        self.device.unroot()
+        self.device.wait()
+        self.assertEqual('shell', self.device.shell(['id', '-un'])[0].strip())
+
+    def test_root_unroot(self):
+        """Make sure that adb root and adb unroot work, using id(1)."""
+        if self.device.get_prop('ro.debuggable') != '1':
+            raise unittest.SkipTest('requires rootable build')
+
+        original_user = self.device.shell(['id', '-un'])[0].strip()
+        try:
+            if original_user == 'root':
+                self._test_unroot()
+                self._test_root()
+            elif original_user == 'shell':
+                self._test_root()
+                self._test_unroot()
+        finally:
+            if original_user == 'root':
+                self.device.root()
+            else:
+                self.device.unroot()
+            self.device.wait()
+
+
+class TcpIpTest(DeviceTest):
+    def test_tcpip_failure_raises(self):
+        """adb tcpip requires a port.
+
+        Bug: http://b/22636927
+        """
+        self.assertRaises(
+            subprocess.CalledProcessError, self.device.tcpip, '')
+        self.assertRaises(
+            subprocess.CalledProcessError, self.device.tcpip, 'foo')
+
+
+class SystemPropertiesTest(DeviceTest):
+    def test_get_prop(self):
+        self.assertEqual(self.device.get_prop('init.svc.adbd'), 'running')
+
+    @requires_root
+    def test_set_prop(self):
+        prop_name = 'foo.bar'
+        self.device.shell(['setprop', prop_name, '""'])
+
+        self.device.set_prop(prop_name, 'qux')
+        self.assertEqual(
+            self.device.shell(['getprop', prop_name])[0].strip(), 'qux')
+
+
+def compute_md5(string):
+    hsh = hashlib.md5()
+    hsh.update(string)
+    return hsh.hexdigest()
+
+
+def get_md5_prog(device):
+    """Older platforms (pre-L) had the name md5 rather than md5sum."""
+    try:
+        device.shell(['md5sum', '/proc/uptime'])
+        return 'md5sum'
+    except adb.ShellError:
+        return 'md5'
+
+
+class HostFile(object):
+    def __init__(self, handle, checksum):
+        self.handle = handle
+        self.checksum = checksum
+        self.full_path = handle.name
+        self.base_name = os.path.basename(self.full_path)
+
+
+class DeviceFile(object):
+    def __init__(self, checksum, full_path):
+        self.checksum = checksum
+        self.full_path = full_path
+        self.base_name = posixpath.basename(self.full_path)
+
+
+def make_random_host_files(in_dir, num_files):
+    min_size = 1 * (1 << 10)
+    max_size = 16 * (1 << 10)
+
+    files = []
+    for _ in xrange(num_files):
+        file_handle = tempfile.NamedTemporaryFile(dir=in_dir, delete=False)
+
+        size = random.randrange(min_size, max_size, 1024)
+        rand_str = os.urandom(size)
+        file_handle.write(rand_str)
+        file_handle.flush()
+        file_handle.close()
+
+        md5 = compute_md5(rand_str)
+        files.append(HostFile(file_handle, md5))
+    return files
+
+
+def make_random_device_files(device, in_dir, num_files, prefix='device_tmpfile'):
+    min_size = 1 * (1 << 10)
+    max_size = 16 * (1 << 10)
+
+    files = []
+    for file_num in xrange(num_files):
+        size = random.randrange(min_size, max_size, 1024)
+
+        base_name = prefix + str(file_num)
+        full_path = posixpath.join(in_dir, base_name)
+
+        device.shell(['dd', 'if=/dev/urandom', 'of={}'.format(full_path),
+                      'bs={}'.format(size), 'count=1'])
+        dev_md5, _ = device.shell([get_md5_prog(device), full_path])[0].split()
+
+        files.append(DeviceFile(dev_md5, full_path))
+    return files
+
+
+class FileOperationsTest(DeviceTest):
+    SCRATCH_DIR = '/data/local/tmp'
+    DEVICE_TEMP_FILE = SCRATCH_DIR + '/adb_test_file'
+    DEVICE_TEMP_DIR = SCRATCH_DIR + '/adb_test_dir'
+
+    def _verify_remote(self, checksum, remote_path):
+        dev_md5, _ = self.device.shell([get_md5_prog(self.device),
+                                        remote_path])[0].split()
+        self.assertEqual(checksum, dev_md5)
+
+    def _verify_local(self, checksum, local_path):
+        with open(local_path, 'rb') as host_file:
+            host_md5 = compute_md5(host_file.read())
+            self.assertEqual(host_md5, checksum)
+
+    def test_push(self):
+        """Push a randomly generated file to specified device."""
+        kbytes = 512
+        tmp = tempfile.NamedTemporaryFile(mode='wb', delete=False)
+        rand_str = os.urandom(1024 * kbytes)
+        tmp.write(rand_str)
+        tmp.close()
+
+        self.device.shell(['rm', '-rf', self.DEVICE_TEMP_FILE])
+        self.device.push(local=tmp.name, remote=self.DEVICE_TEMP_FILE)
+
+        self._verify_remote(compute_md5(rand_str), self.DEVICE_TEMP_FILE)
+        self.device.shell(['rm', '-f', self.DEVICE_TEMP_FILE])
+
+        os.remove(tmp.name)
+
+    def test_push_dir(self):
+        """Push a randomly generated directory of files to the device."""
+        self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        self.device.shell(['mkdir', self.DEVICE_TEMP_DIR])
+
+        try:
+            host_dir = tempfile.mkdtemp()
+
+            # Make sure the temp directory isn't setuid, or else adb will complain.
+            os.chmod(host_dir, 0o700)
+
+            # Create 32 random files.
+            temp_files = make_random_host_files(in_dir=host_dir, num_files=32)
+            self.device.push(host_dir, self.DEVICE_TEMP_DIR)
+
+            for temp_file in temp_files:
+                remote_path = posixpath.join(self.DEVICE_TEMP_DIR,
+                                             os.path.basename(host_dir),
+                                             temp_file.base_name)
+                self._verify_remote(temp_file.checksum, remote_path)
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        finally:
+            if host_dir is not None:
+                shutil.rmtree(host_dir)
+
+    @unittest.expectedFailure # b/25566053
+    def test_push_empty(self):
+        """Push a directory containing an empty directory to the device."""
+        self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        self.device.shell(['mkdir', self.DEVICE_TEMP_DIR])
+
+        try:
+            host_dir = tempfile.mkdtemp()
+
+            # Make sure the temp directory isn't setuid, or else adb will complain.
+            os.chmod(host_dir, 0o700)
+
+            # Create an empty directory.
+            os.mkdir(os.path.join(host_dir, 'empty'))
+
+            self.device.push(host_dir, self.DEVICE_TEMP_DIR)
+
+            test_empty_cmd = ['[', '-d',
+                              os.path.join(self.DEVICE_TEMP_DIR, 'empty')]
+            rc, _, _ = self.device.shell_nocheck(test_empty_cmd)
+            self.assertEqual(rc, 0)
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        finally:
+            if host_dir is not None:
+                shutil.rmtree(host_dir)
+
+    def test_multiple_push(self):
+        """Push multiple files to the device in one adb push command.
+
+        Bug: http://b/25324823
+        """
+
+        self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        self.device.shell(['mkdir', self.DEVICE_TEMP_DIR])
+
+        try:
+            host_dir = tempfile.mkdtemp()
+
+            # Create some random files and a subdirectory containing more files.
+            temp_files = make_random_host_files(in_dir=host_dir, num_files=4)
+
+            subdir = os.path.join(host_dir, "subdir")
+            os.mkdir(subdir)
+            subdir_temp_files = make_random_host_files(in_dir=subdir,
+                                                       num_files=4)
+
+            paths = map(lambda temp_file: temp_file.full_path, temp_files)
+            paths.append(subdir)
+            self.device._simple_call(['push'] + paths + [self.DEVICE_TEMP_DIR])
+
+            for temp_file in temp_files:
+                remote_path = posixpath.join(self.DEVICE_TEMP_DIR,
+                                             temp_file.base_name)
+                self._verify_remote(temp_file.checksum, remote_path)
+
+            for subdir_temp_file in subdir_temp_files:
+                remote_path = posixpath.join(self.DEVICE_TEMP_DIR,
+                                             # BROKEN: http://b/25394682
+                                             # "subdir",
+                                             temp_file.base_name)
+                self._verify_remote(temp_file.checksum, remote_path)
+
+
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        finally:
+            if host_dir is not None:
+                shutil.rmtree(host_dir)
+
+
+    def _test_pull(self, remote_file, checksum):
+        tmp_write = tempfile.NamedTemporaryFile(mode='wb', delete=False)
+        tmp_write.close()
+        self.device.pull(remote=remote_file, local=tmp_write.name)
+        with open(tmp_write.name, 'rb') as tmp_read:
+            host_contents = tmp_read.read()
+            host_md5 = compute_md5(host_contents)
+        self.assertEqual(checksum, host_md5)
+        os.remove(tmp_write.name)
+
+    @requires_non_root
+    def test_pull_error_reporting(self):
+        self.device.shell(['touch', self.DEVICE_TEMP_FILE])
+        self.device.shell(['chmod', 'a-rwx', self.DEVICE_TEMP_FILE])
+
+        try:
+            output = self.device.pull(remote=self.DEVICE_TEMP_FILE, local='x')
+        except subprocess.CalledProcessError as e:
+            output = e.output
+
+        self.assertIn('Permission denied', output)
+
+        self.device.shell(['rm', '-f', self.DEVICE_TEMP_FILE])
+
+    def test_pull(self):
+        """Pull a randomly generated file from specified device."""
+        kbytes = 512
+        self.device.shell(['rm', '-rf', self.DEVICE_TEMP_FILE])
+        cmd = ['dd', 'if=/dev/urandom',
+               'of={}'.format(self.DEVICE_TEMP_FILE), 'bs=1024',
+               'count={}'.format(kbytes)]
+        self.device.shell(cmd)
+        dev_md5, _ = self.device.shell(
+            [get_md5_prog(self.device), self.DEVICE_TEMP_FILE])[0].split()
+        self._test_pull(self.DEVICE_TEMP_FILE, dev_md5)
+        self.device.shell_nocheck(['rm', self.DEVICE_TEMP_FILE])
+
+    def test_pull_dir(self):
+        """Pull a randomly generated directory of files from the device."""
+        try:
+            host_dir = tempfile.mkdtemp()
+
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+            self.device.shell(['mkdir', '-p', self.DEVICE_TEMP_DIR])
+
+            # Populate device directory with random files.
+            temp_files = make_random_device_files(
+                self.device, in_dir=self.DEVICE_TEMP_DIR, num_files=32)
+
+            self.device.pull(remote=self.DEVICE_TEMP_DIR, local=host_dir)
+
+            for temp_file in temp_files:
+                host_path = os.path.join(host_dir, temp_file.base_name)
+
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        finally:
+            if host_dir is not None:
+                shutil.rmtree(host_dir)
+
+    def test_pull_empty(self):
+        """Pull a directory containing an empty directory from the device."""
+        try:
+            host_dir = tempfile.mkdtemp()
+
+            remote_empty_path = posixpath.join(self.DEVICE_TEMP_DIR, 'empty')
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+            self.device.shell(['mkdir', '-p', remote_empty_path])
+
+            self.device.pull(remote=remote_empty_path, local=host_dir)
+            self.assertTrue(os.path.isdir(os.path.join(host_dir, 'empty')))
+        finally:
+            if host_dir is not None:
+                shutil.rmtree(host_dir)
+
+    def test_multiple_pull(self):
+        """Pull a randomly generated directory of files from the device."""
+
+        try:
+            host_dir = tempfile.mkdtemp()
+
+            subdir = posixpath.join(self.DEVICE_TEMP_DIR, "subdir")
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+            self.device.shell(['mkdir', '-p', subdir])
+
+            # Create some random files and a subdirectory containing more files.
+            temp_files = make_random_device_files(
+                self.device, in_dir=self.DEVICE_TEMP_DIR, num_files=4)
+
+            subdir_temp_files = make_random_device_files(
+                self.device, in_dir=subdir, num_files=4, prefix='subdir_')
+
+            paths = map(lambda temp_file: temp_file.full_path, temp_files)
+            paths.append(subdir)
+            self.device._simple_call(['pull'] + paths + [host_dir])
+
+            for temp_file in temp_files:
+                local_path = os.path.join(host_dir, temp_file.base_name)
+                self._verify_local(temp_file.checksum, local_path)
+
+            for subdir_temp_file in subdir_temp_files:
+                local_path = os.path.join(host_dir,
+                                          "subdir",
+                                          subdir_temp_file.base_name)
+                self._verify_local(subdir_temp_file.checksum, local_path)
+
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        finally:
+            if host_dir is not None:
+                shutil.rmtree(host_dir)
+
+    def test_sync(self):
+        """Sync a randomly generated directory of files to specified device."""
+
+        try:
+            base_dir = tempfile.mkdtemp()
+
+            # Create mirror device directory hierarchy within base_dir.
+            full_dir_path = base_dir + self.DEVICE_TEMP_DIR
+            os.makedirs(full_dir_path)
+
+            # Create 32 random files within the host mirror.
+            temp_files = make_random_host_files(in_dir=full_dir_path, num_files=32)
+
+            # Clean up any trash on the device.
+            device = adb.get_device(product=base_dir)
+            device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+
+            device.sync('data')
+
+            # Confirm that every file on the device mirrors that on the host.
+            for temp_file in temp_files:
+                device_full_path = posixpath.join(self.DEVICE_TEMP_DIR,
+                                                  temp_file.base_name)
+                dev_md5, _ = device.shell(
+                    [get_md5_prog(self.device), device_full_path])[0].split()
+                self.assertEqual(temp_file.checksum, dev_md5)
+
+            self.device.shell(['rm', '-rf', self.DEVICE_TEMP_DIR])
+        finally:
+            if base_dir is not None:
+                shutil.rmtree(base_dir)
+
+    def test_unicode_paths(self):
+        """Ensure that we can support non-ASCII paths, even on Windows."""
+        name = u'로보카 폴리'
+
+        self.device.shell(['rm', '-f', '/data/local/tmp/adb-test-*'])
+        remote_path = u'/data/local/tmp/adb-test-{}'.format(name)
+
+        ## push.
+        tf = tempfile.NamedTemporaryFile('wb', suffix=name, delete=False)
+        tf.close()
+        self.device.push(tf.name, remote_path)
+        os.remove(tf.name)
+        self.assertFalse(os.path.exists(tf.name))
+
+        # Verify that the device ended up with the expected UTF-8 path
+        output = self.device.shell(
+                ['ls', '/data/local/tmp/adb-test-*'])[0].strip()
+        self.assertEqual(remote_path.encode('utf-8'), output)
+
+        # pull.
+        self.device.pull(remote_path, tf.name)
+        self.assertTrue(os.path.exists(tf.name))
+        os.remove(tf.name)
+        self.device.shell(['rm', '-f', '/data/local/tmp/adb-test-*'])
+
+
+def main():
+    random.seed(0)
+    if len(adb.get_devices()) > 0:
+        suite = unittest.TestLoader().loadTestsFromName(__name__)
+        unittest.TextTestRunner(verbosity=3).run(suite)
+    else:
+        print('Test suite must be run with attached devices')
+
+
+if __name__ == '__main__':
+    main()
diff --git a/python-packages/gdbrunner/__init__.py b/python-packages/gdbrunner/__init__.py
new file mode 100644
index 0000000..493a4e7
--- /dev/null
+++ b/python-packages/gdbrunner/__init__.py
@@ -0,0 +1,304 @@
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+"""Helpers used by both gdbclient.py and ndk-gdb.py."""
+
+import adb
+import argparse
+import atexit
+import os
+import subprocess
+import sys
+import tempfile
+
+class ArgumentParser(argparse.ArgumentParser):
+    """ArgumentParser subclass that provides adb device selection."""
+
+    def __init__(self):
+        super(ArgumentParser, self).__init__()
+        self.add_argument(
+            "--adb", dest="adb_path",
+            help="Use specific adb command")
+
+        group = self.add_argument_group(title="device selection")
+        group = group.add_mutually_exclusive_group()
+        group.add_argument(
+            "-a", action="store_const", dest="device", const="-a",
+            help="directs commands to all interfaces")
+        group.add_argument(
+            "-d", action="store_const", dest="device", const="-d",
+            help="directs commands to the only connected USB device")
+        group.add_argument(
+            "-e", action="store_const", dest="device", const="-e",
+            help="directs commands to the only connected emulator")
+        group.add_argument(
+            "-s", metavar="SERIAL", action="store", dest="serial",
+            help="directs commands to device/emulator with the given serial")
+
+    def parse_args(self, args=None, namespace=None):
+        result = super(ArgumentParser, self).parse_args(args, namespace)
+
+        adb_path = result.adb_path or "adb"
+
+        # Try to run the specified adb command
+        try:
+            subprocess.check_output([adb_path, "version"],
+                                    stderr=subprocess.STDOUT)
+        except (OSError, subprocess.CalledProcessError):
+            msg = "ERROR: Unable to run adb executable (tried '{}')."
+            if not result.adb_path:
+                msg += "\n       Try specifying its location with --adb."
+            sys.exit(msg.format(adb_path))
+
+        try:
+            if result.device == "-a":
+                result.device = adb.get_device(adb_path=adb_path)
+            elif result.device == "-d":
+                result.device = adb.get_usb_device(adb_path=adb_path)
+            elif result.device == "-e":
+                result.device = adb.get_emulator_device(adb_path=adb_path)
+            else:
+                result.device = adb.get_device(result.serial, adb_path=adb_path)
+        except (adb.DeviceNotFoundError, adb.NoUniqueDeviceError, RuntimeError):
+            # Don't error out if we can't find a device.
+            result.device = None
+
+        return result
+
+
+def get_run_as_cmd(user, cmd):
+    """Generate a run-as or su command depending on user."""
+
+    if user is None:
+        return cmd
+    elif user == "root":
+        return ["su", "0"] + cmd
+    else:
+        return ["run-as", user] + cmd
+
+
+def get_processes(device):
+    """Return a dict from process name to list of running PIDs on the device."""
+
+    # Some custom ROMs use busybox instead of toolbox for ps. Without -w,
+    # busybox truncates the output, and very long package names like
+    # com.exampleisverylongtoolongbyfar.plasma exceed the limit.
+    #
+    # Perform the check for this on the device to avoid an adb roundtrip
+    # Some devices might not have readlink or which, so we need to handle
+    # this as well.
+
+    ps_script = """
+        if [ ! -x /system/bin/readlink -o ! -x /system/bin/which ]; then
+            ps;
+        elif [ $(readlink $(which ps)) == "toolbox" ]; then
+            ps;
+        else
+            ps -w;
+        fi
+    """
+    ps_script = " ".join([line.strip() for line in ps_script.splitlines()])
+
+    output, _ = device.shell([ps_script])
+
+    processes = dict()
+    output = output.replace("\r", "").splitlines()
+    columns = output.pop(0).split()
+    try:
+        pid_column = columns.index("PID")
+    except ValueError:
+        pid_column = 1
+    while output:
+        columns = output.pop().split()
+        process_name = columns[-1]
+        pid = int(columns[pid_column])
+        if process_name in processes:
+            processes[process_name].append(pid)
+        else:
+            processes[process_name] = [pid]
+
+    return processes
+
+
+def get_pids(device, process_name):
+    processes = get_processes(device)
+    return processes.get(process_name, [])
+
+
+def start_gdbserver(device, gdbserver_local_path, gdbserver_remote_path,
+                    target_pid, run_cmd, debug_socket, port, user=None):
+    """Start gdbserver in the background and forward necessary ports.
+
+    Args:
+        device: ADB device to start gdbserver on.
+        gdbserver_local_path: Host path to push gdbserver from, can be None.
+        gdbserver_remote_path: Device path to push gdbserver to.
+        target_pid: PID of device process to attach to.
+        run_cmd: Command to run on the device.
+        debug_socket: Device path to place gdbserver unix domain socket.
+        port: Host port to forward the debug_socket to.
+        user: Device user to run gdbserver as.
+
+    Returns:
+        Popen handle to the `adb shell` process gdbserver was started with.
+    """
+
+    assert target_pid is None or run_cmd is None
+
+    # Push gdbserver to the target.
+    if gdbserver_local_path is not None:
+        device.push(gdbserver_local_path, gdbserver_remote_path)
+
+    # Run gdbserver.
+    gdbserver_cmd = [gdbserver_remote_path, "--once",
+                     "+{}".format(debug_socket)]
+
+    if target_pid is not None:
+        gdbserver_cmd += ["--attach", str(target_pid)]
+    else:
+        gdbserver_cmd += run_cmd
+
+    device.forward("tcp:{}".format(port),
+                   "localfilesystem:{}".format(debug_socket))
+    atexit.register(lambda: device.forward_remove("tcp:{}".format(port)))
+    gdbserver_cmd = get_run_as_cmd(user, gdbserver_cmd)
+
+    # Use ppid so that the file path stays the same.
+    gdbclient_output_path = os.path.join(tempfile.gettempdir(),
+                                         "gdbclient-{}".format(os.getppid()))
+    print "Redirecting gdbclient output to {}".format(gdbclient_output_path)
+    gdbclient_output = file(gdbclient_output_path, 'w')
+    return device.shell_popen(gdbserver_cmd, stdout=gdbclient_output,
+                              stderr=gdbclient_output)
+
+
+def find_file(device, executable_path, sysroot, user=None):
+    """Finds a device executable file.
+
+    This function first attempts to find the local file which will
+    contain debug symbols. If that fails, it will fall back to
+    downloading the stripped file from the device.
+
+    Args:
+      device: the AndroidDevice object to use.
+      executable_path: absolute path to the executable or symlink.
+      sysroot: absolute path to the built symbol sysroot.
+      user: if necessary, the user to download the file as.
+
+    Returns:
+      A tuple containing (<open file object>, <was found locally>).
+
+    Raises:
+      RuntimeError: could not find the executable binary.
+      ValueError: |executable_path| is not absolute.
+    """
+    if not os.path.isabs(executable_path):
+        raise ValueError("'{}' is not an absolute path".format(executable_path))
+
+    def generate_files():
+        """Yields (<file name>, <found locally>) tuples."""
+        # First look locally to avoid shelling into the device if possible.
+        # os.path.join() doesn't combine absolute paths, use + instead.
+        yield (sysroot + executable_path, True)
+
+        # Next check if the path is a symlink.
+        try:
+            target = device.shell(['readlink', '-e', '-n', executable_path])[0]
+            yield (sysroot + target, True)
+        except adb.ShellError:
+            pass
+
+        # Last, download the stripped executable from the device if necessary.
+        file_name = "gdbclient-binary-{}".format(os.getppid())
+        remote_temp_path = "/data/local/tmp/{}".format(file_name)
+        local_path = os.path.join(tempfile.gettempdir(), file_name)
+        cmd = get_run_as_cmd(user,
+                             ["cat", executable_path, ">", remote_temp_path])
+        try:
+            device.shell(cmd)
+        except adb.ShellError:
+            raise RuntimeError("Failed to copy '{}' to temporary folder on "
+                               "device".format(executable_path))
+        device.pull(remote_temp_path, local_path)
+        yield (local_path, False)
+
+    for path, found_locally in generate_files():
+        if os.path.isfile(path):
+            return (open(path, "r"), found_locally)
+    raise RuntimeError('Could not find executable {}'.format(executable_path))
+
+
+def find_binary(device, pid, sysroot, user=None):
+    """Finds a device executable file corresponding to |pid|."""
+    return find_file(device, "/proc/{}/exe".format(pid), sysroot, user)
+
+
+def get_binary_arch(binary_file):
+    """Parse a binary's ELF header for arch."""
+    try:
+        binary_file.seek(0)
+        binary = binary_file.read(0x14)
+    except IOError:
+        raise RuntimeError("failed to read binary file")
+    ei_class = ord(binary[0x4]) # 1 = 32-bit, 2 = 64-bit
+    ei_data = ord(binary[0x5]) # Endianness
+
+    assert ei_class == 1 or ei_class == 2
+    if ei_data != 1:
+        raise RuntimeError("binary isn't little-endian?")
+
+    e_machine = ord(binary[0x13]) << 8 | ord(binary[0x12])
+    if e_machine == 0x28:
+        assert ei_class == 1
+        return "arm"
+    elif e_machine == 0xB7:
+        assert ei_class == 2
+        return "arm64"
+    elif e_machine == 0x03:
+        assert ei_class == 1
+        return "x86"
+    elif e_machine == 0x3E:
+        assert ei_class == 2
+        return "x86_64"
+    elif e_machine == 0x08:
+        if ei_class == 1:
+            return "mips"
+        else:
+            return "mips64"
+    else:
+        raise RuntimeError("unknown architecture: 0x{:x}".format(e_machine))
+
+
+def start_gdb(gdb_path, gdb_commands, gdb_flags=None):
+    """Start gdb in the background and block until it finishes.
+
+    Args:
+        gdb_path: Path of the gdb binary.
+        gdb_commands: Contents of GDB script to run.
+        gdb_flags: List of flags to append to gdb command.
+    """
+
+    with tempfile.NamedTemporaryFile() as gdb_script:
+        gdb_script.write(gdb_commands)
+        gdb_script.flush()
+        gdb_args = [gdb_path, "-x", gdb_script.name] + (gdb_flags or [])
+        gdb_process = subprocess.Popen(gdb_args)
+        while gdb_process.returncode is None:
+            try:
+                gdb_process.communicate()
+            except KeyboardInterrupt:
+                pass
+
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index caac573..50c5d13 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -662,6 +662,16 @@
             </intent-filter>
         </service>
 
+        <service android:name=".accessibility.MagnificationService"
+                 android:label="@string/magnification_service_label"
+                 android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
+            <intent-filter>
+                <action android:name="android.accessibilityservice.AccessibilityService" />
+            </intent-filter>
+            <meta-data android:name="android.accessibilityservice"
+                       android:resource="@xml/magnification_service" />
+        </service>
+
         <activity android:name=".accessibility.TaskListActivity"
                   android:label="@string/accessibility_query_window"
                   android:enabled="@bool/atLeastIceCreamSandwich">
@@ -2413,14 +2423,14 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".view.ProgressBar4" android:label="Views/Progress Bar/4. In Title Bar">
+        <activity android:name=".view.SeekBar1" android:label="Views/Seek Bar">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.SAMPLE_CODE" />
             </intent-filter>
         </activity>
 
-        <activity android:name=".view.SeekBar1" android:label="Views/Seek Bar">
+        <activity android:name=".view.NumberPickerActivity" android:label="Views/Number Picker">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.SAMPLE_CODE" />
diff --git a/samples/ApiDemos/res/layout/number_picker.xml b/samples/ApiDemos/res/layout/number_picker.xml
new file mode 100644
index 0000000..ed15543
--- /dev/null
+++ b/samples/ApiDemos/res/layout/number_picker.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingStart="16dp"
+    android:paddingEnd="16dp"
+    android:paddingTop="16dp"
+    android:paddingBottom="16dp">
+
+    <CheckBox
+        android:id="@+id/enabled"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:checked="true"
+        android:text="@string/enabled" />
+
+    <NumberPicker
+        android:id="@+id/number_picker"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+</LinearLayout>
diff --git a/samples/ApiDemos/res/layout/progressbar_2.xml b/samples/ApiDemos/res/layout/progressbar_2.xml
index 32e6cdd..1e73e3e 100644
--- a/samples/ApiDemos/res/layout/progressbar_2.xml
+++ b/samples/ApiDemos/res/layout/progressbar_2.xml
@@ -38,4 +38,10 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" />
 
+    <ProgressBar android:id="@+id/progress_horizontal"
+        style="?android:attr/progressBarStyleHorizontal"
+        android:indeterminate="true"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
 </LinearLayout>
diff --git a/samples/ApiDemos/res/layout/progressbar_4.xml b/samples/ApiDemos/res/layout/progressbar_4.xml
deleted file mode 100644
index 6bacf7a..0000000
--- a/samples/ApiDemos/res/layout/progressbar_4.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2007 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
-    android:orientation="vertical"
-    android:layout_width="match_parent" 
-    android:layout_height="wrap_content">
-
-    <Button android:id="@+id/toggle"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/progressbar_4_toggle" />
-
-</LinearLayout>
diff --git a/samples/ApiDemos/res/menu/submenu.xml b/samples/ApiDemos/res/menu/submenu.xml
index 24eff76..a5e25ba 100644
--- a/samples/ApiDemos/res/menu/submenu.xml
+++ b/samples/ApiDemos/res/menu/submenu.xml
@@ -15,30 +15,139 @@
 -->
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:title="Apple"
+          android:showAsAction="always|withText" />
+
+    <item android:title="Orange"
+          android:showAsAction="always|withText">
+
+        <menu>
+
+            <item android:id="@+id/a"
+                  android:title="Aaaaaa"
+                  android:icon="@drawable/stat_happy" />
+
+            <item android:id="@+id/b"
+                  android:title="Bbbbbbb"
+                  android:icon="@drawable/stat_neutral" />
+
+            <item android:id="@+id/c"
+                  android:title="Ccccccc (More)">
+
+                <menu>
+                    <item android:id="@+id/d"
+                          android:title="Dddddd" />
+                    <item android:id="@+id/d"
+                          android:title="Eeeeee">
+                        <menu>
+                            <item android:title="Ffffff" />
+                        </menu>
+                    </item>
+
+                </menu>
+            </item>
+
+        </menu>
+    </item>
 
     <item android:title="Normal 1" />
 
     <item android:id="@+id/submenu"
-        android:title="Emotions">
+          android:title="Emotions">
 
-        <menu>        
+        <menu>
+
+
 
             <item android:id="@+id/happy"
-                android:title="Happy"
-                android:icon="@drawable/stat_happy" />
-        
+                  android:title="Happy"
+                  android:icon="@drawable/stat_happy" />
+
             <item android:id="@+id/neutral"
-                android:title="Neutral"
-                android:icon="@drawable/stat_neutral" />
-        
+                  android:title="Neutral"
+                  android:icon="@drawable/stat_neutral" />
+
             <item android:id="@+id/sad"
-                android:title="Sad"
-                android:icon="@drawable/stat_sad" />
-        
+                  android:title="Sad"
+                  android:icon="@drawable/stat_sad" />
+
+            <item android:id="@+id/happyA"
+                  android:title="Happy"
+                  android:icon="@drawable/stat_happy" />
+
+            <item android:id="@+id/neutralA"
+                  android:title="Neutral"
+                  android:icon="@drawable/stat_neutral" />
+
+            <item android:id="@+id/emotions2"
+                  android:title="More Emotions">
+
+                <menu>
+                    <item android:id="@+id/emotions3"
+                          android:title="More Emotions">
+
+                        <menu>
+
+                            <item android:id="@+id/angry2"
+                                  android:title="Very Angry" />
+
+                            <item android:id="@+id/neutral3"
+                                  android:title="Triple Neutral"
+                                  android:icon="@drawable/stat_neutral" />
+
+                        </menu>
+
+                    </item>
+
+                    <item android:id="@+id/angry"
+                          android:title="Angry" />
+
+                    <item android:id="@+id/neutral2"
+                          android:title="Double Neutral"
+                          android:icon="@drawable/stat_neutral" />
+
+                </menu>
+            </item>
+
+            <item android:id="@+id/sadA"
+                  android:title="Sad"
+                  android:icon="@drawable/stat_sad" />
+
+            <item android:id="@+id/happyB"
+                  android:title="Happy"
+                  android:icon="@drawable/stat_happy" />
+
+            <item android:id="@+id/neutralB"
+                  android:title="Neutral"
+                  android:icon="@drawable/stat_neutral" />
+
+            <item android:id="@+id/sadB"
+                  android:title="Sad"
+                  android:icon="@drawable/stat_sad" />
+
+            <item android:id="@+id/happyC"
+                  android:title="Happy"
+                  android:icon="@drawable/stat_happy" />
+
+            <item android:id="@+id/neutralC"
+                  android:title="Neutral"
+                  android:icon="@drawable/stat_neutral" />
+
+            <item android:id="@+id/sadC"
+                  android:title="Sad"
+                  android:icon="@drawable/stat_sad" />
+
+            <item android:id="@+id/happyD"
+                  android:title="Happy"
+                  android:icon="@drawable/stat_happy" />
+
+            <item android:id="@+id/neutralD"
+                  android:title="Neutral"
+                  android:icon="@drawable/stat_neutral" />
         </menu>
-    
+
     </item>
 
     <item android:title="Normal 2" />
 
-</menu>
+</menu>
\ No newline at end of file
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 8b672e6..f83dcde 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -1527,6 +1527,9 @@
     <string name="accessibility_custom_on">On</string>
     <string name="accessibility_custom_off">Off</string>
 
+    <string name="magnification_service_label">Magnification</string>
+    <string name="magnification_service_description">Allows the volume keys to control display magnification</string>
+
     <string name="task_name">Task</string>
     <string name="task_complete_template">Task %1$s %2$s</string>
     <string name="task_complete">is complete</string>
diff --git a/samples/ApiDemos/res/xml/magnification_service.xml b/samples/ApiDemos/res/xml/magnification_service.xml
new file mode 100644
index 0000000..561d8a0
--- /dev/null
+++ b/samples/ApiDemos/res/xml/magnification_service.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (C) 2015 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+ -->
+
+<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
+    android:accessibilityEventTypes=""
+    android:accessibilityFeedbackType="feedbackVisual"
+    android:canRequestFilterKeyEvents="true"
+    android:canControlMagnification="true"
+    android:description="@string/magnification_service_description" />
diff --git a/samples/ApiDemos/src/com/example/android/apis/accessibility/MagnificationService.java b/samples/ApiDemos/src/com/example/android/apis/accessibility/MagnificationService.java
new file mode 100644
index 0000000..f63a106
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/accessibility/MagnificationService.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.apis.accessibility;
+
+import android.accessibilityservice.AccessibilityService;
+import android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener;
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.graphics.Region;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.view.accessibility.AccessibilityEvent;
+
+/**
+ * This class is an {@link AccessibilityService} that controls the state of
+ * display magnification in response to key events. It demonstrates the
+ * following key features of the Android accessibility APIs:
+ * <ol>
+ *   <li>Basic implementation of an AccessibilityService
+ *   <li>Observing and respond to user-generated key events
+ *   <li>Querying and modifying the state of display magnification
+ * </ol>
+ */
+public class MagnificationService extends AccessibilityService {
+    private static final String LOG_TAG = "MagnificationService";
+
+    /**
+     * Callback for {@link android.view.accessibility.AccessibilityEvent}s.
+     *
+     * @param event An event.
+     */
+    @Override
+    public void onAccessibilityEvent(AccessibilityEvent event) {
+        // No events required for this service.
+    }
+
+    /**
+     * Callback for interrupting the accessibility feedback.
+     */
+    @Override
+    public void onInterrupt() {
+        // No interruptible actions taken by this service.
+    }
+
+    /**
+     * Callback that allows an accessibility service to observe the key events
+     * before they are passed to the rest of the system. This means that the events
+     * are first delivered here before they are passed to the device policy, the
+     * input method, or applications.
+     * <p>
+     * <strong>Note:</strong> It is important that key events are handled in such
+     * a way that the event stream that would be passed to the rest of the system
+     * is well-formed. For example, handling the down event but not the up event
+     * and vice versa would generate an inconsistent event stream.
+     * </p>
+     * <p>
+     * <strong>Note:</strong> The key events delivered in this method are copies
+     * and modifying them will have no effect on the events that will be passed
+     * to the system. This method is intended to perform purely filtering
+     * functionality.
+     * <p>
+     *
+     * @param event The event to be processed.
+     * @return If true then the event will be consumed and not delivered to
+     *         applications, otherwise it will be delivered as usual.
+     */
+    @Override
+    protected boolean onKeyEvent(KeyEvent event) {
+        // Only consume volume key events.
+        final int keyCode = event.getKeyCode();
+        if (keyCode != KeyEvent.KEYCODE_VOLUME_UP
+                && keyCode != KeyEvent.KEYCODE_VOLUME_DOWN) {
+            return false;
+        }
+
+        // Handle the event when the user releases the volume key. To prevent
+        // the keys from actually adjusting the device volume, we'll ignore
+        // the result of handleVolumeKey() and always return true to consume
+        // the events.
+        final int action = event.getAction();
+        if (action == KeyEvent.ACTION_UP) {
+            handleVolumeKey(keyCode == KeyEvent.KEYCODE_VOLUME_UP);
+        }
+
+        // Consume all volume key events.
+        return true;
+    }
+
+    /**
+     * Adjusts the magnification scale in response to volume key actions.
+     *
+     * @param isVolumeUp {@code true} if the volume up key was pressed or
+     *                   {@code false} if the volume down key was pressed
+     * @return {@code true} if the magnification scale changed as a result of
+     *         the key
+     */
+    private boolean handleVolumeKey(boolean isVolumeUp) {
+        // Obtain the controller on-demand, which allows us to avoid
+        // dependencies on the accessibility service's lifecycle.
+        final MagnificationController controller = getMagnificationController();
+
+        // Adjust the current scale based on which volume key was pressed,
+        // constraining the scale between 1x and 5x.
+        final float currScale = controller.getScale();
+        final float increment = isVolumeUp ? 0.1f : -0.1f;
+        final float nextScale = Math.max(1f, Math.min(5f, currScale + increment));
+        if (nextScale == currScale) {
+            return false;
+        }
+
+        // Set the pivot, then scale around it.
+        final DisplayMetrics metrics = getResources().getDisplayMetrics();
+        controller.setScale(nextScale, true /* animate */);
+        controller.setCenter(metrics.widthPixels / 2f, metrics.heightPixels / 2f, true);
+        return true;
+    }
+
+    /**
+     * This method is a part of the {@link AccessibilityService} lifecycle and is
+     * called after the system has successfully bound to the service. If is
+     * convenient to use this method for setting the {@link AccessibilityServiceInfo}.
+     *
+     * @see AccessibilityServiceInfo
+     * @see #setServiceInfo(AccessibilityServiceInfo)
+     */
+    @Override
+    public void onServiceConnected() {
+        final AccessibilityServiceInfo info = getServiceInfo();
+        if (info == null) {
+            // If we fail to obtain the service info, the service is not really
+            // connected and we should avoid setting anything up.
+            return;
+        }
+
+        // We declared our intent to request key filtering in the meta-data
+        // attached to our service in the manifest. Now, we can explicitly
+        // turn on key filtering when needed.
+        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS;
+        setServiceInfo(info);
+
+        // Set up a listener for changes in the state of magnification.
+        getMagnificationController().addListener(new OnMagnificationChangedListener() {
+            @Override
+            public void onMagnificationChanged(MagnificationController controller,
+                    Region region, float scale, float centerX, float centerY) {
+                Log.e(LOG_TAG, "Magnification scale is now " + scale);
+            }
+        });
+    }
+}
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentHideShow.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentHideShow.java
index e5e2599..3e9619d 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/FragmentHideShow.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentHideShow.java
@@ -43,8 +43,14 @@
         // The content view embeds two fragments; now retrieve them and attach
         // their "hide" button.
         FragmentManager fm = getFragmentManager();
-        addShowHideListener(R.id.frag1hide, fm.findFragmentById(R.id.fragment1));
-        addShowHideListener(R.id.frag2hide, fm.findFragmentById(R.id.fragment2));
+        Fragment fragment1 = fm.findFragmentById(R.id.fragment1);
+        addShowHideListener(R.id.frag1hide, fragment1);
+        final Button button1 = (Button)findViewById(R.id.frag1hide);
+        button1.setText(fragment1.isHidden() ? "Show" : "Hide");
+        Fragment fragment2 = fm.findFragmentById(R.id.fragment2);
+        addShowHideListener(R.id.frag2hide, fragment2);
+        final Button button2 = (Button)findViewById(R.id.frag2hide);
+        button2.setText(fragment2.isHidden() ? "Show" : "Hide");
     }
 
     void addShowHideListener(int buttonId, final Fragment fragment) {
diff --git a/samples/ApiDemos/src/com/example/android/apis/view/NumberPickerActivity.java b/samples/ApiDemos/src/com/example/android/apis/view/NumberPickerActivity.java
new file mode 100644
index 0000000..875d86b
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/view/NumberPickerActivity.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.apis.view;
+
+import com.example.android.apis.R;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.NumberPicker;
+
+
+/**
+ * Demonstrates how to use a seek bar
+ */
+public class NumberPickerActivity extends Activity {
+    private NumberPicker mNumberPicker;
+    
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.number_picker);
+
+        mNumberPicker = (NumberPicker) findViewById(R.id.number_picker);
+        mNumberPicker.setMaxValue(30);
+
+        ((CheckBox) findViewById(R.id.enabled)).setOnCheckedChangeListener(
+                new OnCheckedChangeListener() {
+                    @Override
+                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                        mNumberPicker.setEnabled(isChecked);
+                    }
+                });
+    }
+}
diff --git a/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar2.java b/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar2.java
index 1c41b78..fff5a90 100644
--- a/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar2.java
+++ b/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar2.java
@@ -33,12 +33,6 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        // Request for the progress bar to be shown in the title
-        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
-        
         setContentView(R.layout.progressbar_2);
-        
-        // Make sure the progress bar is visible
-        setProgressBarVisibility(true);
     }
 }
diff --git a/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar4.java b/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar4.java
deleted file mode 100644
index 86188f2..0000000
--- a/samples/ApiDemos/src/com/example/android/apis/view/ProgressBar4.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.example.android.apis.view;
-
-import com.example.android.apis.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.view.Window;
-import android.view.View;
-import android.widget.Button;
-
-
-/**
- * Demonstrates how to use an indeterminate progress indicator in the window's title bar.
- */
-public class ProgressBar4 extends Activity {
-    private boolean mToggleIndeterminate = false;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Request progress bar
-        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
-        setContentView(R.layout.progressbar_4);
-        setProgressBarIndeterminateVisibility(mToggleIndeterminate);
-        
-        Button button = (Button) findViewById(R.id.toggle);
-        button.setOnClickListener(new Button.OnClickListener() {
-            public void onClick(View v) {
-                mToggleIndeterminate = !mToggleIndeterminate;
-                setProgressBarIndeterminateVisibility(mToggleIndeterminate);
-            }
-        });
-    }
-}
diff --git a/samples/ApiDemos/src/com/example/android/apis/view/_index.html b/samples/ApiDemos/src/com/example/android/apis/view/_index.html
index c5c7ed2..300525d 100644
--- a/samples/ApiDemos/src/com/example/android/apis/view/_index.html
+++ b/samples/ApiDemos/src/com/example/android/apis/view/_index.html
@@ -320,9 +320,6 @@
 
   <dt><a href="ProgressBar3.html">3. Dialogs</a></dt>
   <dd>Demonstrates a ProgressDialog, a popup dialog that hosts a progress bar. This example demonstrates both determinate and indeterminate progress indicators. </dd>
-
-  <dt><a href="ProgressBar4.html">4. In Title Bar</a></dt>
-  <dd>Demonstrates an Activity screen with a progress indicator loaded by setting the WindowPolicy's progress indicator feature. </dd>
 </dl>
 
 <h3>Focus</h3>
diff --git a/samples/CaptionOverlayActivity/Android.mk b/samples/CaptionOverlayActivity/Android.mk
new file mode 100644
index 0000000..c4a8c87
--- /dev/null
+++ b/samples/CaptionOverlayActivity/Android.mk
@@ -0,0 +1,16 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := samples
+
+# Only compile source java files in this apk.
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := CaptionOverlayActivity
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
+
+# Use the following include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/CaptionOverlayActivity/AndroidManifest.xml b/samples/CaptionOverlayActivity/AndroidManifest.xml
new file mode 100644
index 0000000..ff349df
--- /dev/null
+++ b/samples/CaptionOverlayActivity/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.android.captionoverlayactivity">
+    <application android:label="Caption Overlay">
+        <activity android:name=".CaptionOverlayActivity"
+                android:resizeableActivity="true"
+                android:theme="@android:style/Theme.Holo.Light">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/CaptionOverlayActivity/res/layout/caption_overlay_layout.xml b/samples/CaptionOverlayActivity/res/layout/caption_overlay_layout.xml
new file mode 100644
index 0000000..68d5434
--- /dev/null
+++ b/samples/CaptionOverlayActivity/res/layout/caption_overlay_layout.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        >
+    <LinearLayout
+            android:layout_height="48dp"
+            android:layout_width="match_parent"
+            android:orientation="horizontal"
+            >
+        <Button
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:text="@string/caption_overlay_activity_hello_text"
+                />
+        <Button
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:text="@string/caption_overlay_activity_fish_text"
+        />
+    </LinearLayout>
+    <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/caption_overlay_activity_hello_text"
+            />
+</LinearLayout>
diff --git a/samples/CaptionOverlayActivity/res/values/strings.xml b/samples/CaptionOverlayActivity/res/values/strings.xml
new file mode 100644
index 0000000..fcaebd1
--- /dev/null
+++ b/samples/CaptionOverlayActivity/res/values/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+
+    <string name="caption_overlay_activity_hello_text">Hello, World!</string>
+    <string name="caption_overlay_activity_fish_text">Thanks for All the Fish!</string>
+
+</resources>
diff --git a/samples/CaptionOverlayActivity/src/com/example/android/captionoverlayactivity/CaptionOverlayActivity.java b/samples/CaptionOverlayActivity/src/com/example/android/captionoverlayactivity/CaptionOverlayActivity.java
new file mode 100644
index 0000000..5b29005
--- /dev/null
+++ b/samples/CaptionOverlayActivity/src/com/example/android/captionoverlayactivity/CaptionOverlayActivity.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.captionoverlayactivity;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+
+/**
+ * A minimal application that overlays caption on the content.
+ */
+public class CaptionOverlayActivity extends Activity {
+    /**
+     * Called with the activity is first created.
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // Overlay the caption on the content.
+        overlayWithDecorCaption(true);
+        setContentView(R.layout.caption_overlay_layout);
+
+        View decorView = getWindow().getDecorView();
+        // Hide the status bar, because it likes to consume touch events.
+        int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
+        decorView.setSystemUiVisibility(uiOptions);
+        // Remember that you should never show the action bar if the
+        // status bar is hidden, so hide that too if necessary.
+        ActionBar actionBar = getActionBar();
+        actionBar.hide();
+
+    }
+}
+
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java
index e0fcbdb..3441506 100644
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java
+++ b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentHideShowSupport.java
@@ -44,8 +44,14 @@
         // The content view embeds two fragments; now retrieve them and attach
         // their "hide" button.
         FragmentManager fm = getSupportFragmentManager();
-        addShowHideListener(R.id.frag1hide, fm.findFragmentById(R.id.fragment1));
-        addShowHideListener(R.id.frag2hide, fm.findFragmentById(R.id.fragment2));
+        Fragment fragment1 = fm.findFragmentById(R.id.fragment1);
+        addShowHideListener(R.id.frag1hide, fragment1);
+        final Button button1 = (Button)findViewById(R.id.frag1hide);
+        button1.setText(fragment1.isHidden() ? "Show" : "Hide");
+        Fragment fragment2 = fm.findFragmentById(R.id.fragment2);
+        addShowHideListener(R.id.frag2hide, fragment2);
+        final Button button2 = (Button)findViewById(R.id.frag2hide);
+        button2.setText(fragment2.isHidden() ? "Show" : "Hide");
     }
 
     void addShowHideListener(int buttonId, final Fragment fragment) {
diff --git a/samples/SupportPercentDemos/res/layout/demo_3.xml b/samples/SupportPercentDemos/res/layout/demo_3.xml
new file mode 100644
index 0000000..1024446
--- /dev/null
+++ b/samples/SupportPercentDemos/res/layout/demo_3.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<android.support.percent.PercentFrameLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        >
+    <include layout="@layout/demo_include" />
+</android.support.percent.PercentFrameLayout>
diff --git a/samples/SupportPercentDemos/res/layout/demo_include.xml b/samples/SupportPercentDemos/res/layout/demo_include.xml
new file mode 100644
index 0000000..5ad98df
--- /dev/null
+++ b/samples/SupportPercentDemos/res/layout/demo_include.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<merge
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    >
+    <View
+        app:layout_widthPercent="60%"
+        app:layout_heightPercent="60%"
+        app:layout_marginTopPercent="20%"
+        app:layout_marginLeftPercent="20%"
+        android:background="#FF0000"
+        />
+    <View
+        android:layout_gravity="bottom|right"
+        app:layout_widthPercent="20%"
+        app:layout_heightPercent="20%"
+        app:layout_marginRightPercent="40%"
+        app:layout_marginBottomPercent="40%"
+        android:background="#0000FF"
+        />
+</merge>
diff --git a/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java b/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java
index 0290eb3..db92f84 100644
--- a/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java
+++ b/samples/SupportPercentDemos/src/com/example/android/support/percent/SupportPercentDemos.java
@@ -44,6 +44,7 @@
             super(fm);
         }
 
+
         @Override
         public Fragment getItem(int position) {
             PercentFragment fragment = new PercentFragment();
@@ -54,6 +55,10 @@
                     break;
                 case 1:
                     args.putInt(LAYOUT_RESOURCE_ID, R.layout.demo_2);
+                    break;
+                case 2:
+                    args.putInt(LAYOUT_RESOURCE_ID, R.layout.demo_3);
+                    break;
                 default:
                     break;
             }
@@ -63,7 +68,7 @@
 
         @Override
         public int getCount() {
-            return 2;
+            return 3;
         }
     }
 
diff --git a/samples/samples_source.prop_template b/samples/samples_source.prop_template
index 3d4fac5..d3cdfd5 100644
--- a/samples/samples_source.prop_template
+++ b/samples/samples_source.prop_template
@@ -1,4 +1,4 @@
 Pkg.UserSrc=false
-Pkg.Revision=3
+Pkg.Revision=1
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
diff --git a/scripts/example_crashes.py b/scripts/example_crashes.py
index 745a19e..4b8b6b5 100755
--- a/scripts/example_crashes.py
+++ b/scripts/example_crashes.py
@@ -112,6 +112,33 @@
     #06 pc 00013198  /system/lib/libc.so (__start_thread+36)
 """
 
+mips64 = """
+Build fingerprint: 'Android/aosp_mips64/generic_mips64:5.1.51/AOSP/agampe05040015:userdebug/test-keys'
+Revision: '1'
+ABI: 'mips64'
+pid: 342, tid: 342, name: crasher64  >>> crasher64 <<<
+signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
+ zr 0000000000000000  at 0000000000000001  v0 0000000000000000  v1 000000ffec1c6528
+ a0 0000000000000156  a1 0000000000000156  a2 0000000000000006  a3 0000000000000000
+ a4 000000000000ffff  a5 fffffffffffffffc  a6 0000000000000000  a7 0000000000000001
+ t0 0000000000000001  t1 0000000000000000  t2 0000000000000001  t3 0000000000000001
+ s0 0000000000000002  s1 000000ffec1c6538  s2 000000ffec1c6478  s3 0000000000000006
+ s4 0000000000100000  s5 000000fff1d44f98  s6 000000fff186c488  s7 0000000000000000
+ t8 ffffffffffff0000  t9 000000ffec01c2a0  k0 0000000000000000  k1 0000000000000000
+ gp 000000ffec0a6680  sp 000000ffff8c7150  s8 0000000000100206  ra 000000ffec016684
+ hi 0000000000000000  lo 0000000000000000 bva 000000ffffffe010 epc 000000ffec01c2a8
+
+backtrace:
+    #00 pc 00000000000832a8  /system/lib64/libc.so (tgkill+8)
+    #01 pc 000000000007d684  /system/lib64/libc.so (pthread_kill+116)
+    #02 pc 000000000002dd78  /system/lib64/libc.so (raise+56)
+    #03 pc 000000000002684c  /system/lib64/libc.so (abort+92)
+    #04 pc 000000000000199c  /system/xbin/crasher64
+    #05 pc 000000000002595c  /system/lib64/libc.so (__libc_init+140)
+    #06 pc 0000000000000fd4  /system/xbin/crasher64
+    #07 pc 0000000000000f80  /system/xbin/crasher64
+"""
+
 x86 = """
 Build fingerprint: 'Android/aosp_x86_64/generic_x86_64:4.4.3.43.43.43/AOSP/enh06302258:eng/test-keys'
 Revision: '0'
diff --git a/scripts/gdb/dalvik.gdb b/scripts/gdb/dalvik.gdb
index 6281661..0bedf64 100644
--- a/scripts/gdb/dalvik.gdb
+++ b/scripts/gdb/dalvik.gdb
@@ -1,54 +1,17 @@
-#  dump dalvik backtrace
-define dbt
-    if $argc == 1
-        set $FP = $arg0
-    else
-        set $FP = $r5
-    end
-
-    set $frame = 0
-    set $savedPC = 0
-    while $FP
-        set $stackSave = $FP - sizeof(StackSaveArea)
-        set $savedPC = ((StackSaveArea *)$stackSave)->savedPc
-        set $method = ((StackSaveArea *)$stackSave)->method
-        printf "#%d\n", $frame
-        printf "    FP = %#x\n", $FP
-        printf "    stack save = %#x\n", $stackSave
-        printf "    Curr pc = %#x\n", ((StackSaveArea *) $stackSave)->xtra.currentPc
-        printf "    FP prev = %#x\n", ((StackSaveArea *) $stackSave)->prevFrame
-        if $method != 0
-            printf "    returnAddr: 0x%x\n", \
-                   ((StackSaveArea *)$stackSave)->returnAddr
-            printf "    class = %s\n", ((Method *) $method)->clazz->descriptor
-            printf "    method = %s (%#08x)\n", ((Method *) $method)->name, $method
-            printf "    signature = %s\n", ((Method *) $method)->shorty
-            printf "    bytecode offset = 0x%x\n", (short *) (((StackSaveArea *) $stackSave)->xtra.currentPc) - (short *) (((Method *) $method)->insns)
-            set $regSize = ((Method *) $method)->registersSize
-            set $insSize = ((Method *) $method)->insSize
-            set $index = 0
-            while $index < $regSize
-                printf "    v%d = %d", $index, ((int *)$FP)[$index]
-                if $regSize - $index <= $insSize
-                    printf " (in%d)\n", $insSize - $regSize + $index
-                else
-                    printf " (local%d)\n", $index
-                end
-                set $index = $index + 1
-            end
-        else
-            printf "    break frame\n"
-        end
-        set $FP = (int) ((StackSaveArea *)$stackSave)->prevFrame
-        set $frame = $frame + 1
-    end
-end
-
-document dbt
-    Unwind Dalvik stack frames. Argument 0 is the frame address of the top
-    frame. If omitted r5 will be used as the default (as the case in the
-    interpreter and JIT'ed code).
-end
+#
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
 # ART debugging.  ART uses SIGSEGV signals for internal purposes.  To allow
 # gdb to debug programs using ART we need to treat this signal specially.  We
diff --git a/scripts/gdbclient b/scripts/gdbclient
index b74a8f0..773a37f 100755
--- a/scripts/gdbclient
+++ b/scripts/gdbclient
@@ -11,11 +11,13 @@
 # shell, but not functions (like gettop), so we need to source envsetup in here
 # as well.
 source $ANDROID_BUILD_TOP/build/envsetup.sh
+echo
 
 function adb_get_product_device() {
-  local candidate=`adb shell getprop ro.product.device | tr -d '\r\n'`
-  if [ -z $candidate ]; then
-    candidate=`adb shell getprop ro.hardware | tr -d '\r\n'`
+  local candidate=`adb shell getprop ro.hardware | tr -d '\r\n'`
+  if [[ "$candidate" =~ ^(goldfish|ranchu)$ ]]; then
+    # Emulator builds use product.device for OUT folder
+    candidate=`adb shell getprop ro.product.device | tr -d '\r\n'`
   fi
   echo $candidate
 }
@@ -95,10 +97,15 @@
     fi
   fi
 
-  local EXE=`adb shell readlink /proc/$PID/exe | tr -d '\r\n'`
+  local ID=`adb shell id -u`
+  if [ "$ID" != "0" ]; then
+    echo "Error: gdbclient only works if you've run 'adb root'"
+    return -4
+  fi
 
+  local EXE=`adb shell readlink /proc/$PID/exe | tr -d '\r\n'`
   if [ -z "$EXE" ]; then
-    echo "Error: no such pid=$PID - is process still alive?"
+    echo "Error: couldn't find executable for pid $PID --- is the process still alive?"
     return -4
   fi
 
@@ -136,17 +143,12 @@
   if [[ $CPU_ABI =~ (^|,)arm64 ]]; then
     GDB=arm-linux-androideabi-gdb
     GDB64=aarch64-linux-android-gdb
-  elif [[ $CPU_ABI =~ (^|,)x86_64 ]]; then
+  elif [[ $CPU_ABI =~ (^|,)x86 ]]; then    # x86 (32-bit and 64-bit) is unified.
     GDB=x86_64-linux-android-gdb
-  elif [[ $CPU_ABI =~ (^|,)mips64 ]]; then
-    GDB=mipsel-linux-android-gdb
-    GDB64=mips64el-linux-android-gdb
-  elif [[ $CPU_ABI =~ (^|,)x86 ]]; then    # See note above for order.
-    GDB=x86_64-linux-android-gdb
-  elif [[ $CPU_ABI =~ (^|,)arm ]]; then
+  elif [[ $CPU_ABI =~ (^|,)mips ]]; then   # Mips (32-bit and 64-bit) is unified.
+    GDB=mips64el-linux-android-gdb
+  elif [[ $CPU_ABI =~ (^|,)arm ]]; then    # See note above for order.
     GDB=arm-linux-androideabi-gdb
-  elif [[ $CPU_ABI =~ (^|,)mips ]]; then
-    GDB=mipsel-linux-android-gdb
   else
     echo "Error: unrecognized cpu.abilist: $CPU_ABI"
     return -6
diff --git a/scripts/gdbclient.py b/scripts/gdbclient.py
new file mode 100755
index 0000000..4fb6c7e
--- /dev/null
+++ b/scripts/gdbclient.py
@@ -0,0 +1,270 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2015 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import adb
+import argparse
+import logging
+import os
+import subprocess
+import sys
+
+# Shared functions across gdbclient.py and ndk-gdb.py.
+import gdbrunner
+
+def get_gdbserver_path(root, arch):
+    path = "{}/prebuilts/misc/android-{}/gdbserver{}/gdbserver{}"
+    if arch.endswith("64"):
+        return path.format(root, arch, "64", "64")
+    else:
+        return path.format(root, arch, "", "")
+
+
+def parse_args():
+    parser = gdbrunner.ArgumentParser()
+
+    group = parser.add_argument_group(title="attach target")
+    group = group.add_mutually_exclusive_group(required=True)
+    group.add_argument(
+        "-p", dest="target_pid", metavar="PID", type=int,
+        help="attach to a process with specified PID")
+    group.add_argument(
+        "-n", dest="target_name", metavar="NAME",
+        help="attach to a process with specified name")
+    group.add_argument(
+        "-r", dest="run_cmd", metavar="CMD", nargs=argparse.REMAINDER,
+        help="run a binary on the device, with args")
+
+    parser.add_argument(
+        "--port", nargs="?", default="5039",
+        help="override the port used on the host")
+    parser.add_argument(
+        "--user", nargs="?", default="root",
+        help="user to run commands as on the device [default: root]")
+
+    return parser.parse_args()
+
+
+def dump_var(root, variable):
+    make_args = ["make", "CALLED_FROM_SETUP=true",
+                 "BUILD_SYSTEM={}/build/core".format(root),
+                 "--no-print-directory", "-f",
+                 "{}/build/core/config.mk".format(root),
+                 "dumpvar-{}".format(variable)]
+
+    # subprocess cwd argument does not change the PWD shell variable, but
+    # dumpvar.mk uses PWD to create an absolute path, so we need to set it.
+    saved_pwd = os.environ['PWD']
+    os.environ['PWD'] = root
+    make_output = subprocess.check_output(make_args, cwd=root)
+    os.environ['PWD'] = saved_pwd
+    return make_output.splitlines()[0]
+
+
+def verify_device(root, props):
+    names = set([props["ro.build.product"], props["ro.product.device"]])
+    target_device = dump_var(root, "TARGET_DEVICE")
+    if target_device not in names:
+        msg = "TARGET_DEVICE ({}) does not match attached device ({})"
+        sys.exit(msg.format(target_device, ", ".join(names)))
+
+
+def get_remote_pid(device, process_name):
+    processes = gdbrunner.get_processes(device)
+    if process_name not in processes:
+        msg = "failed to find running process {}".format(process_name)
+        sys.exit(msg)
+    pids = processes[process_name]
+    if len(pids) > 1:
+        msg = "multiple processes match '{}': {}".format(process_name, pids)
+        sys.exit(msg)
+
+    # Fetch the binary using the PID later.
+    return pids[0]
+
+
+def ensure_linker(device, sysroot, is64bit):
+    local_path = os.path.join(sysroot, "system", "bin", "linker")
+    remote_path = "/system/bin/linker"
+    if is64bit:
+        local_path += "64"
+        remote_path += "64"
+    if not os.path.exists(local_path):
+        device.pull(remote_path, local_path)
+
+
+def handle_switches(args, sysroot):
+    """Fetch the targeted binary and determine how to attach gdb.
+
+    Args:
+        args: Parsed arguments.
+        sysroot: Local sysroot path.
+
+    Returns:
+        (binary_file, attach_pid, run_cmd).
+        Precisely one of attach_pid or run_cmd will be None.
+    """
+
+    device = args.device
+    binary_file = None
+    pid = None
+    run_cmd = None
+
+    if args.target_pid:
+        # Fetch the binary using the PID later.
+        pid = args.target_pid
+    elif args.target_name:
+        # Fetch the binary using the PID later.
+        pid = get_remote_pid(device, args.target_name)
+    elif args.run_cmd:
+        if not args.run_cmd[0]:
+            sys.exit("empty command passed to -r")
+        if not args.run_cmd[0].startswith("/"):
+            sys.exit("commands passed to -r must use absolute paths")
+        run_cmd = args.run_cmd
+        binary_file, local = gdbrunner.find_file(device, run_cmd[0], sysroot,
+                                                 user=args.user)
+    if binary_file is None:
+        assert pid is not None
+        try:
+            binary_file, local = gdbrunner.find_binary(device, pid, sysroot,
+                                                       user=args.user)
+        except adb.ShellError:
+            sys.exit("failed to pull binary for PID {}".format(pid))
+
+    if not local:
+        logging.warning("Couldn't find local unstripped executable in {},"
+                        " symbols may not be available.".format(sysroot))
+
+    return (binary_file, pid, run_cmd)
+
+def generate_gdb_script(sysroot, binary_file, is64bit, port, connect_timeout=5):
+    # Generate a gdb script.
+    # TODO: Detect the zygote and run 'art-on' automatically.
+    root = os.environ["ANDROID_BUILD_TOP"]
+    symbols_dir = os.path.join(sysroot, "system", "lib64" if is64bit else "lib")
+    vendor_dir = os.path.join(sysroot, "vendor", "lib64" if is64bit else "lib")
+
+    solib_search_path = []
+    symbols_paths = ["", "hw", "ssl/engines", "drm", "egl", "soundfx"]
+    vendor_paths = ["", "hw", "egl"]
+    solib_search_path += [os.path.join(symbols_dir, x) for x in symbols_paths]
+    solib_search_path += [os.path.join(vendor_dir, x) for x in vendor_paths]
+    solib_search_path = ":".join(solib_search_path)
+
+    gdb_commands = ""
+    gdb_commands += "file '{}'\n".format(binary_file.name)
+    gdb_commands += "directory '{}'\n".format(root)
+    gdb_commands += "set solib-absolute-prefix {}\n".format(sysroot)
+    gdb_commands += "set solib-search-path {}\n".format(solib_search_path)
+
+    dalvik_gdb_script = os.path.join(root, "development", "scripts", "gdb",
+                                     "dalvik.gdb")
+    if not os.path.exists(dalvik_gdb_script):
+        logging.warning(("couldn't find {} - ART debugging options will not " +
+                         "be available").format(dalvik_gdb_script))
+    else:
+        gdb_commands += "source {}\n".format(dalvik_gdb_script)
+
+    # Try to connect for a few seconds, sometimes the device gdbserver takes
+    # a little bit to come up, especially on emulators.
+    gdb_commands += """
+python
+
+def target_remote_with_retry(target, timeout_seconds):
+  import time
+  end_time = time.time() + timeout_seconds
+  while True:
+    try:
+      gdb.execute("target remote " + target)
+      return True
+    except gdb.error as e:
+      time_left = end_time - time.time()
+      if time_left < 0 or time_left > timeout_seconds:
+        print("Error: unable to connect to device.")
+        print(e)
+        return False
+      time.sleep(min(0.25, time_left))
+
+target_remote_with_retry(':{}', {})
+
+end
+""".format(port, connect_timeout)
+
+    return gdb_commands
+
+
+def main():
+    args = parse_args()
+    device = args.device
+
+    if device is None:
+        sys.exit("ERROR: Failed to find device.")
+
+    props = device.get_props()
+
+    root = os.environ["ANDROID_BUILD_TOP"]
+    sysroot = dump_var(root, "abs-TARGET_OUT_UNSTRIPPED")
+
+    # Make sure the environment matches the attached device.
+    verify_device(root, props)
+
+    debug_socket = "/data/local/tmp/debug_socket"
+    pid = None
+    run_cmd = None
+
+    # Fetch binary for -p, -n.
+    binary_file, pid, run_cmd = handle_switches(args, sysroot)
+
+    with binary_file:
+        arch = gdbrunner.get_binary_arch(binary_file)
+        is64bit = arch.endswith("64")
+
+        # Make sure we have the linker
+        ensure_linker(device, sysroot, is64bit)
+
+        # Start gdbserver.
+        gdbserver_local_path = get_gdbserver_path(root, arch)
+        gdbserver_remote_path = "/data/local/tmp/{}-gdbserver".format(arch)
+        gdbrunner.start_gdbserver(
+            device, gdbserver_local_path, gdbserver_remote_path,
+            target_pid=pid, run_cmd=run_cmd, debug_socket=debug_socket,
+            port=args.port, user=args.user)
+
+        # Generate a gdb script.
+        gdb_commands = generate_gdb_script(sysroot=sysroot,
+                                           binary_file=binary_file,
+                                           is64bit=is64bit,
+                                           port=args.port)
+
+        # Find where gdb is
+        if sys.platform.startswith("linux"):
+            platform_name = "linux-x86"
+        elif sys.platform.startswith("darwin"):
+            platform_name = "darwin-x86"
+        else:
+            sys.exit("Unknown platform: {}".format(sys.platform))
+        gdb_path = os.path.join(root, "prebuilts", "gdb", platform_name, "bin",
+                                "gdb")
+
+        # Print a newline to separate our messages from the GDB session.
+        print("")
+
+        # Start gdb.
+        gdbrunner.start_gdb(gdb_path, gdb_commands)
+
+if __name__ == "__main__":
+    main()
diff --git a/scripts/stack_core.py b/scripts/stack_core.py
index 5a6fd48..8da0109 100755
--- a/scripts/stack_core.py
+++ b/scripts/stack_core.py
@@ -16,8 +16,11 @@
 
 """stack symbolizes native crash dumps."""
 
+import os
 import re
+import subprocess
 import symbol
+import tempfile
 import unittest
 
 import example_crashes
@@ -38,13 +41,16 @@
   dalvik_native_thread_line = re.compile("(\".*\" sysTid=[0-9]+ nice=[0-9]+.*)")
   register_line = re.compile("$a")
   trace_line = re.compile("$a")
+  sanitizer_trace_line = re.compile("$a")
   value_line = re.compile("$a")
   code_line = re.compile("$a")
+  unzip_line = re.compile("\s*(\d+)\s+\S+\s+\S+\s+(\S+)")
   trace_lines = []
   value_lines = []
   last_frame = -1
   width = "{8}"
   spacing = ""
+  apk_info = dict()
 
   def __init__(self):
     self.UpdateAbiRegexes()
@@ -79,7 +85,30 @@
     # Or lines from AndroidFeedback crash report system logs like:
     #   03-25 00:51:05.520 I/DEBUG ( 65): #00 pc 001cf42e /data/data/com.my.project/lib/libmyproject.so
     # Please note the spacing differences.
-    self.trace_line = re.compile("(.*)\#([0-9]+)[ \t]+(..)[ \t]+([0-9a-f]" + self.width + ")[ \t]+([^\r\n \t]*)( \((.*)\))?")  # pylint: disable-msg=C6310
+    self.trace_line = re.compile(
+        ".*"                                                 # Random start stuff.
+        "\#(?P<frame>[0-9]+)"                                # Frame number.
+        "[ \t]+..[ \t]+"                                     # (space)pc(space).
+        "(?P<offset>[0-9a-f]" + self.width + ")[ \t]+"       # Offset (hex number given without
+                                                             #         0x prefix).
+        "(?P<dso>\[[^\]]+\]|[^\r\n \t]*)"                    # Library name.
+        "( \(offset (?P<so_offset>0x[0-9a-fA-F]+)\))?"       # Offset into the file to find the start of the shared so.
+        "(?P<symbolpresent> \((?P<symbol>.*)\))?")           # Is the symbol there?
+                                                             # pylint: disable-msg=C6310
+    # Sanitizer output. This is different from debuggerd output, and it is easier to handle this as
+    # its own regex. Example:
+    # 08-19 05:29:26.283   397   403 I         :     #0 0xb6a15237  (/system/lib/libclang_rt.asan-arm-android.so+0x4f237)
+    self.sanitizer_trace_line = re.compile(
+        ".*"                                                 # Random start stuff.
+        "\#(?P<frame>[0-9]+)"                                # Frame number.
+        "[ \t]+0x[0-9a-f]+[ \t]+"                            # PC, not interesting to us.
+        "\("                                                 # Opening paren.
+        "(?P<dso>[^+]+)"                                     # Library name.
+        "\+"                                                 # '+'
+        "0x(?P<offset>[0-9a-f]+)"                            # Offset (hex number given with
+                                                             #         0x prefix).
+        "\)")                                                # Closin paren.
+                                                             # pylint: disable-msg=C6310
     # Examples of matched value lines include:
     #   bea4170c  8018e4e9  /data/data/com.my.project/lib/libmyproject.so
     #   bea4170c  8018e4e9  /data/data/com.my.project/lib/libmyproject.so (symbol)
@@ -137,11 +166,113 @@
     print
     print "-----------------------------------------------------\n"
 
+  def DeleteApkTmpFiles(self):
+    for _, offset_list in self.apk_info.values():
+      for _, _, tmp_file in offset_list:
+        if tmp_file:
+          os.unlink(tmp_file)
+
   def ConvertTrace(self, lines):
     lines = map(self.CleanLine, lines)
-    for line in lines:
-      self.ProcessLine(line)
-    self.PrintOutput(self.trace_lines, self.value_lines)
+    try:
+      for line in lines:
+        self.ProcessLine(line)
+      self.PrintOutput(self.trace_lines, self.value_lines)
+    finally:
+      # Delete any temporary files created while processing the lines.
+      self.DeleteApkTmpFiles()
+
+  def MatchTraceLine(self, line):
+    if self.trace_line.match(line):
+      match = self.trace_line.match(line)
+      return {"frame": match.group("frame"),
+              "offset": match.group("offset"),
+              "so_offset": match.group("so_offset"),
+              "dso": match.group("dso"),
+              "symbol_present": bool(match.group("symbolpresent")),
+              "symbol_name": match.group("symbol")}
+    if self.sanitizer_trace_line.match(line):
+      match = self.sanitizer_trace_line.match(line)
+      return {"frame": match.group("frame"),
+              "offset": match.group("offset"),
+              "so_offset": None,
+              "dso": match.group("dso"),
+              "symbol_present": False,
+              "symbol_name": None}
+    return None
+
+  def ExtractLibFromApk(self, apk, shared_lib_name):
+    # Create a temporary file containing the shared library from the apk.
+    tmp_file = None
+    try:
+      tmp_fd, tmp_file = tempfile.mkstemp()
+      if subprocess.call(["unzip", "-p", apk, shared_lib_name], stdout=tmp_fd) == 0:
+        os.close(tmp_fd)
+        shared_file = tmp_file
+        tmp_file = None
+        return shared_file
+    finally:
+      if tmp_file:
+        os.close(tmp_fd)
+        os.unlink(tmp_file)
+    return None
+
+  def GetLibFromApk(self, apk, offset):
+    # Convert the string to hex.
+    offset = int(offset, 16)
+
+    # Check if we already have information about this offset.
+    if apk in self.apk_info:
+      apk_full_path, offset_list = self.apk_info[apk]
+      for current_offset, file_name, tmp_file in offset_list:
+        if offset <= current_offset:
+          if tmp_file:
+            return file_name, tmp_file
+          # This modifies the value in offset_list.
+          tmp_file = self.ExtractLibFromApk(apk_full_path, file_name)
+          if tmp_file:
+            return file_name, tmp_file
+          break
+      return None, None
+
+    if not "ANDROID_PRODUCT_OUT" in os.environ:
+      print "ANDROID_PRODUCT_OUT environment variable not set."
+      return None, None
+    out_dir = os.environ["ANDROID_PRODUCT_OUT"]
+    if not os.path.exists(out_dir):
+      print "ANDROID_PRODUCT_OUT " + out_dir + " does not exist."
+      return None, None
+    if apk.startswith("/"):
+      apk_full_path = out_dir + apk
+    else:
+      apk_full_path = os.path.join(out_dir, apk)
+    if not os.path.exists(apk_full_path):
+      print "Cannot find apk " + apk;
+      return None, None
+
+    cmd = subprocess.Popen(["unzip", "-lqq", apk_full_path], stdout=subprocess.PIPE)
+    current_offset = 0
+    file_entry = None
+    offset_list = []
+    for line in cmd.stdout:
+      match = self.unzip_line.match(line)
+      if match:
+        # Round the size up to a page boundary.
+        current_offset += (int(match.group(1), 10) + 0x1000) & ~0xfff
+        offset_entry = [current_offset - 1, match.group(2), None]
+        offset_list.append(offset_entry)
+        if offset < current_offset and not file_entry:
+          file_entry = offset_entry
+
+    # Save the information from the zip.
+    self.apk_info[apk] = [apk_full_path, offset_list]
+    if not file_entry:
+      return None, None
+    tmp_shared_lib = self.ExtractLibFromApk(apk_full_path, file_entry[1])
+    if tmp_shared_lib:
+      file_entry[2] = tmp_shared_lib
+      return file_entry[1], file_entry[2]
+    return None, None
 
   def ProcessLine(self, line):
     ret = False
@@ -184,11 +315,15 @@
         symbol.ARCH = abi_header.group(2)
         self.UpdateAbiRegexes()
       return ret
-    if self.trace_line.match(line):
+    trace_line_dict = self.MatchTraceLine(line)
+    if trace_line_dict is not None:
       ret = True
-      match = self.trace_line.match(line)
-      (unused_0, frame, unused_1,
-       code_addr, area, symbol_present, symbol_name) = match.groups()
+      frame = trace_line_dict["frame"]
+      code_addr = trace_line_dict["offset"]
+      area = trace_line_dict["dso"]
+      so_offset = trace_line_dict["so_offset"]
+      symbol_present = trace_line_dict["symbol_present"]
+      symbol_name = trace_line_dict["symbol_name"]
 
       if frame <= self.last_frame and (self.trace_lines or self.value_lines):
         self.PrintOutput(self.trace_lines, self.value_lines)
@@ -200,9 +335,19 @@
       if area == "<unknown>" or area == "[heap]" or area == "[stack]":
         self.trace_lines.append((code_addr, "", area))
       else:
+        # If this is an apk, it usually means that there is actually
+        # a shared so that was loaded directly out of it. In that case,
+        # extract the shared library and the name of the shared library.
+        lib = None
+        if area.endswith(".apk") and so_offset:
+          lib_name, lib = self.GetLibFromApk(area, so_offset)
+        if not lib:
+          lib = area
+          lib_name = None
+
         # If a calls b which further calls c and c is inlined to b, we want to
         # display "a -> b -> c" in the stack trace instead of just "a -> c"
-        info = symbol.SymbolInformation(area, code_addr)
+        info = symbol.SymbolInformation(lib, code_addr)
         nest_count = len(info) - 1
         for (source_symbol, source_location, object_symbol_with_offset) in info:
           if not source_symbol:
@@ -212,6 +357,8 @@
               source_symbol = "<unknown>"
           if not source_location:
             source_location = area
+            if lib_name:
+              source_location += "(" + lib_name + ")"
           if nest_count > 0:
             nest_count = nest_count - 1
             arrow = "v------>"
@@ -273,6 +420,9 @@
   def test_mips_registers(self):
     self.assert_register_matches("mips", example_crashes.mips, '\\b(zr|a0|t0|t4|s0|s4|t8|gp|hi)\\b')
 
+  def test_mips64_registers(self):
+    self.assert_register_matches("mips64", example_crashes.mips64, '\\b(zr|a0|a4|t0|s0|s4|t8|gp|hi)\\b')
+
   def test_x86_registers(self):
     self.assert_register_matches("x86", example_crashes.x86, '\\b(eax|esi|xcs|eip)\\b')
 
diff --git a/scripts/symbol.py b/scripts/symbol.py
index bed274b..4646581 100755
--- a/scripts/symbol.py
+++ b/scripts/symbol.py
@@ -185,7 +185,9 @@
 
   symbols = SYMBOLS_DIR + lib
   if not os.path.exists(symbols):
-    return None
+    symbols = lib
+    if not os.path.exists(symbols):
+      return None
 
   cmd = [ToolPath("addr2line"), "--functions", "--inlines",
       "--demangle", "--exe=" + symbols]
@@ -203,7 +205,7 @@
       if symbol == "??":
         symbol = None
       location = child.stdout.readline().strip()
-      if location == "??:0":
+      if location == "??:0" or location == "??:?":
         location = None
       if symbol is None and location is None:
         break
@@ -250,11 +252,9 @@
 
   symbols = SYMBOLS_DIR + lib
   if not os.path.exists(symbols):
-    return None
-
-  symbols = SYMBOLS_DIR + lib
-  if not os.path.exists(symbols):
-    return None
+    symbols = lib
+    if not os.path.exists(symbols):
+      return None
 
   addrs = sorted(unique_addrs)
   start_addr_dec = str(StripPC(int(addrs[0], 16)))
diff --git a/sdk/build_tools_source.prop_template b/sdk/build_tools_source.prop_template
index c9bfc2f..5d62307 100644
--- a/sdk/build_tools_source.prop_template
+++ b/sdk/build_tools_source.prop_template
@@ -1,3 +1,3 @@
 Pkg.UserSrc=false
-Pkg.Revision=${PLATFORM_SDK_VERSION}.0.2
+Pkg.Revision=${PLATFORM_SDK_VERSION}.0.0
 
diff --git a/sdk/plat_tools_source.prop_template b/sdk/plat_tools_source.prop_template
index 811dad8..0c50551 100644
--- a/sdk/plat_tools_source.prop_template
+++ b/sdk/plat_tools_source.prop_template
@@ -1,2 +1,2 @@
 Pkg.UserSrc=false
-Pkg.Revision=${PLATFORM_SDK_VERSION}.0.1
+Pkg.Revision=${PLATFORM_SDK_VERSION}.1.0 rc1
diff --git a/sdk/platform_source.prop_template b/sdk/platform_source.prop_template
index c97dd97..35a00af 100644
--- a/sdk/platform_source.prop_template
+++ b/sdk/platform_source.prop_template
@@ -2,9 +2,9 @@
 Pkg.UserSrc=false
 Platform.Version=${PLATFORM_VERSION}
 Platform.CodeName=
-Pkg.Revision=2
+Pkg.Revision=1
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 Layoutlib.Api=15
-Layoutlib.Revision=2
+Layoutlib.Revision=1
 Platform.MinToolsRev=22
diff --git a/sdk/support_source.prop_template b/sdk/support_source.prop_template
index 03d6962..f5b217e 100644
--- a/sdk/support_source.prop_template
+++ b/sdk/support_source.prop_template
@@ -1,5 +1,5 @@
 Pkg.UserSrc=false
-Pkg.Revision=${PLATFORM_SDK_VERSION}.1.1
+Pkg.Revision=${PLATFORM_SDK_VERSION}.0.0
 Extra.Vendor=android
 Extra.VendorId=android
 Extra.VendorDisplay=Android
diff --git a/sys-img/images_arm64-v8a_source.prop_template b/sys-img/images_arm64-v8a_source.prop_template
index 7c31def..d5f5610 100644
--- a/sys-img/images_arm64-v8a_source.prop_template
+++ b/sys-img/images_arm64-v8a_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=${TARGET_CPU_ABI}
diff --git a/sys-img/images_armeabi-v7a_source.prop_template b/sys-img/images_armeabi-v7a_source.prop_template
index 36fd33e..7d13fce 100644
--- a/sys-img/images_armeabi-v7a_source.prop_template
+++ b/sys-img/images_armeabi-v7a_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=armeabi-v7a
diff --git a/sys-img/images_armeabi_source.prop_template b/sys-img/images_armeabi_source.prop_template
index fec8836..ef17ea6 100644
--- a/sys-img/images_armeabi_source.prop_template
+++ b/sys-img/images_armeabi_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=armeabi
diff --git a/sys-img/images_mips64_source.prop_template b/sys-img/images_mips64_source.prop_template
index d457ccc..157746d 100644
--- a/sys-img/images_mips64_source.prop_template
+++ b/sys-img/images_mips64_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=mips64
diff --git a/sys-img/images_mips_source.prop_template b/sys-img/images_mips_source.prop_template
index 1b03048..dcca286 100644
--- a/sys-img/images_mips_source.prop_template
+++ b/sys-img/images_mips_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=mips
diff --git a/sys-img/images_x86_64_source.prop_template b/sys-img/images_x86_64_source.prop_template
index 7c31def..d5f5610 100644
--- a/sys-img/images_x86_64_source.prop_template
+++ b/sys-img/images_x86_64_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=${TARGET_CPU_ABI}
diff --git a/sys-img/images_x86_source.prop_template b/sys-img/images_x86_source.prop_template
index 7c31def..d5f5610 100644
--- a/sys-img/images_x86_source.prop_template
+++ b/sys-img/images_x86_source.prop_template
@@ -1,6 +1,6 @@
 Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
 Pkg.UserSrc=false
-Pkg.Revision=4
+Pkg.Revision=2
 AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
 AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
 SystemImage.Abi=${TARGET_CPU_ABI}
diff --git a/testrunner/adb_interface.py b/testrunner/adb_interface.py
index cd39480..7dd8f4c 100755
--- a/testrunner/adb_interface.py
+++ b/testrunner/adb_interface.py
@@ -176,7 +176,7 @@
 
   def StartInstrumentationForPackage(
       self, package_name, runner_name, timeout_time=60*10,
-      no_window_animation=False, instrumentation_args={}):
+      no_window_animation=False, instrumentation_args={}, user=None):
     """Run instrumentation test for given package and runner.
 
     Equivalent to StartInstrumentation, except instrumentation path is
@@ -185,11 +185,12 @@
     instrumentation_path = "%s/%s" % (package_name, runner_name)
     return self.StartInstrumentation(instrumentation_path, timeout_time=timeout_time,
                                      no_window_animation=no_window_animation,
-                                     instrumentation_args=instrumentation_args)
+                                     instrumentation_args=instrumentation_args,
+                                     user=user)
 
   def StartInstrumentation(
       self, instrumentation_path, timeout_time=60*10, no_window_animation=False,
-      profile=False, instrumentation_args={}):
+      profile=False, instrumentation_args={}, user=None):
 
     """Runs an instrumentation class on the target.
 
@@ -208,6 +209,7 @@
       profile: If True, profiling will be turned on for the instrumentation.
       instrumentation_args: Dictionary of key value bundle arguments to pass to
       instrumentation.
+      user: The user id to start the instrumentation with.
 
     Returns:
       (test_results, inst_finished_bundle)
@@ -229,7 +231,8 @@
     command_string = self._BuildInstrumentationCommandPath(
         instrumentation_path, no_window_animation=no_window_animation,
         profile=profile, raw_mode=True,
-        instrumentation_args=instrumentation_args)
+        instrumentation_args=instrumentation_args,
+        user=user)
     logger.Log(command_string)
     (test_results, inst_finished_bundle) = (
         am_instrument_parser.ParseAmInstrumentOutput(
@@ -255,7 +258,7 @@
 
   def StartInstrumentationNoResults(
       self, package_name, runner_name, no_window_animation=False,
-      raw_mode=False, instrumentation_args={}):
+      raw_mode=False, instrumentation_args={}, user=None):
     """Runs instrumentation and dumps output to stdout.
 
     Equivalent to StartInstrumentation, but will dump instrumentation
@@ -264,17 +267,19 @@
     """
     adb_command_string = self.PreviewInstrumentationCommand(
         package_name, runner_name, no_window_animation=no_window_animation,
-        raw_mode=raw_mode, instrumentation_args=instrumentation_args)
+        raw_mode=raw_mode, instrumentation_args=instrumentation_args,
+        user=user)
     logger.Log(adb_command_string)
     run_command.RunCommand(adb_command_string, return_output=False)
 
   def PreviewInstrumentationCommand(
       self, package_name, runner_name, no_window_animation=False,
-      raw_mode=False, instrumentation_args={}):
+      raw_mode=False, instrumentation_args={}, user=None):
     """Returns a string of adb command that will be executed."""
     inst_command_string = self._BuildInstrumentationCommand(
         package_name, runner_name, no_window_animation=no_window_animation,
-        raw_mode=raw_mode, instrumentation_args=instrumentation_args)
+        raw_mode=raw_mode, instrumentation_args=instrumentation_args,
+        user=user)
     return self.PreviewShellCommand(inst_command_string)
 
   def PreviewShellCommand(self, cmd):
@@ -282,18 +287,20 @@
 
   def _BuildInstrumentationCommand(
       self, package, runner_name, no_window_animation=False, profile=False,
-      raw_mode=True, instrumentation_args={}):
+      raw_mode=True, instrumentation_args={}, user=None):
     instrumentation_path = "%s/%s" % (package, runner_name)
 
     return self._BuildInstrumentationCommandPath(
         instrumentation_path, no_window_animation=no_window_animation,
         profile=profile, raw_mode=raw_mode,
-        instrumentation_args=instrumentation_args)
+        instrumentation_args=instrumentation_args, user=user)
 
   def _BuildInstrumentationCommandPath(
       self, instrumentation_path, no_window_animation=False, profile=False,
-      raw_mode=True, instrumentation_args={}):
+      raw_mode=True, instrumentation_args={}, user=None):
     command_string = "am instrument"
+    if user:
+      command_string += " --user %s" % user
     if no_window_animation:
       command_string += " --no_window_animation"
     if profile:
diff --git a/testrunner/coverage_targets.xml b/testrunner/coverage_targets.xml
index 4ac5979..df8e7af 100644
--- a/testrunner/coverage_targets.xml
+++ b/testrunner/coverage_targets.xml
@@ -57,8 +57,6 @@
    <!-- apps -->
     <coverage_target name="ApiDemos" build_path="development/samples/ApiDemos"
         type="APPS" />
-    <coverage_target name="Browser" build_path="packages/apps/Browser"
-        type="APPS" />
     <coverage_target name="Calculator" build_path="packages/apps/Calculator"
         type="APPS" />
     <coverage_target name="Calendar" build_path="packages/apps/Calendar"
diff --git a/testrunner/runtest.py b/testrunner/runtest.py
index 9b011a6..a740cc2 100755
--- a/testrunner/runtest.py
+++ b/testrunner/runtest.py
@@ -172,6 +172,17 @@
     parser.add_option("--suite", dest="suite",
                       help="Run all tests defined as part of the "
                       "the given test suite")
+    parser.add_option("--user", dest="user",
+                      help="The user that test apks are installing to."
+                      " This is the integer user id, e.g. 0 or 10."
+                      " If no user is specified, apk will be installed with"
+                      " adb's default behavior, which is currently all users.")
+    parser.add_option("--install-filter", dest="filter_re",
+                      help="Regular expression which generated apks have to"
+                      " match to be installed to target device. Default is None"
+                      " and will install all packages built.  This is"
+                      " useful when the test path has a lot of apks but you"
+                      " only care about one.")
     group = optparse.OptionGroup(
         parser, "Targets", "Use these options to direct tests to a specific "
         "Android target")
@@ -295,8 +306,15 @@
           target_build_string, self._options.make_jobs, self._root_path,
           extra_args_string)
       # mmma equivalent, used when regular mmm fails
-      alt_cmd = 'make -j%s -C "%s" -f build/core/main.mk %s all_modules BUILD_MODULES_IN_PATHS="%s"' % (
-              self._options.make_jobs, self._root_path, extra_args_string, target_dir_build_string)
+      mmma_goals = []
+      for d in target_dir_list:
+        if d.startswith("./"):
+          d = d[2:]
+        if d.endswith("/"):
+          d = d[:-1]
+        mmma_goals.append("MODULES-IN-" + d.replace("/","-"))
+      alt_cmd = 'make -j%s -C "%s" -f build/core/main.mk %s %s' % (
+              self._options.make_jobs, self._root_path, extra_args_string, " ".join(mmma_goals))
 
       logger.Log(cmd)
       if not self._options.preview:
@@ -313,9 +331,11 @@
           output = run_command.RunCommand(cmd, return_output=True, timeout_time=600)
         run_command.SetAbortOnError(False)
         logger.SilentLog(output)
-        self._DoInstall(output, test_requires_permissions)
+        filter_re = re.compile(self._options.filter_re) if self._options.filter_re else None
 
-  def _DoInstall(self, make_output, test_requires_permissions):
+        self._DoInstall(output, test_requires_permissions, filter_re=filter_re)
+
+  def _DoInstall(self, make_output, test_requires_permissions, filter_re=None):
     """Install artifacts from build onto device.
 
     Looks for 'install:' text from make output to find artifacts to install.
@@ -333,11 +353,15 @@
         # the remaining string is a space-separated list of build-generated files
         install_paths = m.group(2)
         for install_path in re.split(r'\s+', install_paths):
+          if filter_re and not filter_re.match(install_path):
+            continue
           if install_path.endswith(".apk"):
             abs_install_path = os.path.join(self._root_path, install_path)
             extra_flags = ""
             if test_requires_permissions and not self._options.skip_permissions:
               extra_flags = "-g"
+            if self._options.user:
+              extra_flags += " --user " + self._options.user
             logger.Log("adb install -r %s %s" % (extra_flags, abs_install_path))
             logger.Log(self._adb.Install(abs_install_path, extra_flags))
           else:
@@ -422,13 +446,6 @@
       self._tests_to_run.append(test)
     return self._tests_to_run
 
-  def _IsCtsTests(self, test_list):
-    """Check if any cts tests are included in given list of tests to run."""
-    for test in test_list:
-      if test.GetSuite() == 'cts':
-        return True
-    return False
-
   def _TurnOffVerifier(self, test_list):
     """Turn off the dalvik verifier if needed by given tests.
 
diff --git a/testrunner/test_defs.xml b/testrunner/test_defs.xml
index dff3282..87dafb4 100644
--- a/testrunner/test_defs.xml
+++ b/testrunner/test_defs.xml
@@ -227,197 +227,11 @@
     class="android.content.ContentProviderOperationTest"
     coverage_target="framework" />
 
-<!--  cts tests -->
-
-<test name="cts-permission"
-    build_path="cts/tests/tests/permission"
-    package="com.android.cts.permission"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    continuous="true"
-    suite="cts" />
-
-<test name="cts-permission2"
-    build_path="cts/tests/tests/permission2"
-    package="com.android.cts.permission2"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    continuous="true"
-    suite="true" />
-
-<test name="cts-process"
-    build_path="cts/tests/ProcessTest"
-    package="com.android.cts.process"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-security"
-    build_path="cts/tests/tests/security"
-    package="com.android.cts.security"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    suite="cts" />
-
-<test name="cts-accounts"
-    build_path="cts/tests/tests/accounts"
-    package="android.accounts.cts"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-app"
-    build_path="cts/tests/tests/app"
-    package="com.android.cts.app"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-calllog"
-    build_path="cts/tests/tests/calllog"
-    package="com.android.cts.calllog"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="Phone"
-    suite="cts" />
-
-<test name="cts-content"
-    build_path="cts/tests/tests/content"
-    package="com.android.cts.content"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-database"
-    build_path="cts/tests/tests/database"
-    package="com.android.cts.database"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-dreams"
-    build_path="cts/tests/tests/dreams"
-    package="com.android.cts.dreams"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-gesture"
-    build_path="cts/tests/tests/gesture"
-    package="com.android.cts.gesture"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-graphics"
-    build_path="cts/tests/tests/graphics"
-    package="com.android.cts.graphics"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-hardware"
-    build_path="cts/tests/tests/hardware"
-    package="com.android.cts.hardware"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    continuous="true"
-    suite="cts" />
-
-<test name="cts-location"
-    build_path="cts/tests/tests/location"
-    package="com.android.cts.location"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-media"
-    build_path="cts/tests/tests/media"
-    package="com.android.cts.media"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-net"
-    build_path="cts/tests/tests/net"
-    package="com.android.cts.net"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-os"
-    build_path="cts/tests/tests/os"
-    package="com.android.cts.os"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-provider"
-    build_path="cts/tests/tests/provider"
-    package="com.android.cts.provider"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-text"
-    build_path="cts/tests/tests/text"
-    package="com.android.cts.text"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-telecom"
-    build_path="cts/tests/tests/telecom"
-    package="com.android.cts.telecom"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-telephony"
-    build_path="cts/tests/tests/telephony"
-    package="com.android.cts.telephony"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-util"
-    build_path="cts/tests/tests/util"
-    package="com.android.cts.util"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-view"
-    build_path="cts/tests/tests/view"
-    package="com.android.cts.view"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-webkit"
-    build_path="cts/tests/tests/webkit"
-    package="com.android.cts.webkit"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<test name="cts-widget"
-    build_path="cts/tests/tests/widget"
-    package="com.android.cts.widget"
-    runner="android.support.test.runner.AndroidJUnitRunner"
-    coverage_target="framework"
-    suite="cts" />
-
-<!--  end of cts tests -->
-
 <!--  selected app tests -->
 <test name="apidemos"
     build_path="development/samples/ApiDemos"
     package="com.example.android.apis.tests" />
 
-<test name="browser"
-    build_path="packages/apps/Browser"
-    package="com.android.browser.tests"
-    coverage_target="Browser"
-    continuous="true" />
-
 <test name="calculator"
     build_path="packages/apps/Calculator"
     package="com.android.calculator2.tests"
@@ -588,12 +402,6 @@
     extra_build_args="LIBJINGLE_TESTS=1" />
 
 <!-- host java tests -->
-<test-host name="cts-appsecurity"
-    build_path="cts/hostsidetests/appsecurity"
-    class="com.android.cts.appsecurity.AppSecurityTests"
-    jar_name="CtsAppSecurityTests.jar"
-    suite="cts" />
-
 <test-host name="frameworks-core-host"
     build_path="frameworks/base/core/tests/hosttests"
     class="android.content.pm.PackageManagerHostTests"
diff --git a/testrunner/test_defs/instrumentation_test.py b/testrunner/test_defs/instrumentation_test.py
index 1bbedee..979ba0b 100644
--- a/testrunner/test_defs/instrumentation_test.py
+++ b/testrunner/test_defs/instrumentation_test.py
@@ -154,7 +154,8 @@
             package_name=self.GetPackageName(),
             runner_name=self.GetRunnerName(),
             timeout_time=60*60,
-            instrumentation_args=instrumentation_args)
+            instrumentation_args=instrumentation_args,
+            user=options.user)
       except errors.InstrumentationError, errors.DeviceUnresponsiveError:
         return
       self._PrintTestResults(test_results)
@@ -175,7 +176,8 @@
                                         runner_name=self.GetRunnerName(),
                                         raw_mode=options.raw_mode,
                                         instrumentation_args=
-                                        instrumentation_args)
+                                        instrumentation_args,
+                                        user=options.user)
 
   def _CheckInstrumentationInstalled(self, adb):
     if not adb.IsInstrumentationInstalled(self.GetPackageName(),
@@ -271,12 +273,6 @@
       suite.SetName(pkg_name)
       suite.SetClassName(class_name_arg)
       suite.SetJavaPackageFilter(java_package_name)
-      # this is a bit of a hack, assume if 'com.android.cts' is in
-      # package name, this is a cts test
-      # this logic can be removed altogether when cts tests no longer require
-      # custom build steps
-      if suite.GetPackageName().startswith('com.android.cts'):
-        suite.SetSuite('cts')
       tests.append(suite)
       return tests
 
diff --git a/tools/emulator/skins/WSVGA/arrow_down.png b/tools/emulator/skins/WSVGA/arrow_down.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/arrow_left.png b/tools/emulator/skins/WSVGA/arrow_left.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/arrow_right.png b/tools/emulator/skins/WSVGA/arrow_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/arrow_up.png b/tools/emulator/skins/WSVGA/arrow_up.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/button.png b/tools/emulator/skins/WSVGA/button.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/controls.png b/tools/emulator/skins/WSVGA/controls.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/hardware.ini b/tools/emulator/skins/WSVGA/hardware.ini
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WSVGA/key.png b/tools/emulator/skins/WSVGA/key.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/keyboard.png b/tools/emulator/skins/WSVGA/keyboard.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/layout b/tools/emulator/skins/WSVGA/layout
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WSVGA/select.png b/tools/emulator/skins/WSVGA/select.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WSVGA/spacebar.png b/tools/emulator/skins/WSVGA/spacebar.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/arrow_down.png b/tools/emulator/skins/WXGA720/arrow_down.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/arrow_left.png b/tools/emulator/skins/WXGA720/arrow_left.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/arrow_right.png b/tools/emulator/skins/WXGA720/arrow_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/arrow_up.png b/tools/emulator/skins/WXGA720/arrow_up.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/background_land.png b/tools/emulator/skins/WXGA720/background_land.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/background_port.png b/tools/emulator/skins/WXGA720/background_port.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/button.png b/tools/emulator/skins/WXGA720/button.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/controls.png b/tools/emulator/skins/WXGA720/controls.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/hardware.ini b/tools/emulator/skins/WXGA720/hardware.ini
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WXGA720/key.png b/tools/emulator/skins/WXGA720/key.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/keyboard.png b/tools/emulator/skins/WXGA720/keyboard.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/layout b/tools/emulator/skins/WXGA720/layout
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WXGA720/select.png b/tools/emulator/skins/WXGA720/select.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA720/spacebar.png b/tools/emulator/skins/WXGA720/spacebar.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/arrow_down.png b/tools/emulator/skins/WXGA800-7in/arrow_down.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/arrow_left.png b/tools/emulator/skins/WXGA800-7in/arrow_left.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/arrow_right.png b/tools/emulator/skins/WXGA800-7in/arrow_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/arrow_up.png b/tools/emulator/skins/WXGA800-7in/arrow_up.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/background_land.png b/tools/emulator/skins/WXGA800-7in/background_land.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/background_port.png b/tools/emulator/skins/WXGA800-7in/background_port.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/button.png b/tools/emulator/skins/WXGA800-7in/button.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/controls.png b/tools/emulator/skins/WXGA800-7in/controls.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/hardware.ini b/tools/emulator/skins/WXGA800-7in/hardware.ini
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WXGA800-7in/key.png b/tools/emulator/skins/WXGA800-7in/key.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/keyboard.png b/tools/emulator/skins/WXGA800-7in/keyboard.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/layout b/tools/emulator/skins/WXGA800-7in/layout
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WXGA800-7in/select.png b/tools/emulator/skins/WXGA800-7in/select.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800-7in/spacebar.png b/tools/emulator/skins/WXGA800-7in/spacebar.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/arrow_down.png b/tools/emulator/skins/WXGA800/arrow_down.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/arrow_left.png b/tools/emulator/skins/WXGA800/arrow_left.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/arrow_right.png b/tools/emulator/skins/WXGA800/arrow_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/arrow_up.png b/tools/emulator/skins/WXGA800/arrow_up.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/background_land.png b/tools/emulator/skins/WXGA800/background_land.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/background_port.png b/tools/emulator/skins/WXGA800/background_port.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/button.png b/tools/emulator/skins/WXGA800/button.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/controls.png b/tools/emulator/skins/WXGA800/controls.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/hardware.ini b/tools/emulator/skins/WXGA800/hardware.ini
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WXGA800/key.png b/tools/emulator/skins/WXGA800/key.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/keyboard.png b/tools/emulator/skins/WXGA800/keyboard.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/layout b/tools/emulator/skins/WXGA800/layout
old mode 100755
new mode 100644
diff --git a/tools/emulator/skins/WXGA800/select.png b/tools/emulator/skins/WXGA800/select.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/emulator/skins/WXGA800/spacebar.png b/tools/emulator/skins/WXGA800/spacebar.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/etc1tool/Android.mk b/tools/etc1tool/Android.mk
index c51d47c..0cf7fe2 100644
--- a/tools/etc1tool/Android.mk
+++ b/tools/etc1tool/Android.mk
@@ -21,18 +21,13 @@
 	libpng \
 	libETC1
 
-ifeq ($(HOST_OS),linux)
-LOCAL_LDLIBS += -lrt
-endif
-
 # Statically link libz for MinGW (Win SDK under Linux),
 # and dynamically link for all others.
-ifneq ($(strip $(USE_MINGW)),)
-  LOCAL_STATIC_LIBRARIES += libz
-else
-  LOCAL_LDLIBS += -lz
-endif
+LOCAL_STATIC_LIBRARIES_windows := libz
+LOCAL_LDLIBS_darwin := -lz
+LOCAL_LDLIBS_linux := -lrt -lz
 
 LOCAL_MODULE := etc1tool
+LOCAL_MODULE_HOST_OS := darwin linux windows
 
 include $(BUILD_HOST_EXECUTABLE)
diff --git a/tools/idegen/idegen.iml b/tools/idegen/idegen.iml
index 04646ae..1088d3a 100644
--- a/tools/idegen/idegen.iml
+++ b/tools/idegen/idegen.iml
@@ -1,14 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module relativePaths="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="false">
-    <output url="file://$MODULE_DIR$/classes" />
-    <output-test url="file://$MODULE_DIR$/classes" />
+<module type="JAVA_MODULE" version="4">
+
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
     <exclude-output />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
     </content>
+    <content url="file://$MODULE_DIR$/../../../out/target/common/obj/APPS/idegen_intermediates/src">
+      <sourceFolder url="file://$MODULE_DIR$/../../../out/target/common/obj/APPS/idegen_intermediates/src" isTestSource="false" />
+    </content>
+
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="guava" />
+
   </component>
 </module>
 
diff --git a/tools/idegen/intellij-gen.sh b/tools/idegen/intellij-gen.sh
index 3c4efc5..462e232 100755
--- a/tools/idegen/intellij-gen.sh
+++ b/tools/idegen/intellij-gen.sh
@@ -16,30 +16,32 @@
 #
 # To use, run the following command from either your repo root or
 # development/tools/idegen:
-#   intellij-gen.sh <module name>
+#   intellij-gen.sh project_dir <module_dir>...
 #
-# where module name is the LOCAL_PACKAGE_NAME in Android.mk for the project.
+# if no module_dir is provided, we assume project_dir is also a module_dir.
 #
-# For example, to generate a project for Contacts, use:
-#   intellij-gen.sh Contacts
+# For example, to generate a project for framework/base, use:
+#   intellij-gen.sh framework/base
 #
-# The project directory (.idea) will be put in the root directory of
-# the module.  Sharable iml files will be put into each respective
-# module directory.
+# The project directory (.idea) will be put in the project_dir.  Sharable
+# iml files will be put into each respective module directory.
 #
 # Only tested on linux.  Should work for macs but have not tried.
 #
 set -e
 
 progname=`basename $0`
-if [ $# -lt 2 ]
-then
-    echo "Usage: $progname project_dir module_dir <module_dir>..."
-    exit 1
+if [ $# -lt 1 ]; then
+  echo "Usage: $progname project_dir <module_dir>..."
+  exit 1
 fi
-project_dir=${PWD}/$1
+project_dir=$1
 shift
-module_dirs=$@
+if [ -z $@ ]; then
+  module_dirs=${project_dir}
+else
+  module_dirs=$@
+fi
 echo $module_dirs
 script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 root_dir=$PWD
diff --git a/tools/idegen/src/Configuration.java b/tools/idegen/src/Configuration.java
index bd643b9..e92b58e 100644
--- a/tools/idegen/src/Configuration.java
+++ b/tools/idegen/src/Configuration.java
@@ -131,6 +131,12 @@
             // Trim preceding "./" from path.
             String path = file.getPath().substring(2);
 
+            // Skip nonexistent files/diretories, e.g. broken symlinks.
+            if (!file.exists()) {
+                Log.debug("Skipped nonexistent: " + path);
+                continue;
+            }
+
             if (file.isDirectory()) {
                 // Traverse nested directories.
                 if (excludes.exclude(path)) {
diff --git a/tools/idegen/src/com/android/idegen/DirectorySearch.java b/tools/idegen/src/com/android/idegen/DirectorySearch.java
index c289ac2..d259942 100644
--- a/tools/idegen/src/com/android/idegen/DirectorySearch.java
+++ b/tools/idegen/src/com/android/idegen/DirectorySearch.java
@@ -17,6 +17,8 @@
 package com.android.idegen;
 
 import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Sets;
 
@@ -25,6 +27,7 @@
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.net.URISyntaxException;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.logging.Level;
 import java.util.logging.Logger;
@@ -146,15 +149,26 @@
                 // src/java
                 //   or
                 // java/src
+                //   or
+                // src/main/java/java
                 //
-                // In either of these cases, we don't want the parent.
+                // In first two cases, we don't want the parent.
+                // In third case we want the parent of the last "java", the last "java" is actually
+                // part of namespace.
                 ImmutableList<File> dirs = findSourceDirs(child);
-                if (dirs.isEmpty()) {
+                // filter out the third case.
+                Collection<File> filteredDirs = Collections2.filter(dirs, new Predicate<File>() {
+                    @Override
+                    public boolean apply(File input) {
+                        return !input.getAbsolutePath().endsWith("java/java");
+                    }
+                });
+                if (filteredDirs.isEmpty()) {
                     if (SOURCE_DIRS.contains(child.getName())) {
                         builder.add(child);
                     }
                 } else {
-                    builder.addAll(dirs);
+                    builder.addAll(filteredDirs);
                 }
             }
         }
diff --git a/tools/idegen/src/com/android/idegen/FrameworkModule.java b/tools/idegen/src/com/android/idegen/FrameworkModule.java
index 47ea35a..892d05e 100644
--- a/tools/idegen/src/com/android/idegen/FrameworkModule.java
+++ b/tools/idegen/src/com/android/idegen/FrameworkModule.java
@@ -27,9 +27,17 @@
  */
 public class FrameworkModule extends Module {
 
+    private static final String REL_OUT_LIB_DIR = "out/target/common/obj/JAVA_LIBRARIES";
+
     // Framework needs a special constant for it's intermediates because it does not follow
     // normal conventions.
-    private static final String FRAMEWORK_INTERMEDIATES = "framework-res_intermediates";
+    private static final ImmutableList<String> FRAMEWORK_APP_INTERMEDIATES = ImmutableList.of(
+            "framework-res_intermediates"
+           );
+    private static final ImmutableList<String> FRAMEWORK_LIB_INTERMEDIATES = ImmutableList.of(
+            "framework_intermediates",
+            "services.core_intermediates"
+    );
 
     public FrameworkModule(File moduleDir) throws IOException {
         super(Preconditions.checkNotNull(moduleDir), false);
@@ -38,15 +46,26 @@
     @Override
     protected String buildIntermediates() throws IOException {
         StringBuilder sb = new StringBuilder();
-        File intermediates = new File(DirectorySearch.getRepoRoot(),
-                REL_OUT_APP_DIR + File.separator +  FRAMEWORK_INTERMEDIATES);
+        for (String intermediate : FRAMEWORK_APP_INTERMEDIATES) {
+            appendContentRoot(sb, DirectorySearch.getRepoRoot() + File.separator +
+                    REL_OUT_APP_DIR + File.separator + intermediate);
+        }
+        for (String intermediate : FRAMEWORK_LIB_INTERMEDIATES) {
+            appendContentRoot(sb, DirectorySearch.getRepoRoot() + File.separator +
+                    REL_OUT_LIB_DIR + File.separator + intermediate);
+        }
+        return sb.toString();
+    }
+
+    private void appendContentRoot(StringBuilder stringBuilder, String rootPath)
+            throws IOException {
+        File intermediates = new File(rootPath);
         ImmutableList<File> intermediateSrcDirs = DirectorySearch.findSourceDirs(intermediates);
-        sb.append("    <content url=\"file://").append(intermediates).append("\">\n");
+        stringBuilder.append("    <content url=\"file://").append(intermediates).append("\">\n");
         for (File src : intermediateSrcDirs) {
-            sb.append("      <sourceFolder url=\"file://")
+            stringBuilder.append("      <sourceFolder url=\"file://")
                     .append(src.getCanonicalPath()).append("\" isTestSource=\"false\" />\n");
         }
-        sb.append("    </content>\n");
-        return sb.toString();
+        stringBuilder.append("    </content>\n");
     }
 }
diff --git a/tools/idegen/src/com/android/idegen/IntellijProject.java b/tools/idegen/src/com/android/idegen/IntellijProject.java
index e3b8d94..66faba9 100644
--- a/tools/idegen/src/com/android/idegen/IntellijProject.java
+++ b/tools/idegen/src/com/android/idegen/IntellijProject.java
@@ -25,6 +25,8 @@
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 import java.util.logging.Logger;
 
 /**
@@ -131,15 +133,25 @@
         String vcsTemplate = Files.toString(new File(DirectorySearch.findTemplateDir(),
                 "idea" + File.separator + VCS_TEMPLATE_FILE_NAME), CHARSET);
 
-        StringBuilder sb = new StringBuilder();
+        Set<String> gitRoots = new HashSet<>();
         for (Module mod : modules) {
             File dir = mod.getDir();
-            File gitRoot = new File(dir, ".git");
-            if (gitRoot.exists()) {
-                sb.append("    <mapping directory=\"").append(dir.getCanonicalPath()).append(
-                        "\" vcs=\"Git\" />\n");
+            // Look for git root in the module directory and its parents.
+            while (dir != null) {
+                File gitRoot = new File(dir, ".git");
+                if (gitRoot.exists()) {
+                    gitRoots.add(dir.getCanonicalPath());
+                    break;
+                } else {
+                    dir = dir.getParentFile();
+                }
             }
         }
+        StringBuilder sb = new StringBuilder();
+        for (String root : gitRoots) {
+            sb.append("    <mapping directory=\"").append(root).append("\" vcs=\"Git\" />\n");
+        }
+
         vcsTemplate = vcsTemplate.replace("@VCS@", sb.toString());
         Files.write(vcsTemplate, new File(ideaDir, "vcs.xml"), CHARSET);
     }
diff --git a/tools/idegen/src/com/android/idegen/MakeFileParser.java b/tools/idegen/src/com/android/idegen/MakeFileParser.java
index 9a41b09..a05d08a 100644
--- a/tools/idegen/src/com/android/idegen/MakeFileParser.java
+++ b/tools/idegen/src/com/android/idegen/MakeFileParser.java
@@ -174,7 +174,7 @@
 
         private String findVariables(String value) {
 
-            int variableStart = value.indexOf('$');
+            int variableStart = value.indexOf("$(");
             // Keep going until we substituted all variables.
             while (variableStart > -1) {
                 StringBuilder sb = new StringBuilder();
@@ -193,7 +193,7 @@
                     sb.append(value.substring(variableEnd + 1));
                 }
                 value = sb.toString();
-                variableStart = value.indexOf('$');
+                variableStart = value.indexOf("$(");
             }
             return value;
         }
diff --git a/tools/idegen/src/com/android/idegen/Module.java b/tools/idegen/src/com/android/idegen/Module.java
index 4695ca3..73ed573 100644
--- a/tools/idegen/src/com/android/idegen/Module.java
+++ b/tools/idegen/src/com/android/idegen/Module.java
@@ -234,7 +234,8 @@
         for (File src : srcDirs) {
             String relative = src.getCanonicalPath().substring(moduleDir.length());
             boolean isTestSource = false;
-            if (relative.startsWith("/test")) {
+            // This covers directories like .../test[s]/...
+            if (relative.matches(".*/tests?/.*")) {
                 isTestSource = true;
             }
             sourceDirectories.append("      <sourceFolder url=\"file://$MODULE_DIR$")
diff --git a/tools/idegen/templates/idea/misc.xml b/tools/idegen/templates/idea/misc.xml
index d3edec0..cc11725 100644
--- a/tools/idegen/templates/idea/misc.xml
+++ b/tools/idegen/templates/idea/misc.xml
@@ -40,7 +40,7 @@
   <component name="ProjectResources">
     <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.7" project-jdk-type="JavaSDK" />
   <component name="WebServicesPlugin" addRequiredLibraries="true" />
 </project>
 
diff --git a/tools/idegen/templates/idea/vcs.xml b/tools/idegen/templates/idea/vcs.xml
index 176af35..31a4f49 100644
--- a/tools/idegen/templates/idea/vcs.xml
+++ b/tools/idegen/templates/idea/vcs.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
 @VCS@
   </component>
 </project>
diff --git a/tools/recovery_l10n/res/values-gu-rIN/strings.xml b/tools/recovery_l10n/res/values-gu-rIN/strings.xml
new file mode 100644
index 0000000..a364b52
--- /dev/null
+++ b/tools/recovery_l10n/res/values-gu-rIN/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="recovery_installing" msgid="7864047928003865598">"સિસ્ટમ અપડેટ ઇન્સ્ટોલ કરી રહ્યાં છે…"</string>
+    <string name="recovery_erasing" msgid="4612809744968710197">"કાઢી નાખી રહ્યાં છે…"</string>
+    <string name="recovery_no_command" msgid="1915703879031023455">"કોઈ આદેશ નથી."</string>
+    <string name="recovery_error" msgid="4550265746256727080">"ભૂલ!"</string>
+</resources>
diff --git a/tools/recovery_l10n/res/values-pt-rBR/strings.xml b/tools/recovery_l10n/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..3cc5723
--- /dev/null
+++ b/tools/recovery_l10n/res/values-pt-rBR/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="recovery_installing" msgid="7864047928003865598">"Instalando atualização do sistema..."</string>
+    <string name="recovery_erasing" msgid="4612809744968710197">"Apagando..."</string>
+    <string name="recovery_no_command" msgid="1915703879031023455">"Nenhum comando."</string>
+    <string name="recovery_error" msgid="4550265746256727080">"Erro!"</string>
+</resources>
diff --git a/tools/recovery_l10n/res/values-sq-rAL/strings.xml b/tools/recovery_l10n/res/values-sq-rAL/strings.xml
new file mode 100644
index 0000000..29f8ef5
--- /dev/null
+++ b/tools/recovery_l10n/res/values-sq-rAL/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="recovery_installing" msgid="7864047928003865598">"Po instalon përditësimin e sistemit..."</string>
+    <string name="recovery_erasing" msgid="4612809744968710197">"Po spastron..."</string>
+    <string name="recovery_no_command" msgid="1915703879031023455">"Nuk ka komanda."</string>
+    <string name="recovery_error" msgid="4550265746256727080">"Gabim!"</string>
+</resources>